Commit 1fcf35eb authored by topjohnwu's avatar topjohnwu

Do not hardcode appcompat widget classes

They should be handled by the theme
parent 6d749a58
......@@ -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<VM : BaseViewModel, Binding : ViewDataBinding> :
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
......
......@@ -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()
......
......@@ -19,7 +19,7 @@
android:paddingRight="@{viewModel.insets.right}"
tools:ignore="RtlHardcoded">
<fragment
<androidx.fragment.app.FragmentContainerView
android:id="@+id/main_nav_host"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
......@@ -89,7 +89,7 @@
app:labelVisibilityMode="unlabeled"
app:menu="@menu/menu_bottom_nav" />
<androidx.appcompat.widget.AppCompatTextView
<TextView
gone="@{viewModel.isConnected}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
......@@ -124,7 +124,7 @@
android:paddingStart="@dimen/l2"
android:paddingEnd="@dimen/l2">
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/deny_btn"
style="@style/WidgetFoundation.Button.Text"
android:layout_width="0dp"
......@@ -135,7 +135,7 @@
android:textColor="?colorOnSurfaceVariant"
tools:text="@string/deny" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/grant_btn"
style="@style/WidgetFoundation.Button.Text"
android:layout_width="0dp"
......
......@@ -64,7 +64,7 @@
android:layout_gravity="center"
app:contentPadding="@dimen/l1">
<androidx.appcompat.widget.AppCompatTextView
<TextView
movieBehavior="@{viewModel.loading}"
movieBehaviorText="@{viewModel.behaviorText}"
android:layout_width="wrap_content"
......
......@@ -33,7 +33,7 @@
android:orientation="vertical"
android:paddingTop="@dimen/l1">
<com.google.android.material.button.MaterialButton
<Button
android:layout_gravity="center"
style="@style/WidgetFoundation.Button"
gone="@{!viewModel.showTest}"
......@@ -68,7 +68,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/home_notice_hide"
style="@style/WidgetFoundation.Button.Text.OnPrimary"
android:layout_width="wrap_content"
......@@ -110,7 +110,7 @@
android:layout_height="@dimen/l1"
gone="@{!Info.hasGMS &amp;&amp; !viewModel.showUninstall}" />
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Outlined"
android:layout_marginStart="@dimen/l1"
android:layout_marginEnd="@dimen/l1"
......@@ -124,7 +124,7 @@
app:cornerRadius="@dimen/r1"
app:icon="@drawable/ic_safetynet_md2" />
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Outlined.Error"
android:layout_marginStart="@dimen/l1"
android:layout_marginEnd="@dimen/l1"
......
......@@ -74,7 +74,7 @@
app:layout_constraintStart_toEndOf="@+id/install_step_options_icon"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/install_step_options_button"
style="@style/WidgetFoundation.Button.Text"
gone="@{viewModel.step != 0}"
......@@ -153,7 +153,7 @@
app:layout_constraintStart_toEndOf="@+id/install_step_method_icon"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/install_step_method_button"
style="@style/WidgetFoundation.Button.Text"
gone="@{viewModel.step != 1}"
......@@ -238,7 +238,7 @@
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Text"
gone="@{viewModel.step != 2}"
android:layout_width="wrap_content"
......
......@@ -86,7 +86,7 @@
android:gravity="center"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/safetynet_attest_loading"
......
......@@ -214,7 +214,7 @@
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
......
......@@ -25,7 +25,7 @@
tools:layout_gravity="bottom"
tools:paddingBottom="64dp">
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/hide_filter_title_filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -70,7 +70,7 @@
</com.google.android.material.chip.ChipGroup>
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/hide_filter_title_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -96,7 +96,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/hide_filter_title_search">
<androidx.appcompat.widget.AppCompatImageView
<ImageView
style="@style/WidgetFoundation.Icon"
android:layout_width="48dp"
android:layout_height="36dp"
......@@ -105,7 +105,7 @@
app:srcCompat="@drawable/ic_search_md2"
app:tint="?colorDisabled" />
<androidx.appcompat.widget.AppCompatEditText
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="48dp"
......
......@@ -59,7 +59,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/home_magisk_title">
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button"
gone="@{viewModel.stateMagisk != MagiskState.OBSOLETE}"
android:layout_width="wrap_content"
......@@ -69,7 +69,7 @@
android:textAllCaps="false"
app:icon="@drawable/ic_update_md2" />
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Text"
gone="@{viewModel.stateMagisk == MagiskState.OBSOLETE}"
android:layout_width="wrap_content"
......
......@@ -62,7 +62,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/home_manager_title">
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button"
gone="@{viewModel.stateManager != MagiskState.OBSOLETE}"
android:layout_width="wrap_content"
......@@ -72,7 +72,7 @@
android:textAllCaps="false"
app:icon="@drawable/ic_update_md2" />
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Text"
gone="@{viewModel.stateManager == MagiskState.OBSOLETE}"
android:layout_width="wrap_content"
......
......@@ -54,7 +54,7 @@
android:background="@drawable/bg_shadow"
app:layout_constraintBottom_toBottomOf="@+id/module_filter_list" />
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/module_filter_title_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -81,7 +81,7 @@
app:layout_constraintEnd_toStartOf="@+id/module_filter_done"
app:layout_constraintStart_toStartOf="parent">
<androidx.appcompat.widget.AppCompatImageView
<ImageView
style="@style/WidgetFoundation.Icon"
android:layout_width="48dp"
android:layout_height="36dp"
......@@ -90,7 +90,7 @@
app:srcCompat="@drawable/ic_search_md2"
app:tint="?colorDisabled" />
<androidx.appcompat.widget.AppCompatEditText
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="48dp"
......
......@@ -47,7 +47,7 @@
app:layout_constraintStart_toEndOf="@+id/log_track_container"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/log_app_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -60,7 +60,7 @@
app:layout_constraintTop_toTopOf="parent"
tools:text="@string/app_name" />
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/log_date"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -71,7 +71,7 @@
app:layout_constraintTop_toBottomOf="@+id/log_app_name"
tools:text="06:00 PM, 10 Oct 2019" />
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/log_app_details"
android:layout_width="0dp"
android:layout_height="wrap_content"
......@@ -84,7 +84,7 @@
app:layout_constraintTop_toBottomOf="@+id/log_date"
tools:text="PID: 7196 Target UID: 0" />
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@+id/log_command"
android:layout_width="0dp"
android:layout_height="wrap_content"
......
......@@ -42,7 +42,7 @@
app:layout_constraintStart_toStartOf="@+id/track_bullet"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatImageView
<ImageView
android:id="@+id/track_bullet"
style="@style/WidgetFoundation.Image.Small"
isSelected="@{isSelected}"
......
......@@ -14,7 +14,7 @@
</data>
<com.google.android.material.button.MaterialButton
<Button
style="@style/WidgetFoundation.Button.Outlined"
android:layout_width="match_parent"
android:layout_height="wrap_content"
......
......@@ -129,7 +129,7 @@
app:layout_constraintTop_toTopOf="@+id/module_remove"
app:srcCompat="@drawable/ic_info" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/module_remove"
style="@style/WidgetFoundation.Button.Text"
android:layout_width="wrap_content"
......
......@@ -103,7 +103,7 @@
android:background="?colorSurfaceVariant"
tools:visibility="visible">
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/policy_notify"
style="@style/WidgetFoundation.Button.Text"
isSelected="@{item.shouldNotify}"
......@@ -127,7 +127,7 @@
android:layout_marginBottom="@dimen/l_50"
android:background="?colorSurfaceSurfaceVariant" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/policy_log"
style="@style/WidgetFoundation.Button.Text"
isSelected="@{item.shouldLog}"
......@@ -151,7 +151,7 @@
android:layout_marginBottom="@dimen/l_50"
android:background="?colorSurfaceSurfaceVariant" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/policy_delete"
style="@style/WidgetFoundation.Button.Text"
android:layout_weight="1"
......
......@@ -32,7 +32,7 @@
android:textStyle="bold"
tools:text="Installed" />
<com.google.android.material.button.MaterialButton
<Button
android:id="@+id/module_button"
style="@style/WidgetFoundation.Button.Text.Secondary"
invisible="@{!item.hasButton}"
......
......@@ -10,7 +10,7 @@
</data>
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:id="@android:id/text1"
style="?android:attr/spinnerItemStyle"
android:layout_width="match_parent"
......
......@@ -26,7 +26,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatImageView
<ImageView
android:id="@+id/tappable_icon"
style="@style/WidgetFoundation.Icon"
android:background="@null"
......@@ -36,7 +36,7 @@
app:srcCompat="@{item.icon}"
tools:srcCompat="@drawable/ic_hide_md2" />
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:requiresFadingEdge="horizontal"
......@@ -50,7 +50,7 @@
app:layout_constraintTop_toTopOf="parent"
tools:text="@string/magiskhide" />
<androidx.appcompat.widget.AppCompatImageView
<ImageView
android:id="@+id/headline_icon_pointer"
style="@style/WidgetFoundation.Icon"
android:background="@null"
......
......@@ -10,7 +10,7 @@
</data>
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
......
......@@ -114,7 +114,7 @@
android:padding="@dimen/l1"
app:layout_constraintTop_toBottomOf="@+id/theme_card_bottom">
<androidx.appcompat.widget.AppCompatTextView
<TextView
android:layout_width="125dp"
android:layout_height="wrap_content"
android:text="@{theme.themeName}"
......@@ -168,7 +168,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatImageView
<ImageView
style="@style/WidgetFoundation.Icon.OnPrimary"
gone="@{!theme.isSelected}"
android:layout_gravity="end|top"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment