mirror of https://github.com/deniscerri/ytdlnis
Add Icon Picker
parent
e1b8fd9d28
commit
9637d8a85e
@ -0,0 +1,58 @@
|
||||
package com.deniscerri.ytdl.ui.adapter
|
||||
|
||||
import android.app.Activity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdl.R
|
||||
import com.deniscerri.ytdl.databinding.AppIconItemBinding
|
||||
import com.deniscerri.ytdl.util.ThemeUtil
|
||||
|
||||
class IconsSheetAdapter(val activity: Activity) : RecyclerView.Adapter<IconsSheetAdapter.IconsSheetViewHolder>() {
|
||||
|
||||
class IconsSheetViewHolder(
|
||||
val binding: AppIconItemBinding
|
||||
) : RecyclerView.ViewHolder(binding.root)
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IconsSheetViewHolder {
|
||||
val binding = AppIconItemBinding.inflate(LayoutInflater.from(parent.context), parent, false)
|
||||
return IconsSheetViewHolder(binding)
|
||||
}
|
||||
|
||||
override fun getItemCount() = availableIcons.size
|
||||
|
||||
override fun onBindViewHolder(holder: IconsSheetViewHolder, position: Int) {
|
||||
val appIcon = availableIcons[position]
|
||||
holder.binding.apply {
|
||||
iconIV.setImageResource(appIcon.iconResource)
|
||||
iconName.text = root.context.getString(appIcon.nameResource)
|
||||
root.setOnClickListener {
|
||||
val preferences = androidx.preference.PreferenceManager.getDefaultSharedPreferences(activity)
|
||||
preferences.edit().putString("ytdlnis_icon", appIcon.activityAlias).apply()
|
||||
val theme = preferences.getString("ytdlnis_theme", "System")!!
|
||||
ThemeUtil.updateAppIcon(activity, theme,appIcon.activityAlias)
|
||||
activity.recreate()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
sealed class AppIcon(
|
||||
@StringRes val nameResource: Int,
|
||||
@DrawableRes val iconResource: Int,
|
||||
val activityAlias: String
|
||||
) {
|
||||
object Default : AppIcon(R.string.auto, R.mipmap.ic_launcher, "default")
|
||||
object DefaultLight : AppIcon(R.string.light, R.mipmap.ic_launcher_light, "Light")
|
||||
object DefaultDark : AppIcon(R.string.dark, R.mipmap.ic_launcher_dark, "Dark")
|
||||
}
|
||||
|
||||
val availableIcons = listOf(
|
||||
AppIcon.Default,
|
||||
AppIcon.DefaultLight,
|
||||
AppIcon.DefaultDark
|
||||
)
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?android:colorAccent"
|
||||
android:viewportWidth="48"
|
||||
android:viewportHeight="48">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:pathData="M13.05,21.7 L24.05,4 35.05,21.7ZM35.3,44Q31.6,44 29.1,41.5Q26.6,39 26.6,35.3Q26.6,31.6 29.1,29.1Q31.6,26.6 35.3,26.6Q39,26.6 41.5,29.1Q44,31.6 44,35.3Q44,39 41.5,41.5Q39,44 35.3,44ZM6,42.75V27.55H21.2V42.75Z" />
|
||||
</vector>
|
||||
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:color="?attr/colorControlHighlight">
|
||||
<item android:id="@android:id/mask">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#000000" />
|
||||
<corners android:radius="15dp" />
|
||||
</shape>
|
||||
</item>
|
||||
</ripple>
|
||||
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout 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"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:background="@drawable/rounded_ripple"
|
||||
android:orientation="vertical"
|
||||
android:paddingVertical="10dp">
|
||||
|
||||
<com.google.android.material.imageview.ShapeableImageView
|
||||
android:id="@+id/iconIV"
|
||||
android:layout_width="75dp"
|
||||
android:layout_height="75dp"
|
||||
android:layout_gravity="center"
|
||||
android:padding="10dp"
|
||||
app:shapeAppearance="@style/CircleImageView"
|
||||
tools:src="@mipmap/ic_launcher" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/iconName"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1"
|
||||
tools:text="YTDLnis"
|
||||
android:textSize="11sp" />
|
||||
|
||||
</LinearLayout>
|
||||
Loading…
Reference in New Issue