mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 19:32:16 +00:00
Improve: More Rounded sections list
Add: Show Icon on install and cancel button
This commit is contained in:
parent
4fcbb45b3a
commit
49adc883fa
@ -31,6 +31,7 @@ import androidx.core.text.util.LinkifyCompat
|
|||||||
import androidx.core.view.doOnPreDraw
|
import androidx.core.view.doOnPreDraw
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import coil.load
|
import coil.load
|
||||||
|
import com.google.android.material.button.MaterialButton
|
||||||
import com.google.android.material.card.MaterialCardView
|
import com.google.android.material.card.MaterialCardView
|
||||||
import com.google.android.material.divider.MaterialDivider
|
import com.google.android.material.divider.MaterialDivider
|
||||||
import com.google.android.material.imageview.ShapeableImageView
|
import com.google.android.material.imageview.ShapeableImageView
|
||||||
@ -324,7 +325,7 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
|||||||
val icon = itemView.findViewById<ShapeableImageView>(R.id.icon)!!
|
val icon = itemView.findViewById<ShapeableImageView>(R.id.icon)!!
|
||||||
val name = itemView.findViewById<TextView>(R.id.name)!!
|
val name = itemView.findViewById<TextView>(R.id.name)!!
|
||||||
val packageName = itemView.findViewById<TextView>(R.id.package_name)!!
|
val packageName = itemView.findViewById<TextView>(R.id.package_name)!!
|
||||||
val action = itemView.findViewById<Button>(R.id.action)!!
|
val action = itemView.findViewById<MaterialButton>(R.id.action)!!
|
||||||
val statusLayout = itemView.findViewById<View>(R.id.status_layout)!!
|
val statusLayout = itemView.findViewById<View>(R.id.status_layout)!!
|
||||||
val status = itemView.findViewById<TextView>(R.id.status)!!
|
val status = itemView.findViewById<TextView>(R.id.status)!!
|
||||||
val progress = itemView.findViewById<ProgressBar>(R.id.progress)!!
|
val progress = itemView.findViewById<ProgressBar>(R.id.progress)!!
|
||||||
@ -332,8 +333,10 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
|||||||
val progressIcon: Drawable
|
val progressIcon: Drawable
|
||||||
val defaultIcon: Drawable
|
val defaultIcon: Drawable
|
||||||
|
|
||||||
val actionTintNormal = action.context.getColorFromAttr(android.R.attr.colorPrimary)
|
val actionTintNormal = action.context.getColorFromAttr(R.attr.colorSurface)
|
||||||
val actionTintCancel = action.context.getColorFromAttr(R.attr.colorError)
|
val actionTintCancel = action.context.getColorFromAttr(R.attr.colorError)
|
||||||
|
val actionTintOnNormal = action.context.getColorFromAttr(R.attr.colorOnSurface)
|
||||||
|
val actionTintOnCancel = action.context.getColorFromAttr(R.attr.colorOnError)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
action.apply {
|
action.apply {
|
||||||
@ -1174,13 +1177,27 @@ class ProductAdapter(private val callbacks: Callbacks, private val columns: Int)
|
|||||||
setTextSizeScaled(15)
|
setTextSizeScaled(15)
|
||||||
}
|
}
|
||||||
val action = action
|
val action = action
|
||||||
holder.action.visibility = if (action == null) View.GONE else View.VISIBLE
|
holder.action.apply {
|
||||||
if (action != null) {
|
visibility = if (action == null) View.GONE else View.VISIBLE
|
||||||
holder.action.setText(action.titleResId)
|
if (action != null) {
|
||||||
}
|
setText(action.titleResId)
|
||||||
if (Android.sdk(22)) {
|
setTextColor(
|
||||||
holder.action.backgroundTintList = if (action == Action.CANCEL)
|
if (action == Action.CANCEL) holder.actionTintOnCancel
|
||||||
holder.actionTintCancel else holder.actionTintNormal
|
else holder.actionTintOnNormal
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (Android.sdk(22)) {
|
||||||
|
backgroundTintList = if (action == Action.CANCEL)
|
||||||
|
holder.actionTintCancel else holder.actionTintNormal
|
||||||
|
}
|
||||||
|
icon =
|
||||||
|
when (action) {
|
||||||
|
Action.CANCEL -> context.getDrawable(R.drawable.ic_cancel)
|
||||||
|
Action.LAUNCH -> context.getDrawable(R.drawable.ic_launch)
|
||||||
|
else -> context.getDrawable(R.drawable.ic_download)
|
||||||
|
}
|
||||||
|
iconTint = if (action == Action.CANCEL) holder.actionTintOnCancel
|
||||||
|
else holder.actionTintOnNormal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (updateAll || updateStatus) {
|
if (updateAll || updateStatus) {
|
||||||
|
@ -56,8 +56,8 @@ class ProductFragment() : ScreenFragment(), ProductAdapter.Callbacks {
|
|||||||
val adapterAction: ProductAdapter.Action,
|
val adapterAction: ProductAdapter.Action,
|
||||||
val iconResId: Int
|
val iconResId: Int
|
||||||
) {
|
) {
|
||||||
INSTALL(1, ProductAdapter.Action.INSTALL, R.drawable.ic_archive),
|
INSTALL(1, ProductAdapter.Action.INSTALL, R.drawable.ic_download),
|
||||||
UPDATE(2, ProductAdapter.Action.UPDATE, R.drawable.ic_archive),
|
UPDATE(2, ProductAdapter.Action.UPDATE, R.drawable.ic_download),
|
||||||
LAUNCH(3, ProductAdapter.Action.LAUNCH, R.drawable.ic_launch),
|
LAUNCH(3, ProductAdapter.Action.LAUNCH, R.drawable.ic_launch),
|
||||||
DETAILS(4, ProductAdapter.Action.DETAILS, R.drawable.ic_tune),
|
DETAILS(4, ProductAdapter.Action.DETAILS, R.drawable.ic_tune),
|
||||||
UNINSTALL(5, ProductAdapter.Action.UNINSTALL, R.drawable.ic_delete),
|
UNINSTALL(5, ProductAdapter.Action.UNINSTALL, R.drawable.ic_delete),
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<corners android:radius="@dimen/shape_medium_corner" />
|
<corners android:radius="@dimen/shape_large_corner" />
|
||||||
</shape>
|
</shape>
|
10
src/main/res/drawable/ic_cancel.xml
Normal file
10
src/main/res/drawable/ic_cancel.xml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:tint="?attr/colorControlNormal">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M18.3,5.71c-0.39,-0.39 -1.02,-0.39 -1.41,0L12,10.59 7.11,5.7c-0.39,-0.39 -1.02,-0.39 -1.41,0 -0.39,0.39 -0.39,1.02 0,1.41L10.59,12 5.7,16.89c-0.39,0.39 -0.39,1.02 0,1.41 0.39,0.39 1.02,0.39 1.41,0L12,13.41l4.89,4.89c0.39,0.39 1.02,0.39 1.41,0 0.39,-0.39 0.39,-1.02 0,-1.41L13.41,12l4.89,-4.89c0.38,-0.38 0.38,-1.02 0,-1.4z"/>
|
||||||
|
</vector>
|
@ -20,8 +20,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
|
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
|
||||||
app:contentScrim="@android:color/transparent"
|
app:contentScrim="@android:color/transparent"
|
||||||
app:titleCollapseMode="scale"
|
app:layout_scrollFlags="scroll|snap|exitUntilCollapsed"
|
||||||
app:layout_scrollFlags="scroll|snap|exitUntilCollapsed">
|
app:titleCollapseMode="scale">
|
||||||
|
|
||||||
<com.google.android.material.appbar.MaterialToolbar
|
<com.google.android.material.appbar.MaterialToolbar
|
||||||
android:id="@+id/toolbar"
|
android:id="@+id/toolbar"
|
||||||
|
@ -5,9 +5,7 @@
|
|||||||
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"
|
||||||
android:paddingStart="12dp"
|
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingEnd="12dp"
|
|
||||||
android:paddingBottom="4dp">
|
android:paddingBottom="4dp">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@ -15,6 +13,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
|
android:paddingHorizontal="12dp"
|
||||||
android:paddingBottom="8dp">
|
android:paddingBottom="8dp">
|
||||||
|
|
||||||
<com.google.android.material.imageview.ShapeableImageView
|
<com.google.android.material.imageview.ShapeableImageView
|
||||||
@ -56,8 +55,7 @@
|
|||||||
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"
|
||||||
android:paddingStart="4dp"
|
android:paddingHorizontal="12dp"
|
||||||
android:paddingEnd="4dp"
|
|
||||||
android:paddingBottom="4dp">
|
android:paddingBottom="4dp">
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@ -82,6 +80,8 @@
|
|||||||
android:id="@+id/action"
|
android:id="@+id/action"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="56dp"
|
android:layout_height="56dp"
|
||||||
app:shapeAppearanceOverlay="@style/Shape.Medium" />
|
android:layout_marginHorizontal="12dp"
|
||||||
|
app:iconGravity="textStart"
|
||||||
|
app:shapeAppearanceOverlay="@style/PillShapeAppearance" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
@ -131,4 +131,9 @@
|
|||||||
<item name="cornerSize">@dimen/shape_large_corner</item>
|
<item name="cornerSize">@dimen/shape_large_corner</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="PillShapeAppearance">
|
||||||
|
<item name="cornerFamily">rounded</item>
|
||||||
|
<item name="cornerSize">50%</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user