Commit f1427e92 authored by Viktor De Pasquale's avatar Viktor De Pasquale

Updated hide item layout

parent 169e9ab5
package com.topjohnwu.magisk.model.entity.recycler package com.topjohnwu.magisk.model.entity.recycler
import android.view.MenuItem
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
...@@ -43,13 +42,12 @@ class HideItem(val item: ProcessHideApp) : ComparableRvItem<HideItem>() { ...@@ -43,13 +42,12 @@ class HideItem(val item: ProcessHideApp) : ComparableRvItem<HideItem>() {
isExpanded.value = false isExpanded.value = false
} }
fun expand(v: View) { fun toggle(v: View) {
(v.parent as? ViewGroup)?.startAnimations() (v.parent as? ViewGroup)?.startAnimations()
isExpanded.value = true isExpanded.toggle()
} }
fun toggle(menuItem: MenuItem, viewModel: HideViewModel): Boolean { fun toggle(viewModel: HideViewModel): Boolean {
if (menuItem.itemId != R.id.action_toggle) return false
// contract implies that isHidden == all checked // contract implies that isHidden == all checked
if (!isHidden) { if (!isHidden) {
items.filterNot { it.isHidden.value } items.filterNot { it.isHidden.value }
......
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?colorOnSurface"
android:pathData="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z"
tools:fillColor="#000" />
</vector>
\ No newline at end of file
...@@ -5,6 +5,8 @@ ...@@ -5,6 +5,8 @@
<data> <data>
<import type="com.topjohnwu.magisk.R" />
<variable <variable
name="item" name="item"
type="com.topjohnwu.magisk.model.entity.recycler.HideItem" /> type="com.topjohnwu.magisk.model.entity.recycler.HideItem" />
...@@ -22,91 +24,98 @@ ...@@ -22,91 +24,98 @@
tools:layout_gravity="center" tools:layout_gravity="center"
tools:layout_marginBottom="@dimen/l1"> tools:layout_marginBottom="@dimen/l1">
<androidx.constraintlayout.widget.ConstraintLayout
invisible="@{item.isExpanded}"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:onClick="@{(v) -> item.expand(v)}">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/hide_icon"
style="?styleImageNormal"
android:layout_margin="@dimen/l1"
android:src="@{item.item.info.icon}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:src="@drawable/ic_magisk" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/hide_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/l1"
android:ellipsize="middle"
android:singleLine="true"
android:text="@{item.item.info.name}"
android:textAppearance="?appearanceTextBodyNormal"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/hide_package"
app:layout_constraintEnd_toStartOf="@+id/hide_expand_icon"
app:layout_constraintStart_toEndOf="@+id/hide_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="@string/app_name" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/hide_package"
android:layout_width="0dp"
gone="@{item.item.info.info.packageName.empty}"
android:text="@{item.item.info.info.packageName}"
android:layout_height="wrap_content"
android:textAppearance="?appearanceTextCaptionVariant"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/hide_name"
app:layout_constraintStart_toStartOf="@+id/hide_name"
app:layout_constraintTop_toBottomOf="@+id/hide_name"
tools:text="com.topjohnwu.magisk" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/hide_expand_icon"
style="?styleIconNormal"
invisible="@{item.item.processes.empty}"
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>
<LinearLayout <LinearLayout
goneUnless="@{item.isExpanded}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> android:orientation="vertical">
<com.google.android.material.appbar.MaterialToolbar <androidx.constraintlayout.widget.ConstraintLayout
style="?styleToolbar"
onNavigationClick="@{(v) -> item.collapse(v)}"
android:layout_width="match_parent" android:layout_width="match_parent"
onMenuClick="@{(it) -> item.toggle(it, viewModel)}" android:layout_height="wrap_content"
app:menu="@menu/menu_hide_item" android:background="?selectableItemBackground"
android:layout_height="48dp" android:onClick="@{(v) -> item.toggle(v)}">
app:navigationIcon="@drawable/ic_back_md2"
app:title="Processes" <androidx.appcompat.widget.AppCompatImageView
app:titleTextAppearance="?appearanceTextBodyNormal" /> android:id="@+id/hide_icon"
style="?styleImageNormal"
android:layout_margin="@dimen/l1"
android:alpha="@{item.isExpanded ? 0.1f : 1f}"
android:src="@{item.item.info.icon}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0"
tools:src="@drawable/ic_magisk" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/hide_action"
style="?styleImageNormal"
goneUnless="@{item.isExpanded}"
android:layout_margin="@dimen/l1"
android:background="?selectableItemBackgroundBorderless"
android:onClick="@{() -> item.toggle(viewModel)}"
android:padding="@dimen/l_25"
app:layout_constraintBottom_toBottomOf="@+id/hide_icon"
app:layout_constraintEnd_toEndOf="@+id/hide_icon"
app:layout_constraintStart_toStartOf="@+id/hide_icon"
app:layout_constraintTop_toTopOf="@+id/hide_icon"
app:srcCompat="@drawable/ic_hide_md2" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/hide_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/l1"
android:ellipsize="middle"
android:singleLine="true"
android:text="@{item.item.info.name}"
android:textAppearance="?appearanceTextBodyNormal"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/hide_package"
app:layout_constraintEnd_toStartOf="@+id/hide_expand_icon"
app:layout_constraintStart_toEndOf="@+id/hide_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="@string/app_name" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/hide_package"
gone="@{item.item.info.info.packageName.empty}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@{item.item.info.info.packageName}"
android:textAppearance="?appearanceTextCaptionVariant"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/hide_name"
app:layout_constraintStart_toStartOf="@+id/hide_name"
app:layout_constraintTop_toBottomOf="@+id/hide_name"
tools:text="com.topjohnwu.magisk" />
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/hide_expand_icon"
style="?styleIconNormal"
invisible="@{item.item.processes.empty}"
srcCompat="@{item.isExpanded ? R.drawable.ic_close : R.drawable.ic_back_md2}"
android:background="@null"
android:rotation="180"
android:rotationX="@{item.isExpanded ? 180 : 0}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/ic_back_md2" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
goneUnless="@{item.isExpanded}"
itemBinding="@{viewModel.itemInternalBinding}" itemBinding="@{viewModel.itemInternalBinding}"
items="@{item.items}" items="@{item.items}"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:itemCount="2" android:background="?colorSurfaceVariant"
android:orientation="vertical" android:orientation="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="2"
tools:listitem="@layout/item_hide_process_md2" /> tools:listitem="@layout/item_hide_process_md2" />
</LinearLayout> </LinearLayout>
......
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