From 0bdd33ef4a54e34e2ef2372456de4915139e088f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Borcz?= Date: Sat, 3 Apr 2021 11:46:36 +0200 Subject: [PATCH] Migrate to material components bottom navigation (#1244) --- app/build.gradle | 1 - .../wulkanowy/ui/modules/main/MainActivity.kt | 43 +++++++------------ .../ui/widgets/SwipeDisabledViewPager.kt | 19 ++++++++ app/src/main/res/layout/activity_login.xml | 6 +-- app/src/main/res/layout/activity_main.xml | 9 ++-- app/src/main/res/values/dimens.xml | 5 --- app/src/main/res/values/styles.xml | 4 ++ app/src/main/res/xml/identificators.xml | 9 ---- 8 files changed, 47 insertions(+), 49 deletions(-) create mode 100644 app/src/main/java/io/github/wulkanowy/ui/widgets/SwipeDisabledViewPager.kt delete mode 100644 app/src/main/res/values/dimens.xml delete mode 100644 app/src/main/res/xml/identificators.xml diff --git a/app/build.gradle b/app/build.gradle index e5e51b106..c29a25c90 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -202,7 +202,6 @@ dependencies { implementation "androidx.hilt:hilt-work:$work_hilt" kapt "androidx.hilt:hilt-compiler:$work_hilt" - implementation "com.aurelhubert:ahbottomnavigation:2.3.4" implementation "com.ncapdevi:frag-nav:3.3.0" implementation "com.github.YarikSOffice:lingver:1.3.0" diff --git a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt index 37c6c6e75..741cfb180 100644 --- a/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt +++ b/app/src/main/java/io/github/wulkanowy/ui/modules/main/MainActivity.kt @@ -26,8 +26,6 @@ import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat -import com.aurelhubert.ahbottomnavigation.AHBottomNavigation.TitleState.ALWAYS_SHOW -import com.aurelhubert.ahbottomnavigation.AHBottomNavigationItem import com.google.android.material.elevation.ElevationOverlayProvider import com.ncapdevi.fragnav.FragNavController import com.ncapdevi.fragnav.FragNavController.Companion.HIDE @@ -220,32 +218,21 @@ class MainActivity : BaseActivity(), MainVie } with(binding.mainBottomNav) { - addItems( - listOf( - AHBottomNavigationItem(R.string.grade_title, R.drawable.ic_main_grade, 0), - AHBottomNavigationItem( - R.string.attendance_title, - R.drawable.ic_main_attendance, - 0 - ), - AHBottomNavigationItem(R.string.exam_title, R.drawable.ic_main_exam, 0), - AHBottomNavigationItem( - R.string.timetable_title, - R.drawable.ic_main_timetable, - 0 - ), - AHBottomNavigationItem(R.string.more_title, R.drawable.ic_main_more, 0) - ) - ) - accentColor = getThemeAttrColor(R.attr.colorPrimary) - inactiveColor = getThemeAttrColor(R.attr.colorOnSurface, 153) - defaultBackgroundColor = - overlayProvider.compositeOverlayWithThemeSurfaceColorIfNeeded(dpToPx(8f)) - titleState = ALWAYS_SHOW - currentItem = startMenuIndex - isBehaviorTranslationEnabled = false - setTitleTextSizeInSp(10f, 10f) - setOnTabSelectedListener(presenter::onTabSelected) + with(menu) { + add(Menu.NONE, 0, Menu.NONE, R.string.grade_title) + .setIcon(R.drawable.ic_main_grade) + add(Menu.NONE, 1, Menu.NONE, R.string.attendance_title) + .setIcon(R.drawable.ic_main_attendance) + add(Menu.NONE, 2, Menu.NONE, R.string.exam_title) + .setIcon(R.drawable.ic_main_exam) + add(Menu.NONE, 3, Menu.NONE, R.string.timetable_title) + .setIcon(R.drawable.ic_main_timetable) + add(Menu.NONE, 4, Menu.NONE, R.string.more_title) + .setIcon(R.drawable.ic_main_more) + } + selectedItemId = startMenuIndex + setOnNavigationItemSelectedListener { presenter.onTabSelected(it.itemId, false) } + setOnNavigationItemReselectedListener { presenter.onTabSelected(it.itemId, true) } } with(navController) { diff --git a/app/src/main/java/io/github/wulkanowy/ui/widgets/SwipeDisabledViewPager.kt b/app/src/main/java/io/github/wulkanowy/ui/widgets/SwipeDisabledViewPager.kt new file mode 100644 index 000000000..eb5cae4f3 --- /dev/null +++ b/app/src/main/java/io/github/wulkanowy/ui/widgets/SwipeDisabledViewPager.kt @@ -0,0 +1,19 @@ +package io.github.wulkanowy.ui.widgets + +import android.annotation.SuppressLint +import android.content.Context +import android.util.AttributeSet +import android.view.MotionEvent +import androidx.viewpager.widget.ViewPager + +class SwipeDisabledViewPager : ViewPager { + + constructor(context: Context) : super(context) + + constructor(context: Context, attr: AttributeSet) : super(context, attr) + + @SuppressLint("ClickableViewAccessibility") + override fun onTouchEvent(ev: MotionEvent) = false + + override fun onInterceptTouchEvent(ev: MotionEvent) = false +} diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 3841b25cd..e55ea8b95 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -6,11 +6,11 @@ + android:layout_height="wrap_content" + android:background="@android:color/transparent" /> - diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 2ea0a4d39..91283abee 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -17,11 +17,14 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="?actionBarSize" - android:layout_marginBottom="@dimen/bottom_navigation_height" /> + android:layout_marginBottom="56dp" /> - + android:layout_gravity="bottom" + app:itemTextAppearanceActive="@style/WulkanowyTheme.TextAppearanceBottomNavigation" + app:itemTextAppearanceInactive="@style/WulkanowyTheme.TextAppearanceBottomNavigation" + app:labelVisibilityMode="labeled" /> diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml deleted file mode 100644 index a4bf80ed6..000000000 --- a/app/src/main/res/values/dimens.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - 8dp - 8dp - diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 297a4f288..08867b79e 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -34,6 +34,10 @@ ?android:textColorPrimary + +