diff --git a/.idea/misc.xml b/.idea/misc.xml index cc5f875..b73fd9c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,27 +1,53 @@ + + + diff --git a/app/src/main/java/net/typeblog/shelter/ui/MainActivity.java b/app/src/main/java/net/typeblog/shelter/ui/MainActivity.java index ee3aba7..15d8049 100644 --- a/app/src/main/java/net/typeblog/shelter/ui/MainActivity.java +++ b/app/src/main/java/net/typeblog/shelter/ui/MainActivity.java @@ -18,7 +18,6 @@ import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.SearchView; @@ -27,8 +26,7 @@ import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; -import com.google.android.material.tabs.TabLayout; -import com.google.android.material.tabs.TabLayoutMediator; +import com.google.android.material.bottomnavigation.BottomNavigationView; import net.typeblog.shelter.R; import net.typeblog.shelter.ShelterApplication; @@ -204,7 +202,7 @@ public class MainActivity extends AppCompatActivity { // Finally we can build the view // Find all the views ViewPager2 pager = findViewById(R.id.main_pager); - TabLayout tabs = findViewById(R.id.main_tablayout); + BottomNavigationView nav = findViewById(R.id.main_bottom_navigation); // Initialize the ViewPager and the tab // All the remaining work will be done in the fragments @@ -226,12 +224,25 @@ public class MainActivity extends AppCompatActivity { return 2; } }); - String[] pageTitles = new String[]{ - getString(R.string.fragment_profile_main), - getString(R.string.fragment_profile_work) - }; - new TabLayoutMediator(tabs, pager, (tab, position) -> - tab.setText(pageTitles[position])).attach(); + pager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { + @Override + public void onPageSelected(int position) { + int[] menuIds = new int[]{ + R.id.bottom_navigation_main, + R.id.bottom_navigation_work + }; + nav.setSelectedItemId(menuIds[position]); + } + }); + nav.setOnItemSelectedListener((MenuItem item) -> { + int itemId = item.getItemId(); + if (itemId == R.id.bottom_navigation_main) { + pager.setCurrentItem(0); + } else if (itemId == R.id.bottom_navigation_work) { + pager.setCurrentItem(1); + } + return true; + }); } // Get the service on the other side diff --git a/app/src/main/res/drawable/bottom_navigation_color_selector.xml b/app/src/main/res/drawable/bottom_navigation_color_selector.xml new file mode 100644 index 0000000..6b84d3b --- /dev/null +++ b/app/src/main/res/drawable/bottom_navigation_color_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_home.xml b/app/src/main/res/drawable/ic_home.xml new file mode 100644 index 0000000..5a870f5 --- /dev/null +++ b/app/src/main/res/drawable/ic_home.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_work.xml b/app/src/main/res/drawable/ic_work.xml new file mode 100644 index 0000000..004293d --- /dev/null +++ b/app/src/main/res/drawable/ic_work.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 498de4f..9ef7b47 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -10,6 +10,7 @@ android:id="@+id/main_appbar" android:layout_width="0dp" android:layout_height="wrap_content" + app:elevation="0dp" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"> @@ -22,13 +23,6 @@ app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> - - + app:layout_constraintBottom_toTopOf="@+id/main_bottom_navigation" /> + + \ No newline at end of file diff --git a/app/src/main/res/menu/bottom_navigation_menu.xml b/app/src/main/res/menu/bottom_navigation_menu.xml new file mode 100644 index 0000000..db10e5c --- /dev/null +++ b/app/src/main/res/menu/bottom_navigation_menu.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values-v27/styles.xml b/app/src/main/res/values-v27/styles.xml new file mode 100644 index 0000000..65a476b --- /dev/null +++ b/app/src/main/res/values-v27/styles.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index a61264d..93f28fc 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -4,6 +4,7 @@ #C2C2C2 #009688 #FFC107 + #E0F2F1 #333333 #999999 #E0F2F1 diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 25d0c4e..d21dc88 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,7 +1,7 @@ - + + + +