From b870ac7f2a5864a540674e9df68f9718a67146fd Mon Sep 17 00:00:00 2001 From: "DESKTOP-1A3P75F\\lee" Date: Wed, 17 Aug 2022 05:55:28 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=ED=99=94?= =?UTF-8?q?=EB=A9=B4=20=EC=88=98=EC=A0=95=20=EA=B3=84=EC=A0=95=20=EB=93=B1?= =?UTF-8?q?=EB=A1=9D=20=ED=99=94=EB=A9=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 5 + .idea/vcs.xml | 6 ++ app/build.gradle | 3 + app/src/main/AndroidManifest.xml | 6 ++ .../java/com/qtagger/Activity/AccountAdd.java | 64 +++++++++++ .../com/qtagger/Activity/AccountList.java | 16 +++ .../java/com/qtagger/Database/Account.java | 59 +++++++++++ .../java/com/qtagger/Database/AccountDao.java | 25 +++++ .../com/qtagger/Database/AppDatabase.java | 10 ++ .../main/java/com/qtagger/MainActivity.java | 65 ++++++++++++ app/src/main/res/drawable/_11.png | Bin 0 -> 4567 bytes app/src/main/res/drawable/back_arrow_5821.png | Bin 0 -> 186 bytes .../main/res/drawable/spinner_background.xml | 18 ++++ app/src/main/res/font/font.xml | 4 + app/src/main/res/font/segoe_ui.ttf | Bin 0 -> 34164 bytes .../main/res/layout/activity_account_add.xml | 99 ++++++++++++++++++ .../main/res/layout/activity_account_list.xml | 8 ++ app/src/main/res/layout/activity_main.xml | 5 + app/src/main/res/values/themes.xml | 1 - 19 files changed, 393 insertions(+), 1 deletion(-) create mode 100644 .idea/vcs.xml create mode 100644 app/src/main/java/com/qtagger/Activity/AccountAdd.java create mode 100644 app/src/main/java/com/qtagger/Activity/AccountList.java create mode 100644 app/src/main/java/com/qtagger/Database/Account.java create mode 100644 app/src/main/java/com/qtagger/Database/AccountDao.java create mode 100644 app/src/main/java/com/qtagger/Database/AppDatabase.java create mode 100644 app/src/main/res/drawable/_11.png create mode 100644 app/src/main/res/drawable/back_arrow_5821.png create mode 100644 app/src/main/res/drawable/spinner_background.xml create mode 100644 app/src/main/res/font/font.xml create mode 100644 app/src/main/res/font/segoe_ui.ttf create mode 100644 app/src/main/res/layout/activity_account_add.xml create mode 100644 app/src/main/res/layout/activity_account_list.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 1bd1aba..dfbd220 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,7 +3,12 @@ diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index b5cec88..798d5e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,7 +32,10 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.5.0' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.room:room-common:2.4.3' + implementation 'androidx.room:room-runtime:2.4.3' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + annotationProcessor 'androidx.room:room-compiler:2.4.3' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 0fc0f9a..3d8a332 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -31,6 +31,12 @@ android:supportsRtl="true" android:theme="@style/Theme.QTagger" tools:targetApi="31"> + + diff --git a/app/src/main/java/com/qtagger/Activity/AccountAdd.java b/app/src/main/java/com/qtagger/Activity/AccountAdd.java new file mode 100644 index 0000000..95db71a --- /dev/null +++ b/app/src/main/java/com/qtagger/Activity/AccountAdd.java @@ -0,0 +1,64 @@ +package com.qtagger.Activity; + +import androidx.appcompat.app.AppCompatActivity; +import androidx.constraintlayout.utils.widget.ImageFilterButton; +import androidx.room.Room; + +import android.os.Bundle; +import android.view.View; +import android.widget.EditText; +import android.widget.Toast; + +import com.qtagger.Database.Account; +import com.qtagger.Database.AppDatabase; +import com.qtagger.R; + +public class AccountAdd extends AppCompatActivity { + private EditText editAccountId, editAccountName, editAccountDapt; + private ImageFilterButton backBtn; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_account_add); + + editAccountId = (EditText) findViewById(R.id.textView_AccountId); + editAccountName = (EditText) findViewById(R.id.textView_AccountName); + editAccountDapt = (EditText) findViewById(R.id.textView_AccountDapt); + backBtn = (ImageFilterButton) findViewById(R.id.imageFilterButton_Back); + + AppDatabase db = Room.databaseBuilder(this,AppDatabase.class,"AccountDB").allowMainThreadQueries().build(); + + + findViewById(R.id.button_save).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String acId = editAccountId.getText().toString(); + String acName = editAccountId.getText().toString(); + String acDapt = editAccountId.getText().toString(); + + if(acId.isEmpty() || acName.isEmpty() || acDapt.isEmpty()) + { + Toast.makeText(AccountAdd.this, "모두 입력해주세요", Toast.LENGTH_SHORT).show(); + return; + } + + + //DB에 저장 + db.accountDao().insert(new Account(acId,acName,acDapt)); + + Toast.makeText(AccountAdd.this, "계정 생성 성공", Toast.LENGTH_SHORT).show(); + + finish(); + } + }); + + backBtn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + finish(); + } + }); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/qtagger/Activity/AccountList.java b/app/src/main/java/com/qtagger/Activity/AccountList.java new file mode 100644 index 0000000..5bf1491 --- /dev/null +++ b/app/src/main/java/com/qtagger/Activity/AccountList.java @@ -0,0 +1,16 @@ +package com.qtagger.Activity; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +import com.qtagger.R; + +public class AccountList extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_account_list); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/qtagger/Database/Account.java b/app/src/main/java/com/qtagger/Database/Account.java new file mode 100644 index 0000000..e107598 --- /dev/null +++ b/app/src/main/java/com/qtagger/Database/Account.java @@ -0,0 +1,59 @@ +package com.qtagger.Database; +import androidx.room.Entity; +import androidx.room.PrimaryKey; +@Entity +public class Account { + @PrimaryKey(autoGenerate = true) + private int id; + private String accountId; + private String accountName; + private String accountDapt; + + public Account(String accountId, String accountName, String accountDapt) { + this.accountId = accountId; + this.accountName = accountName; + this.accountDapt = accountDapt; + } + + @Override + public String toString() { + return "Account{" + + "id=" + id + + ", accountId='" + accountId + '\'' + + ", accountName='" + accountName + '\'' + + ", accountDapt='" + accountDapt + '\'' + + '}'; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getAccountId() { + return accountId; + } + + public void setAccountId(String accountId) { + this.accountId = accountId; + } + + public String getAccountName() { + return accountName; + } + + public void setAccountName(String accountName) { + this.accountName = accountName; + } + + public String getAccountDapt() { + return accountDapt; + } + + public void setAccountDapt(String accountDapt) { + this.accountDapt = accountDapt; + } +} diff --git a/app/src/main/java/com/qtagger/Database/AccountDao.java b/app/src/main/java/com/qtagger/Database/AccountDao.java new file mode 100644 index 0000000..9a4e383 --- /dev/null +++ b/app/src/main/java/com/qtagger/Database/AccountDao.java @@ -0,0 +1,25 @@ +package com.qtagger.Database; + +import androidx.room.Dao; +import androidx.room.Delete; +import androidx.room.Insert; +import androidx.room.Query; +import androidx.room.Update; + +import java.util.List; + +@Dao +public interface AccountDao { + @Query("SELECT * FROM Account") + List getAll(); + + @Insert + void insert(Account account); + + @Update + void update(Account account); + + @Delete + void delete(Account account); + +} diff --git a/app/src/main/java/com/qtagger/Database/AppDatabase.java b/app/src/main/java/com/qtagger/Database/AppDatabase.java new file mode 100644 index 0000000..2997619 --- /dev/null +++ b/app/src/main/java/com/qtagger/Database/AppDatabase.java @@ -0,0 +1,10 @@ +package com.qtagger.Database; + +import androidx.room.Database; +import androidx.room.RoomDatabase; + +@Database(entities = {Account.class}, version = 1) +public abstract class AppDatabase extends RoomDatabase{ + public abstract AccountDao accountDao(); + +} diff --git a/app/src/main/java/com/qtagger/MainActivity.java b/app/src/main/java/com/qtagger/MainActivity.java index 9ac84a1..cb3f5c1 100644 --- a/app/src/main/java/com/qtagger/MainActivity.java +++ b/app/src/main/java/com/qtagger/MainActivity.java @@ -1,19 +1,65 @@ package com.qtagger; import androidx.appcompat.app.AppCompatActivity; +import androidx.room.Room; import android.content.Context; +import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.Spinner; + +import com.qtagger.Activity.AccountAdd; +import com.qtagger.Activity.AccountList; +import com.qtagger.Database.Account; +import com.qtagger.Database.AppDatabase; + +import java.util.List; public class MainActivity extends AppCompatActivity { + private Spinner mSpinner; + private Button btnLogin; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); + mSpinner = findViewById(R.id.spinner_account); + + //로그인 + findViewById(R.id.button_login).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //로그인 정보 확인 + //로그인 처리 + + } + }); + + //계정 추가 + findViewById(R.id.text_accountInsert).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + //계정추가 페이지 이동 + Intent intent = new Intent(getApplicationContext(), AccountAdd.class); + startActivity(intent); + } + }); + + //계정 목록 보는 페이지 + findViewById(R.id.text_accountList).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getApplicationContext(), AccountList.class); + startActivity(intent); + } + }); + if(getConnectStatus())//온라인 모드 { @@ -24,6 +70,25 @@ public class MainActivity extends AppCompatActivity { } } + @Override + protected void onStart() { + super.onStart(); + + ArrayAdapter aa_items = new ArrayAdapter(this, androidx.appcompat.R.layout.support_simple_spinner_dropdown_item); + aa_items.add("사용자를 선택해주세요"); + AppDatabase db = Room.databaseBuilder(this,AppDatabase.class,"AccountDB").allowMainThreadQueries().build(); + + //초기 데이터 세팅 + List accountList = db.accountDao().getAll(); + for (Account ac: accountList) { + aa_items.add(ac.getAccountName()); + } + + mSpinner.setAdapter(aa_items); + + + } + //인터넷이 연결 되이있는지 확인하는 함수 private boolean getConnectStatus() { diff --git a/app/src/main/res/drawable/_11.png b/app/src/main/res/drawable/_11.png new file mode 100644 index 0000000000000000000000000000000000000000..a1d63c7fcf0a9d7c9e0720b707e323940b48abce GIT binary patch literal 4567 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ʉOX2yFFW6nT^>7i^3eTn7OdeCu>M~! NAwl87&jL2({0Hc%=E(p6 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/back_arrow_5821.png b/app/src/main/res/drawable/back_arrow_5821.png new file mode 100644 index 0000000000000000000000000000000000000000..f69618c2266aec73295aea2ac3931f468f11d5f4 GIT binary patch literal 186 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq z_>O=u<5X=vX`oOFXgoKK-2M#0{1x)+j_UJ<67Mr9ip8`+2 z>&kDfx$;Rd(Nehc)&Jnzj7ONB1aQcg9$BI6CTsYrBhZ~k)&0WW#J*pgjzpu6{1-oD!M<$}T + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/font.xml b/app/src/main/res/font/font.xml new file mode 100644 index 0000000..8f51456 --- /dev/null +++ b/app/src/main/res/font/font.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/font/segoe_ui.ttf b/app/src/main/res/font/segoe_ui.ttf new file mode 100644 index 0000000000000000000000000000000000000000..46b3b99387e33ae81940d9a486ba4e0e9fe5b5e6 GIT binary patch literal 34164 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 t7Gsrp<&4 + + + + + + + + + + + + + + +