diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..48f16ac
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 16d8ffd..360c39a 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -15,6 +15,12 @@
+
+
+
+
+
+
diff --git a/app/build.gradle b/app/build.gradle
index 798d5e0..a341950 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -21,6 +21,11 @@ android {
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
+
+ buildFeatures{
+ viewBinding true
+ }
+
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1c300e6..d77bd51 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -31,6 +31,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.QTagger"
tools:targetApi="31">
+
diff --git a/app/src/main/java/com/qtagger/Activity/NaviFragment/SearchFragment.java b/app/src/main/java/com/qtagger/Activity/NaviFragment/SearchFragment.java
new file mode 100644
index 0000000..d103082
--- /dev/null
+++ b/app/src/main/java/com/qtagger/Activity/NaviFragment/SearchFragment.java
@@ -0,0 +1,66 @@
+package com.qtagger.Activity.NaviFragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.qtagger.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link SearchFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class SearchFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public SearchFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment SearchFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static SearchFragment newInstance(String param1, String param2) {
+ SearchFragment fragment = new SearchFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_search, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/qtagger/Activity/NaviFragment/SelectFragment.java b/app/src/main/java/com/qtagger/Activity/NaviFragment/SelectFragment.java
new file mode 100644
index 0000000..bd9c3bc
--- /dev/null
+++ b/app/src/main/java/com/qtagger/Activity/NaviFragment/SelectFragment.java
@@ -0,0 +1,66 @@
+package com.qtagger.Activity.NaviFragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.qtagger.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link SelectFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class SelectFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public SelectFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment SelectFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static SelectFragment newInstance(String param1, String param2) {
+ SelectFragment fragment = new SelectFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_select, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/qtagger/Activity/NaviFragment/SettingFragment.java b/app/src/main/java/com/qtagger/Activity/NaviFragment/SettingFragment.java
new file mode 100644
index 0000000..17ef021
--- /dev/null
+++ b/app/src/main/java/com/qtagger/Activity/NaviFragment/SettingFragment.java
@@ -0,0 +1,66 @@
+package com.qtagger.Activity.NaviFragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.qtagger.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link SettingFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class SettingFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public SettingFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment SettingFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static SettingFragment newInstance(String param1, String param2) {
+ SettingFragment fragment = new SettingFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_setting, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/qtagger/Activity/NaviFragment/TestFragment.java b/app/src/main/java/com/qtagger/Activity/NaviFragment/TestFragment.java
new file mode 100644
index 0000000..b321956
--- /dev/null
+++ b/app/src/main/java/com/qtagger/Activity/NaviFragment/TestFragment.java
@@ -0,0 +1,66 @@
+package com.qtagger.Activity.NaviFragment;
+
+import android.os.Bundle;
+
+import androidx.fragment.app.Fragment;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.qtagger.R;
+
+/**
+ * A simple {@link Fragment} subclass.
+ * Use the {@link TestFragment#newInstance} factory method to
+ * create an instance of this fragment.
+ */
+public class TestFragment extends Fragment {
+
+ // TODO: Rename parameter arguments, choose names that match
+ // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
+ private static final String ARG_PARAM1 = "param1";
+ private static final String ARG_PARAM2 = "param2";
+
+ // TODO: Rename and change types of parameters
+ private String mParam1;
+ private String mParam2;
+
+ public TestFragment() {
+ // Required empty public constructor
+ }
+
+ /**
+ * Use this factory method to create a new instance of
+ * this fragment using the provided parameters.
+ *
+ * @param param1 Parameter 1.
+ * @param param2 Parameter 2.
+ * @return A new instance of fragment TestFragment.
+ */
+ // TODO: Rename and change types and number of parameters
+ public static TestFragment newInstance(String param1, String param2) {
+ TestFragment fragment = new TestFragment();
+ Bundle args = new Bundle();
+ args.putString(ARG_PARAM1, param1);
+ args.putString(ARG_PARAM2, param2);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (getArguments() != null) {
+ mParam1 = getArguments().getString(ARG_PARAM1);
+ mParam2 = getArguments().getString(ARG_PARAM2);
+ }
+ }
+
+ @Override
+ public View onCreateView(LayoutInflater inflater, ViewGroup container,
+ Bundle savedInstanceState) {
+ // Inflate the layout for this fragment
+ return inflater.inflate(R.layout.fragment_test, container, false);
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/qtagger/Activity/NavigationActivity.java b/app/src/main/java/com/qtagger/Activity/NavigationActivity.java
new file mode 100644
index 0000000..c10060e
--- /dev/null
+++ b/app/src/main/java/com/qtagger/Activity/NavigationActivity.java
@@ -0,0 +1,86 @@
+package com.qtagger.Activity;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentTransaction;
+
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.MenuItem;
+import android.widget.Toast;
+
+import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.google.android.material.internal.NavigationMenu;
+import com.qtagger.Activity.NaviFragment.SearchFragment;
+import com.qtagger.Activity.NaviFragment.SettingFragment;
+import com.qtagger.Activity.NaviFragment.TestFragment;
+import com.qtagger.R;
+import com.qtagger.databinding.ActivityMainBinding;
+import com.qtagger.util.DataManager;
+
+public class NavigationActivity extends AppCompatActivity {
+ private final long finishtimeed = 1000;
+ private long presstime = 0;
+ private FragmentManager fragmentManager = getSupportFragmentManager();
+ private TestFragment testFragment = new TestFragment();
+ private SearchFragment searchFragment = new SearchFragment();
+ private SettingFragment settingFragment = new SettingFragment();
+ private DataManager dataManager = DataManager.getInstance();
+
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_navigation);
+
+ FragmentTransaction transaction = fragmentManager.beginTransaction();
+ transaction.replace(R.id.frame, testFragment).commitAllowingStateLoss();
+
+ BottomNavigationView bottomNavigationView = findViewById(R.id.nav_view);
+ bottomNavigationView.setOnNavigationItemSelectedListener(new ItemSelectedListener());
+
+
+ }
+
+ class ItemSelectedListener implements BottomNavigationView.OnNavigationItemSelectedListener {
+ @Override
+ public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
+ FragmentTransaction transaction = fragmentManager.beginTransaction();
+
+ switch (menuItem.getItemId()) {
+ case R.id.navigation_test:
+ transaction.replace(R.id.frame, testFragment).commitAllowingStateLoss();
+ break;
+ case R.id.navigation_search:
+ transaction.replace(R.id.frame, searchFragment).commitAllowingStateLoss();
+ break;
+ case R.id.navigation_setting:
+ transaction.replace(R.id.frame, settingFragment).commitAllowingStateLoss();
+ break;
+
+ }
+
+ return true;
+ }
+ }
+
+
+ @Override
+ public void onBackPressed() {
+ long tempTime = System.currentTimeMillis();
+ long intervalTime = tempTime - presstime;
+
+ if (0 <= intervalTime && finishtimeed >= intervalTime)
+ {
+ moveTaskToBack(true);
+ finish();
+ android.os.Process.killProcess(android.os.Process.myPid());
+ }
+ else
+ {
+ presstime = tempTime;
+ Toast.makeText(getApplicationContext(), "한번더 누르시면 앱이 종료됩니다", Toast.LENGTH_SHORT).show();
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/qtagger/MainActivity.java b/app/src/main/java/com/qtagger/MainActivity.java
index 25bdae4..ad118c6 100644
--- a/app/src/main/java/com/qtagger/MainActivity.java
+++ b/app/src/main/java/com/qtagger/MainActivity.java
@@ -18,6 +18,7 @@ import android.widget.Toast;
import com.qtagger.Activity.AccountAdd;
import com.qtagger.Activity.AccountList;
+import com.qtagger.Activity.NavigationActivity;
import com.qtagger.Database.Account;
import com.qtagger.Database.AppDatabase;
import com.qtagger.util.DataManager;
@@ -59,7 +60,8 @@ public class MainActivity extends AppCompatActivity {
if(selectAcc != null)//로그인 처리
{
dataManager.loginAccount = selectAcc;
-
+ Intent intent2 = new Intent(getApplicationContext(), NavigationActivity.class);
+ startActivity(intent2);
}
diff --git a/app/src/main/res/drawable/document_checklist_icon_icons_com_32.png b/app/src/main/res/drawable/document_checklist_icon_icons_com_32.png
new file mode 100644
index 0000000..2646ca0
Binary files /dev/null and b/app/src/main/res/drawable/document_checklist_icon_icons_com_32.png differ
diff --git a/app/src/main/res/drawable/more_button_of_three_dots_icon_icons_com_74259___.png b/app/src/main/res/drawable/more_button_of_three_dots_icon_icons_com_74259___.png
new file mode 100644
index 0000000..4bd93ad
Binary files /dev/null and b/app/src/main/res/drawable/more_button_of_three_dots_icon_icons_com_74259___.png differ
diff --git a/app/src/main/res/drawable/searchmagnifierinterfacesymbol1_32.png b/app/src/main/res/drawable/searchmagnifierinterfacesymbol1_32.png
new file mode 100644
index 0000000..912139f
Binary files /dev/null and b/app/src/main/res/drawable/searchmagnifierinterfacesymbol1_32.png differ
diff --git a/app/src/main/res/layout/activity_navigation.xml b/app/src/main/res/layout/activity_navigation.xml
new file mode 100644
index 0000000..ae95f9a
--- /dev/null
+++ b/app/src/main/res/layout/activity_navigation.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_search.xml b/app/src/main/res/layout/fragment_search.xml
new file mode 100644
index 0000000..49cd1e5
--- /dev/null
+++ b/app/src/main/res/layout/fragment_search.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_select.xml b/app/src/main/res/layout/fragment_select.xml
new file mode 100644
index 0000000..d8866ba
--- /dev/null
+++ b/app/src/main/res/layout/fragment_select.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_setting.xml b/app/src/main/res/layout/fragment_setting.xml
new file mode 100644
index 0000000..f811f46
--- /dev/null
+++ b/app/src/main/res/layout/fragment_setting.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_test.xml b/app/src/main/res/layout/fragment_test.xml
new file mode 100644
index 0000000..287b230
--- /dev/null
+++ b/app/src/main/res/layout/fragment_test.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml
new file mode 100644
index 0000000..0d0c408
--- /dev/null
+++ b/app/src/main/res/menu/bottom_nav_menu.xml
@@ -0,0 +1,17 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 69f5585..bc4cab3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,3 +1,5 @@
QTagger
+
+ Hello blank fragment
\ No newline at end of file