Commit 1396faf4 authored by Viktor De Pasquale's avatar Viktor De Pasquale

Added animated icon for magisk (and its uninstall)

parent dc8d2ae6
...@@ -2,4 +2,8 @@ package com.topjohnwu.magisk.redesign.home ...@@ -2,4 +2,8 @@ package com.topjohnwu.magisk.redesign.home
import com.topjohnwu.magisk.redesign.compat.CompatViewModel import com.topjohnwu.magisk.redesign.compat.CompatViewModel
class HomeViewModel : CompatViewModel() class HomeViewModel : CompatViewModel() {
\ No newline at end of file
fun onDeletePressed() {}
}
\ No newline at end of file
...@@ -6,6 +6,7 @@ import androidx.annotation.ColorInt ...@@ -6,6 +6,7 @@ import androidx.annotation.ColorInt
import androidx.annotation.DrawableRes import androidx.annotation.DrawableRes
import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatImageView
import androidx.appcompat.widget.Toolbar import androidx.appcompat.widget.Toolbar
import androidx.core.view.postDelayed
import androidx.databinding.BindingAdapter import androidx.databinding.BindingAdapter
import androidx.databinding.InverseBindingAdapter import androidx.databinding.InverseBindingAdapter
import androidx.databinding.InverseBindingListener import androidx.databinding.InverseBindingListener
...@@ -220,4 +221,28 @@ fun getScrollPosition(view: RecyclerView) = (view.layoutManager as? LinearLayout ...@@ -220,4 +221,28 @@ fun getScrollPosition(view: RecyclerView) = (view.layoutManager as? LinearLayout
@BindingAdapter("isEnabled") @BindingAdapter("isEnabled")
fun setEnabled(view: View, isEnabled: Boolean) { fun setEnabled(view: View, isEnabled: Boolean) {
view.isEnabled = isEnabled view.isEnabled = isEnabled
}
// md2
@BindingAdapter("onSelectClick", "onSelectReset", requireAll = false)
fun View.setOnSelectClickListener(listener: View.OnClickListener, resetTime: Long) {
setOnClickListener {
when {
it.isSelected -> {
listener.onClick(it)
(it.tag as? Runnable)?.let { task ->
it.handler.removeCallbacks(task)
}
it.isSelected = false
}
else -> {
it.isSelected = true
it.tag = it.postDelayed(resetTime) {
it.tag = null
it.isSelected = false
}
}
}
}
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="?colorError" android:state_selected="true" />
<item android:color="?colorPrimary" />
</selector>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/collapsed"
android:drawable="@drawable/ic_delete_md2"
android:state_selected="true" />
<item
android:id="@+id/expanded"
android:drawable="@drawable/ic_magisk_outline" />
<transition
android:drawable="@drawable/avd_magisk_delete"
android:fromId="@+id/expanded"
android:toId="@+id/collapsed" />
<transition
android:drawable="@drawable/avd_delete_magisk"
android:fromId="@+id/collapsed"
android:toId="@id/expanded" />
</animated-selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android" <vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp" android:width="24dp"
android:height="24dp" android:height="24dp"
android:viewportWidth="24" android:viewportWidth="24"
android:viewportHeight="24"> android:viewportHeight="24">
<path <path
android:fillColor="?colorOnPrimary" android:fillColor="?colorOnSurface"
android:pathData="M9,3V4H4V6H5V19A2,2 0 0,0 7,21H17A2,2 0 0,0 19,19V6H20V4H15V3H9M7,6H17V19H7V6M9,8V17H11V8H9M13,8V17H15V8H13Z" /> android:pathData="M18,4h-2.5l-0.7,-0.7C14.6,3.2 14.4,3 14.1,3H9.9C9.6,3 9.4,3.2 9.2,3.3L8.5,4H6C5.4,4 5,4.5 5,5s0.4,1 1,1h12c0.5,0 1,-0.4 1,-1S18.5,4 18,4z" />
</vector> <path
\ No newline at end of file android:fillColor="?colorOnSurface"
android:pathData="M6,19c0,1.1 0.9,2 2,2h8c1.1,0 2,-0.9 2,-2V9c0,-1.1 -0.9,-2 -2,-2H8C6.9,7 6,7.9 6,9V19z" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_delete_md2" android:state_selected="true" />
<item android:drawable="@drawable/ic_magisk_outline" />
</selector>
\ No newline at end of file
...@@ -39,20 +39,13 @@ ...@@ -39,20 +39,13 @@
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/icon1" android:id="@+id/icon1"
style="?styleIconPrimary" style="?styleIconPrimary"
onSelectClick="@{() -> viewModel.onDeletePressed()}"
onSelectReset="@{10000L}"
android:padding="@dimen/l_50" android:padding="@dimen/l_50"
android:alpha=".2"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_magisk_outline" /> app:srcCompat="@drawable/ic_magisk_delete"
app:tint="@color/color_primary_delete_transient" />
<!--na-ah! do a transition from ic_magisk_outline to ic_delete_md2 -->
<androidx.appcompat.widget.AppCompatImageView
style="?styleIconError"
app:layout_constraintBottom_toBottomOf="@+id/icon1"
app:layout_constraintEnd_toEndOf="@+id/icon1"
app:layout_constraintStart_toStartOf="@+id/icon1"
app:layout_constraintTop_toTopOf="@+id/icon1"
app:srcCompat="@drawable/ic_delete_md2" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title1" android:id="@+id/title1"
...@@ -61,9 +54,11 @@ ...@@ -61,9 +54,11 @@
android:layout_marginStart="@dimen/l1" android:layout_marginStart="@dimen/l1"
android:text="Magisk" android:text="Magisk"
android:textAppearance="?appearanceTextTitleNormal" android:textAppearance="?appearanceTextTitleNormal"
app:layout_constraintBottom_toTopOf="@+id/status1"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/icon1" app:layout_constraintStart_toEndOf="@+id/icon1"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/status1" android:id="@+id/status1"
...@@ -71,6 +66,7 @@ ...@@ -71,6 +66,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="is up to date" android:text="is up to date"
android:textAppearance="?appearanceTextCaptionVariant" android:textAppearance="?appearanceTextCaptionVariant"
app:layout_constraintBottom_toBottomOf="@+id/icon1"
app:layout_constraintEnd_toEndOf="@+id/title1" app:layout_constraintEnd_toEndOf="@+id/title1"
app:layout_constraintStart_toStartOf="@+id/title1" app:layout_constraintStart_toStartOf="@+id/title1"
app:layout_constraintTop_toBottomOf="@+id/title1" /> app:layout_constraintTop_toBottomOf="@+id/title1" />
...@@ -133,9 +129,11 @@ ...@@ -133,9 +129,11 @@
android:layout_marginStart="@dimen/l1" android:layout_marginStart="@dimen/l1"
android:text="Manager" android:text="Manager"
android:textAppearance="?appearanceTextTitleNormal" android:textAppearance="?appearanceTextTitleNormal"
app:layout_constraintBottom_toTopOf="@+id/status2"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/icon2" app:layout_constraintStart_toEndOf="@+id/icon2"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/status2" android:id="@+id/status2"
...@@ -143,6 +141,7 @@ ...@@ -143,6 +141,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="has update available!" android:text="has update available!"
android:textAppearance="?appearanceTextCaptionVariant" android:textAppearance="?appearanceTextCaptionVariant"
app:layout_constraintBottom_toBottomOf="@+id/icon2"
app:layout_constraintEnd_toEndOf="@+id/title2" app:layout_constraintEnd_toEndOf="@+id/title2"
app:layout_constraintStart_toStartOf="@+id/title2" app:layout_constraintStart_toStartOf="@+id/title2"
app:layout_constraintTop_toBottomOf="@+id/title2" /> app:layout_constraintTop_toBottomOf="@+id/title2" />
......
Subproject commit ac33afa79e57e198b9eeec231140d64816a0bb1e Subproject commit d443357d300f263179e04ef0893e6b8f040c9451
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