mirror of
https://github.com/YTVanced/VancedManager
synced 2024-11-24 20:25:13 +00:00
Added button info on long press
This commit is contained in:
parent
b5b577cf8b
commit
7e3edb9cb6
7 changed files with 81 additions and 38 deletions
|
@ -15,6 +15,7 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import com.google.android.material.card.MaterialCardView
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.databinding.ViewAppExpandableBinding
|
||||
import com.vanced.manager.model.ButtonTag
|
||||
import com.vanced.manager.model.DataModel
|
||||
import com.vanced.manager.ui.dialogs.AppInfoDialog
|
||||
import com.vanced.manager.ui.viewmodels.HomeViewModel
|
||||
|
@ -42,8 +43,15 @@ class ExpandableAppListAdapter(
|
|||
appTitle.text = dataModel?.appName
|
||||
appDescription.text = dataModel?.appDescription
|
||||
dataModel?.appIcon?.let { appIcon.setImageResource(it) }
|
||||
appDownload.setOnClickListener {
|
||||
viewModel.openInstallDialog(dataModel?.buttonTag?.value, apps[position])
|
||||
appDownload.apply {
|
||||
val buttonTag = dataModel?.buttonTag?.value
|
||||
setOnClickListener { viewModel.openInstallDialog(buttonTag, apps[position]) }
|
||||
contentDescription = activity.getString(
|
||||
if (buttonTag == ButtonTag.UPDATE)
|
||||
R.string.accessibility_update
|
||||
else
|
||||
R.string.accessibility_download
|
||||
)
|
||||
}
|
||||
appClickableLayout.setOnClickListener {
|
||||
if (isAnimationRunning) return@setOnClickListener
|
||||
|
@ -90,7 +98,7 @@ class ExpandableAppListAdapter(
|
|||
}
|
||||
dataModel?.buttonImage?.observe(activity) {
|
||||
if (it != null) {
|
||||
appDownload.setImageDrawable(it)
|
||||
appDownload.icon = it
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
package com.vanced.manager.ui.core
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.util.AttributeSet
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.widget.AppCompatImageButton
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.vanced.manager.utils.accentColor
|
||||
|
||||
class ThemedIconButton @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attributeSet: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : MaterialButton(context, attributeSet, defStyleAttr) {
|
||||
|
||||
init {
|
||||
iconTint = ColorStateList.valueOf(accentColor.value!!)
|
||||
setOnLongClickListener {
|
||||
Toast.makeText(context, contentDescription, Toast.LENGTH_SHORT).show()
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
package com.vanced.manager.ui.core
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.util.AttributeSet
|
||||
import androidx.appcompat.widget.AppCompatImageButton
|
||||
import com.vanced.manager.utils.accentColor
|
||||
|
||||
class ThemedImageButton @JvmOverloads constructor(
|
||||
context: Context,
|
||||
attributeSet: AttributeSet? = null,
|
||||
defStyleAttr: Int = 0
|
||||
) : AppCompatImageButton(context, attributeSet, defStyleAttr) {
|
||||
|
||||
init {
|
||||
imageTintList = ColorStateList.valueOf(accentColor.value!!)
|
||||
}
|
||||
|
||||
}
|
9
app/src/main/res/drawable/icon_button_ripple.xml
Normal file
9
app/src/main/res/drawable/icon_button_ripple.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="@android:color/darker_gray">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="oval" >
|
||||
<solid android:color="@android:color/transparent" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
|
@ -14,8 +14,8 @@
|
|||
android:id="@+id/app_expanded_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:paddingVertical="12dp"
|
||||
android:paddingVertical="8dp"
|
||||
android:paddingHorizontal="12dp"
|
||||
android:alpha="0"
|
||||
android:scaleX="0.8"
|
||||
android:scaleY="0.8"
|
||||
|
@ -75,37 +75,41 @@
|
|||
app:flexWrap="wrap"
|
||||
app:flexDirection="row_reverse">
|
||||
|
||||
<com.vanced.manager.ui.core.ThemedImageButton
|
||||
<com.vanced.manager.ui.core.ThemedIconButton
|
||||
android:id="@+id/app_download"
|
||||
style="@style/AppActionButton"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/ic_app_download"/>
|
||||
app:icon="@drawable/ic_app_download"
|
||||
android:contentDescription="@string/accessibility_download"/>
|
||||
|
||||
<com.vanced.manager.ui.core.ThemedImageButton
|
||||
<com.vanced.manager.ui.core.ThemedIconButton
|
||||
android:id="@+id/app_launch"
|
||||
style="@style/AppActionButton"
|
||||
app:layout_constraintEnd_toStartOf="@id/app_download"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/ic_baseline_launch_24"/>
|
||||
app:icon="@drawable/ic_baseline_launch_24"
|
||||
android:contentDescription="@string/accessibility_launch"/>
|
||||
|
||||
<com.vanced.manager.ui.core.ThemedImageButton
|
||||
<com.vanced.manager.ui.core.ThemedIconButton
|
||||
android:id="@+id/app_uninstall"
|
||||
style="@style/AppActionButton"
|
||||
app:layout_constraintEnd_toStartOf="@id/app_launch"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/ic_app_uninstall"/>
|
||||
app:icon="@drawable/ic_app_uninstall"
|
||||
android:contentDescription="@string/accessibility_uninstall"/>
|
||||
|
||||
<com.vanced.manager.ui.core.ThemedImageButton
|
||||
<com.vanced.manager.ui.core.ThemedIconButton
|
||||
android:id="@+id/app_info"
|
||||
style="@style/AppActionButton"
|
||||
app:layout_constraintEnd_toStartOf="@id/app_uninstall"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:src="@drawable/ic_app_info"/>
|
||||
app:icon="@drawable/ic_app_info"
|
||||
android:contentDescription="@string/accessibility_info"/>
|
||||
|
||||
</com.google.android.flexbox.FlexboxLayout>
|
||||
|
||||
|
@ -115,7 +119,7 @@
|
|||
android:id="@+id/app_clickable_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:contentPadding="16dp"
|
||||
app:contentPadding="12dp"
|
||||
app:cardCornerRadius="0dp"
|
||||
app:cardElevation="0dp"
|
||||
app:cardBackgroundColor="?colorLinkBG"
|
||||
|
|
|
@ -28,6 +28,11 @@
|
|||
|
||||
<!-- Home Page -->
|
||||
<string name="about_app">About %1$s</string>
|
||||
<string name="accessibility_download">Download</string>
|
||||
<string name="accessibility_info">Info</string>
|
||||
<string name="accessibility_launch">Launch</string>
|
||||
<string name="accessibility_uninstall">Uninstall</string>
|
||||
<string name="accessibility_update">Update</string>
|
||||
<string name="apps">Apps</string>
|
||||
<string name="changelog">Changelog</string>
|
||||
<string name="downloading_file">Downloading %1$s</string>
|
||||
|
|
|
@ -22,11 +22,22 @@
|
|||
<item name="android:layout_height">wrap_content</item>
|
||||
</style>
|
||||
|
||||
<style name="AppActionButton" parent="Widget.AppCompat.ImageButton">
|
||||
<item name="android:layout_width">wrap_content</item>
|
||||
<item name="android:layout_height">wrap_content</item>
|
||||
<item name="android:layout_marginEnd">8dp</item>
|
||||
<item name="android:background">@android:color/transparent</item>
|
||||
<style name="AppActionButton" parent="Widget.MaterialComponents.Button.OutlinedButton">
|
||||
<item name="android:layout_width">36dp</item>
|
||||
<item name="android:layout_height">36dp</item>
|
||||
<item name="iconPadding">0dp</item>
|
||||
<item name="iconGravity">textStart</item>
|
||||
<item name="cornerRadius">20dp</item>
|
||||
<item name="android:shadowColor">@android:color/transparent</item>
|
||||
<item name="strokeColor">@android:color/transparent</item>
|
||||
<item name="android:insetBottom">0dp</item>
|
||||
<item name="android:insetTop">0dp</item>
|
||||
<item name="android:insetLeft">0dp</item>
|
||||
<item name="android:insetRight">0dp</item>
|
||||
<item name="android:paddingBottom">0dp</item>
|
||||
<item name="android:paddingTop">0dp</item>
|
||||
<item name="android:paddingLeft">0dp</item>
|
||||
<item name="android:paddingRight">0dp</item>
|
||||
</style>
|
||||
|
||||
<style name="AppVersionText" parent="Widget.MaterialComponents.TextView">
|
||||
|
|
Loading…
Reference in a new issue