Updated action cards to be more colorful
This commit is contained in:
parent
cc7e47bbb6
commit
cb59cc92a3
@ -24,7 +24,7 @@ val redesignModule = module {
|
|||||||
viewModel { RequestViewModel() }
|
viewModel { RequestViewModel() }
|
||||||
viewModel { SafetynetViewModel(get()) }
|
viewModel { SafetynetViewModel(get()) }
|
||||||
viewModel { SettingsViewModel() }
|
viewModel { SettingsViewModel() }
|
||||||
viewModel { SuperuserViewModel(get(), get(), get(), get()) }
|
viewModel { SuperuserViewModel(get(), get(), get()) }
|
||||||
viewModel { ThemeViewModel() }
|
viewModel { ThemeViewModel() }
|
||||||
viewModel { InstallViewModel() }
|
viewModel { InstallViewModel() }
|
||||||
|
|
||||||
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.topjohnwu.magisk.model.entity.recycler
|
||||||
|
|
||||||
|
import com.topjohnwu.magisk.R
|
||||||
|
import com.topjohnwu.magisk.databinding.ComparableRvItem
|
||||||
|
|
||||||
|
sealed class TappableHeadlineItem : ComparableRvItem<TappableHeadlineItem>() {
|
||||||
|
|
||||||
|
abstract val title: Int
|
||||||
|
abstract val icon: Int
|
||||||
|
|
||||||
|
override val layoutRes = R.layout.item_tappable_headline
|
||||||
|
|
||||||
|
override fun itemSameAs(other: TappableHeadlineItem) =
|
||||||
|
this === other
|
||||||
|
|
||||||
|
override fun contentSameAs(other: TappableHeadlineItem) =
|
||||||
|
title == other.title && icon == other.icon
|
||||||
|
|
||||||
|
// --- listener
|
||||||
|
|
||||||
|
interface Listener {
|
||||||
|
|
||||||
|
fun onItemPressed(item: TappableHeadlineItem)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- objects
|
||||||
|
|
||||||
|
object Hide : TappableHeadlineItem() {
|
||||||
|
override val title = R.string.magisk_hide_md2
|
||||||
|
override val icon = R.drawable.ic_hide_md2
|
||||||
|
}
|
||||||
|
|
||||||
|
object Safetynet : TappableHeadlineItem() {
|
||||||
|
override val title = R.string.safetyNet
|
||||||
|
override val icon = R.drawable.ic_safetynet_md2
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -11,6 +11,7 @@ import com.topjohnwu.magisk.extensions.subscribeK
|
|||||||
import com.topjohnwu.magisk.extensions.toggle
|
import com.topjohnwu.magisk.extensions.toggle
|
||||||
import com.topjohnwu.magisk.model.entity.MagiskPolicy
|
import com.topjohnwu.magisk.model.entity.MagiskPolicy
|
||||||
import com.topjohnwu.magisk.model.entity.recycler.PolicyItem
|
import com.topjohnwu.magisk.model.entity.recycler.PolicyItem
|
||||||
|
import com.topjohnwu.magisk.model.entity.recycler.TappableHeadlineItem
|
||||||
import com.topjohnwu.magisk.model.events.PolicyUpdateEvent
|
import com.topjohnwu.magisk.model.events.PolicyUpdateEvent
|
||||||
import com.topjohnwu.magisk.model.events.SnackbarEvent
|
import com.topjohnwu.magisk.model.events.SnackbarEvent
|
||||||
import com.topjohnwu.magisk.model.events.dialog.BiometricDialog
|
import com.topjohnwu.magisk.model.events.dialog.BiometricDialog
|
||||||
@ -20,26 +21,26 @@ import com.topjohnwu.magisk.redesign.compat.CompatViewModel
|
|||||||
import com.topjohnwu.magisk.redesign.home.itemBindingOf
|
import com.topjohnwu.magisk.redesign.home.itemBindingOf
|
||||||
import com.topjohnwu.magisk.utils.BiometricHelper
|
import com.topjohnwu.magisk.utils.BiometricHelper
|
||||||
import com.topjohnwu.magisk.utils.DiffObservableList
|
import com.topjohnwu.magisk.utils.DiffObservableList
|
||||||
import com.topjohnwu.magisk.utils.RxBus
|
|
||||||
import com.topjohnwu.magisk.utils.currentLocale
|
import com.topjohnwu.magisk.utils.currentLocale
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
|
|
||||||
class SuperuserViewModel(
|
class SuperuserViewModel(
|
||||||
private val rxBus: RxBus,
|
|
||||||
private val db: PolicyDao,
|
private val db: PolicyDao,
|
||||||
private val packageManager: PackageManager,
|
private val packageManager: PackageManager,
|
||||||
private val resources: Resources
|
private val resources: Resources
|
||||||
) : CompatViewModel() {
|
) : CompatViewModel(), TappableHeadlineItem.Listener {
|
||||||
|
|
||||||
val items = diffListOf<PolicyItem>()
|
val items = diffListOf<ComparableRvItem<*>>()
|
||||||
val itemBinding = itemBindingOf<PolicyItem> {
|
val itemBinding = itemBindingOf<ComparableRvItem<*>> {
|
||||||
it.bindExtra(BR.viewModel, this)
|
it.bindExtra(BR.viewModel, this)
|
||||||
|
it.bindExtra(BR.listener, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
companion object {
|
||||||
rxBus.register<PolicyUpdateEvent>()
|
private val menuOptions = listOf(
|
||||||
.subscribeK { updatePolicy(it) }
|
TappableHeadlineItem.Hide,
|
||||||
.add()
|
TappableHeadlineItem.Safetynet
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---
|
// ---
|
||||||
@ -56,6 +57,7 @@ class SuperuserViewModel(
|
|||||||
).compare(o1, o2)
|
).compare(o1, o2)
|
||||||
}
|
}
|
||||||
.toList()
|
.toList()
|
||||||
|
.map { menuOptions + it }
|
||||||
.map { it to items.calculateDiff(it) }
|
.map { it to items.calculateDiff(it) }
|
||||||
.applySchedulers()
|
.applySchedulers()
|
||||||
.applyViewModel(this)
|
.applyViewModel(this)
|
||||||
@ -63,12 +65,19 @@ class SuperuserViewModel(
|
|||||||
|
|
||||||
// ---
|
// ---
|
||||||
|
|
||||||
fun safetynetPressed() = Navigation.safetynet().publish()
|
@Suppress("REDUNDANT_ELSE_IN_WHEN")
|
||||||
fun hidePressed() = Navigation.hide().publish()
|
override fun onItemPressed(item: TappableHeadlineItem) = when (item) {
|
||||||
|
TappableHeadlineItem.Hide -> hidePressed()
|
||||||
|
TappableHeadlineItem.Safetynet -> safetynetPressed()
|
||||||
|
else -> Unit
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun safetynetPressed() = Navigation.safetynet().publish()
|
||||||
|
private fun hidePressed() = Navigation.hide().publish()
|
||||||
|
|
||||||
fun deletePressed(item: PolicyItem) {
|
fun deletePressed(item: PolicyItem) {
|
||||||
fun updateState() = deletePolicy(item.item)
|
fun updateState() = deletePolicy(item.item)
|
||||||
.subscribeK { items.removeAll { it.itemSameAs(item) } }
|
.subscribeK { items.removeAll { it.genericItemSameAs(item) } }
|
||||||
.add()
|
.add()
|
||||||
|
|
||||||
if (BiometricHelper.isEnabled) {
|
if (BiometricHelper.isEnabled) {
|
||||||
|
5
app/src/main/res/color/color_secondary_transient.xml
Normal file
5
app/src/main/res/color/color_secondary_transient.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:color="?colorDisabled" android:state_enabled="false" />
|
||||||
|
<item android:color="?colorSecondary" />
|
||||||
|
</selector>
|
@ -28,7 +28,7 @@
|
|||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/settings_card_redesign"
|
android:id="@+id/settings_card_redesign"
|
||||||
style="@style/WidgetFoundation.Card"
|
style="@style/WidgetFoundation.Card.Variant.Secondary"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="@dimen/l1"
|
android:layout_marginLeft="@dimen/l1"
|
||||||
@ -51,7 +51,7 @@
|
|||||||
android:gravity="start"
|
android:gravity="start"
|
||||||
android:paddingStart="@dimen/l1"
|
android:paddingStart="@dimen/l1"
|
||||||
android:text="Redesign"
|
android:text="Redesign"
|
||||||
android:textAppearance="@style/AppearanceFoundation.Body"
|
android:textAppearance="@style/AppearanceFoundation.Body.Secondary"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/settings_card_redesign_switch"
|
app:layout_constraintEnd_toStartOf="@+id/settings_card_redesign_switch"
|
||||||
@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/settings_card_theme"
|
android:id="@+id/settings_card_theme"
|
||||||
style="@style/WidgetFoundation.Card"
|
style="@style/WidgetFoundation.Card.Variant.Secondary"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/l1"
|
android:layout_marginStart="@dimen/l1"
|
||||||
@ -91,7 +91,7 @@
|
|||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/settings_card_theme_dark_icon"
|
android:id="@+id/settings_card_theme_dark_icon"
|
||||||
style="@style/WidgetFoundation.Icon"
|
style="@style/WidgetFoundation.Icon.Secondary"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@ -100,7 +100,7 @@
|
|||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/settings_card_theme_dark_pointer"
|
android:id="@+id/settings_card_theme_dark_pointer"
|
||||||
style="@style/WidgetFoundation.Icon"
|
style="@style/WidgetFoundation.Icon.Secondary"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:rotation="180"
|
android:rotation="180"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@ -116,7 +116,7 @@
|
|||||||
android:gravity="start|center_vertical"
|
android:gravity="start|center_vertical"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:text="@string/section_theme"
|
android:text="@string/section_theme"
|
||||||
android:textAppearance="@style/AppearanceFoundation.Body"
|
android:textAppearance="@style/AppearanceFoundation.Body.Secondary"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/settings_card_theme_dark_pointer"
|
app:layout_constraintEnd_toStartOf="@+id/settings_card_theme_dark_pointer"
|
||||||
|
@ -13,131 +13,9 @@
|
|||||||
|
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:clipToPadding="false"
|
|
||||||
android:fillViewport="true"
|
|
||||||
android:paddingTop="@{viewModel.insets.top + (int) @dimen/internal_action_bar_size}"
|
|
||||||
android:paddingBottom="@{viewModel.insets.bottom + (int) @dimen/l2}"
|
|
||||||
tools:layout_marginTop="24dp"
|
|
||||||
tools:paddingTop="@dimen/l1">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:paddingTop="@dimen/l1">
|
|
||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
|
||||||
android:id="@+id/superuser_hide"
|
|
||||||
style="@style/WidgetFoundation.Card"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="@dimen/l1"
|
|
||||||
android:layout_marginEnd="@dimen/l1"
|
|
||||||
android:onClick="@{() -> viewModel.hidePressed()}"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/superuser_safetynet"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/superuser_hide_icon"
|
|
||||||
style="@style/WidgetFoundation.Icon"
|
|
||||||
android:background="@null"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:srcCompat="@drawable/ic_hide_md2" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:requiresFadingEdge="horizontal"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:text="@string/magisk_hide_md2"
|
|
||||||
android:textAppearance="@style/AppearanceFoundation.Body"
|
|
||||||
android:textStyle="bold"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/superuser_hide_icon_pointer"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/superuser_hide_icon"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/superuser_hide_icon_pointer"
|
|
||||||
style="@style/WidgetFoundation.Icon"
|
|
||||||
android:background="@null"
|
|
||||||
android:rotation="180"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:srcCompat="@drawable/ic_back_md2" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
</com.google.android.material.card.MaterialCardView>
|
|
||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
|
||||||
android:id="@+id/superuser_safetynet"
|
|
||||||
style="@style/WidgetFoundation.Card"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="@dimen/l1"
|
|
||||||
android:onClick="@{() -> viewModel.safetynetPressed()}"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/superuser_hide"
|
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/superuser_safetynet_icon"
|
|
||||||
style="@style/WidgetFoundation.Icon"
|
|
||||||
android:background="@null"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:srcCompat="@drawable/ic_safetynet_md2" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:requiresFadingEdge="horizontal"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:text="@string/safetyNet"
|
|
||||||
android:textAppearance="@style/AppearanceFoundation.Body"
|
|
||||||
android:textStyle="bold"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/superuser_safetynet_icon_pointer"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/superuser_safetynet_icon"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/superuser_safetynet_icon_pointer"
|
|
||||||
style="@style/WidgetFoundation.Icon"
|
|
||||||
android:background="@null"
|
|
||||||
android:rotation="180"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
|
||||||
app:srcCompat="@drawable/ic_back_md2" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
</com.google.android.material.card.MaterialCardView>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.Barrier
|
|
||||||
android:id="@+id/superuser_top_barrier"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
app:barrierDirection="bottom"
|
|
||||||
app:constraint_referenced_ids="superuser_hide,superuser_safetynet" />
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
dividerHorizontal="@{R.drawable.divider_l1}"
|
dividerHorizontal="@{R.drawable.divider_l1}"
|
||||||
@ -147,16 +25,17 @@
|
|||||||
items="@{viewModel.items}"
|
items="@{viewModel.items}"
|
||||||
nestedScrollingEnabled="@{false}"
|
nestedScrollingEnabled="@{false}"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="match_parent"
|
||||||
android:clipToPadding="false"
|
android:clipToPadding="false"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingStart="@dimen/l1"
|
android:paddingStart="@dimen/l1"
|
||||||
android:paddingTop="@dimen/l1"
|
android:paddingTop="@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l1}"
|
||||||
android:paddingBottom="@dimen/l1"
|
android:paddingBottom="@{viewModel.insets.bottom + (int) @dimen/l2}"
|
||||||
app:layoutManager="androidx.recyclerview.widget.StaggeredGridLayoutManager"
|
app:layoutManager="androidx.recyclerview.widget.StaggeredGridLayoutManager"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/superuser_top_barrier"
|
|
||||||
app:spanCount="2"
|
app:spanCount="2"
|
||||||
tools:listitem="@layout/item_policy_md2" />
|
tools:layout_marginTop="24dp"
|
||||||
|
tools:listitem="@layout/item_policy_md2"
|
||||||
|
tools:paddingTop="@dimen/l1" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
goneUnless="@{viewModel.loading && viewModel.items.empty}"
|
goneUnless="@{viewModel.loading && viewModel.items.empty}"
|
||||||
@ -164,9 +43,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical">
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/superuser_top_barrier">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@ -181,8 +58,6 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
|
||||||
</layout>
|
</layout>
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
<com.google.android.material.card.MaterialCardView
|
<com.google.android.material.card.MaterialCardView
|
||||||
android:id="@+id/theme_card_dark"
|
android:id="@+id/theme_card_dark"
|
||||||
style="@style/WidgetFoundation.Card"
|
style="@style/WidgetFoundation.Card.Variant.Secondary"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:onClick="@{() -> viewModel.darkModePressed()}"
|
android:onClick="@{() -> viewModel.darkModePressed()}"
|
||||||
@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/settings_card_dark_icon"
|
android:id="@+id/settings_card_dark_icon"
|
||||||
style="@style/WidgetFoundation.Icon"
|
style="@style/WidgetFoundation.Icon.Secondary"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/settings_card_dark_pointer"
|
android:id="@+id/settings_card_dark_pointer"
|
||||||
style="@style/WidgetFoundation.Icon"
|
style="@style/WidgetFoundation.Icon.Secondary"
|
||||||
android:background="@null"
|
android:background="@null"
|
||||||
android:rotation="180"
|
android:rotation="180"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
@ -71,7 +71,7 @@
|
|||||||
android:gravity="start|center_vertical"
|
android:gravity="start|center_vertical"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:text="@string/settings_dark_mode_title"
|
android:text="@string/settings_dark_mode_title"
|
||||||
android:textAppearance="@style/AppearanceFoundation.Body"
|
android:textAppearance="@style/AppearanceFoundation.Body.Secondary"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/settings_card_dark_pointer"
|
app:layout_constraintEnd_toStartOf="@+id/settings_card_dark_pointer"
|
||||||
|
67
app/src/main/res/layout/item_tappable_headline.xml
Normal file
67
app/src/main/res/layout/item_tappable_headline.xml
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="item"
|
||||||
|
type="com.topjohnwu.magisk.model.entity.recycler.TappableHeadlineItem" />
|
||||||
|
|
||||||
|
<variable
|
||||||
|
name="listener"
|
||||||
|
type="com.topjohnwu.magisk.model.entity.recycler.TappableHeadlineItem.Listener" />
|
||||||
|
|
||||||
|
</data>
|
||||||
|
|
||||||
|
<com.google.android.material.card.MaterialCardView
|
||||||
|
style="@style/WidgetFoundation.Card.Variant.Secondary"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:onClick="@{() -> listener.onItemPressed(item)}"
|
||||||
|
tools:layout_gravity="center">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/tappable_icon"
|
||||||
|
style="@style/WidgetFoundation.Icon.Secondary"
|
||||||
|
android:background="@null"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:srcCompat="@{item.icon}"
|
||||||
|
tools:srcCompat="@drawable/ic_hide_md2" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:requiresFadingEdge="horizontal"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="@{item.title}"
|
||||||
|
android:textAppearance="@style/AppearanceFoundation.Body.Secondary"
|
||||||
|
android:textStyle="bold"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toStartOf="@+id/headline_icon_pointer"
|
||||||
|
app:layout_constraintStart_toEndOf="@+id/tappable_icon"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
tools:text="@string/magisk_hide_md2" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/headline_icon_pointer"
|
||||||
|
style="@style/WidgetFoundation.Icon.Secondary"
|
||||||
|
android:background="@null"
|
||||||
|
android:rotation="180"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
app:srcCompat="@drawable/ic_back_md2" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</com.google.android.material.card.MaterialCardView>
|
||||||
|
|
||||||
|
</layout>
|
@ -48,6 +48,14 @@
|
|||||||
<item name="android:textColor">?attr/colorOnSurfaceVariant</item>
|
<item name="android:textColor">?attr/colorOnSurfaceVariant</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="AppearanceFoundation.Body.Primary">
|
||||||
|
<item name="android:textColor">?attr/colorPrimary</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="AppearanceFoundation.Body.Secondary">
|
||||||
|
<item name="android:textColor">?attr/colorSecondary</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="AppearanceFoundation.Body.OnPrimary">
|
<style name="AppearanceFoundation.Body.OnPrimary">
|
||||||
<item name="android:textColor">?attr/colorOnPrimary</item>
|
<item name="android:textColor">?attr/colorOnPrimary</item>
|
||||||
</style>
|
</style>
|
||||||
|
@ -30,6 +30,14 @@
|
|||||||
<item name="strokeWidth">1.5dp</item>
|
<item name="strokeWidth">1.5dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="WidgetFoundation.Card.Variant.Primary">
|
||||||
|
<item name="strokeColor">?colorPrimary</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="WidgetFoundation.Card.Variant.Secondary">
|
||||||
|
<item name="strokeColor">?colorSecondary</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="WidgetFoundation.Card.Elevated" parent="Widget.MaterialComponents.CardView">
|
<style name="WidgetFoundation.Card.Elevated" parent="Widget.MaterialComponents.CardView">
|
||||||
<item name="cardBackgroundColor">?colorSurfaceSurfaceVariant</item>
|
<item name="cardBackgroundColor">?colorSurfaceSurfaceVariant</item>
|
||||||
<item name="cardCornerRadius">@dimen/l_50</item>
|
<item name="cardCornerRadius">@dimen/l_50</item>
|
||||||
@ -138,6 +146,10 @@
|
|||||||
<item name="tint">@color/color_primary_transient</item>
|
<item name="tint">@color/color_primary_transient</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="WidgetFoundation.Icon.Secondary">
|
||||||
|
<item name="tint">@color/color_secondary_transient</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="WidgetFoundation.Icon.OnPrimary">
|
<style name="WidgetFoundation.Icon.OnPrimary">
|
||||||
<item name="tint">@color/color_on_primary_transient</item>
|
<item name="tint">@color/color_on_primary_transient</item>
|
||||||
</style>
|
</style>
|
||||||
|
Loading…
Reference in New Issue
Block a user