From 1fcf35ebebed8084cce78670ca86696629402731 Mon Sep 17 00:00:00 2001 From: topjohnwu Date: Wed, 19 Aug 2020 02:45:14 -0700 Subject: [PATCH] Do not hardcode appcompat widget classes They should be handled by the theme --- .../java/com/topjohnwu/magisk/arch/BaseUIActivity.kt | 11 ++++++----- .../magisk/databinding/DataBindingAdapters.kt | 5 +++++ app/src/main/res/layout/activity_main_md2.xml | 4 ++-- app/src/main/res/layout/activity_request.xml | 4 ++-- app/src/main/res/layout/fragment_flash_md2.xml | 2 +- app/src/main/res/layout/fragment_home_md2.xml | 8 ++++---- app/src/main/res/layout/fragment_install_md2.xml | 6 +++--- app/src/main/res/layout/fragment_module_md2.xml | 2 +- app/src/main/res/layout/fragment_safetynet_md2.xml | 2 +- app/src/main/res/layout/include_hide_filter.xml | 8 ++++---- app/src/main/res/layout/include_home_magisk.xml | 4 ++-- app/src/main/res/layout/include_home_manager.xml | 4 ++-- app/src/main/res/layout/include_module_filter.xml | 6 +++--- app/src/main/res/layout/item_log_access_md2.xml | 8 ++++---- app/src/main/res/layout/item_log_track_md2.xml | 4 ++-- app/src/main/res/layout/item_module_download.xml | 2 +- app/src/main/res/layout/item_module_md2.xml | 2 +- app/src/main/res/layout/item_policy_md2.xml | 6 +++--- app/src/main/res/layout/item_section_md2.xml | 2 +- app/src/main/res/layout/item_spinner.xml | 2 +- app/src/main/res/layout/item_tappable_headline.xml | 6 +++--- app/src/main/res/layout/item_text.xml | 2 +- app/src/main/res/layout/item_theme.xml | 4 ++-- 23 files changed, 55 insertions(+), 49 deletions(-) diff --git a/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt b/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt index a3e1c9002..1c7ba1e88 100644 --- a/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt +++ b/app/src/main/java/com/topjohnwu/magisk/arch/BaseUIActivity.kt @@ -11,8 +11,9 @@ import androidx.databinding.DataBindingUtil import androidx.databinding.OnRebindCallback import androidx.databinding.ViewDataBinding import androidx.lifecycle.MutableLiveData +import androidx.navigation.NavController import androidx.navigation.NavDirections -import androidx.navigation.findNavController +import androidx.navigation.fragment.NavHostFragment import com.topjohnwu.magisk.BR import com.topjohnwu.magisk.core.Config import com.topjohnwu.magisk.core.base.BaseActivity @@ -26,14 +27,14 @@ abstract class BaseUIActivity : protected abstract val layoutRes: Int protected open val themeRes: Int = Theme.selected.themeRes - private val navHostFragment get() = supportFragmentManager.findFragmentById(navHost) + private val navHostFragment by lazy { + supportFragmentManager.findFragmentById(navHost) as? NavHostFragment + } private val topFragment get() = navHostFragment?.childFragmentManager?.fragments?.getOrNull(0) protected val currentFragment get() = topFragment as? BaseUIFragment<*, *> override val viewRoot: View get() = binding.root - open val navigation by lazy { - runCatching { findNavController(navHost) }.getOrNull() - } + open val navigation: NavController? get() = navHostFragment?.navController open val navHost: Int = 0 open val snackbarView get() = binding.root diff --git a/app/src/main/java/com/topjohnwu/magisk/databinding/DataBindingAdapters.kt b/app/src/main/java/com/topjohnwu/magisk/databinding/DataBindingAdapters.kt index 07edb5a1a..e8925af96 100644 --- a/app/src/main/java/com/topjohnwu/magisk/databinding/DataBindingAdapters.kt +++ b/app/src/main/java/com/topjohnwu/magisk/databinding/DataBindingAdapters.kt @@ -199,6 +199,11 @@ fun Button.setIconRes(res: Int) { (this as MaterialButton).setIconResource(res) } +@BindingAdapter("app:icon") +fun Button.setIcon(drawable: Drawable) { + (this as MaterialButton).icon = drawable +} + @BindingAdapter("strokeWidth") fun MaterialCardView.setCardStrokeWidthBound(stroke: Float) { strokeWidth = stroke.roundToInt() diff --git a/app/src/main/res/layout/activity_main_md2.xml b/app/src/main/res/layout/activity_main_md2.xml index cf46dc819..2867a9407 100644 --- a/app/src/main/res/layout/activity_main_md2.xml +++ b/app/src/main/res/layout/activity_main_md2.xml @@ -19,7 +19,7 @@ android:paddingRight="@{viewModel.insets.right}" tools:ignore="RtlHardcoded"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file + diff --git a/app/src/main/res/layout/item_module_download.xml b/app/src/main/res/layout/item_module_download.xml index 6fd357039..a57dbfe43 100644 --- a/app/src/main/res/layout/item_module_download.xml +++ b/app/src/main/res/layout/item_module_download.xml @@ -14,7 +14,7 @@ - - - - - - - - - - - - -