use badged labels in text layout

This commit is contained in:
Josia Pietsch 2024-11-27 14:59:44 +01:00
parent 89bf02fc06
commit 7ee39ba3b8
Signed by: jrpie
GPG key ID: E70B571D66986A2D
3 changed files with 22 additions and 11 deletions

View file

@ -1,8 +1,6 @@
package de.jrpie.android.launcher.preferences.theme package de.jrpie.android.launcher.preferences.theme
import android.app.Activity
import android.content.Context import android.content.Context
import android.util.DisplayMetrics
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
@ -16,28 +14,30 @@ enum class AppListLayout(
val layoutManager: (context: Context) -> RecyclerView.LayoutManager, val layoutManager: (context: Context) -> RecyclerView.LayoutManager,
val layoutResource: Int, val layoutResource: Int,
val prepareView: (viewHolder: AppsRecyclerAdapter.ViewHolder) -> Unit, val prepareView: (viewHolder: AppsRecyclerAdapter.ViewHolder) -> Unit,
val useBadgedText: Boolean
) { ) {
DEFAULT( DEFAULT(
{ c -> LinearLayoutManager(c) }, { c -> LinearLayoutManager(c) },
R.layout.list_apps_row, R.layout.list_apps_row,
{ v -> } { v -> },
false
), ),
// TODO work profile indicator
TEXT( TEXT(
{ c -> LinearLayoutManager(c) }, { c -> LinearLayoutManager(c) },
R.layout.list_apps_row_variant_text, R.layout.list_apps_row_variant_text,
{ v -> { v -> },
} true
), ),
GRID( GRID(
{ c -> { c ->
val displayMetrics = c.resources.displayMetrics val displayMetrics = c.resources.displayMetrics
val width_sp = displayMetrics.widthPixels / displayMetrics.scaledDensity val widthSp = displayMetrics.widthPixels / displayMetrics.scaledDensity
GridLayoutManager(c, (width_sp / 90).toInt()) }, GridLayoutManager(c, (widthSp / 90).toInt()) },
R.layout.list_apps_row_variant_grid, R.layout.list_apps_row_variant_grid,
{ v -> { v ->
} },
false
), ),
} }

View file

@ -26,6 +26,7 @@ import de.jrpie.android.launcher.apps.AppFilter
import de.jrpie.android.launcher.apps.AppInfo import de.jrpie.android.launcher.apps.AppInfo
import de.jrpie.android.launcher.apps.DetailedAppInfo import de.jrpie.android.launcher.apps.DetailedAppInfo
import de.jrpie.android.launcher.appsList import de.jrpie.android.launcher.appsList
import de.jrpie.android.launcher.getUserFromId
import de.jrpie.android.launcher.loadApps import de.jrpie.android.launcher.loadApps
import de.jrpie.android.launcher.openAppSettings import de.jrpie.android.launcher.openAppSettings
import de.jrpie.android.launcher.preferences.LauncherPreferences import de.jrpie.android.launcher.preferences.LauncherPreferences
@ -50,6 +51,7 @@ class AppsRecyclerAdapter(
= ListActivity.ListActivityIntention.VIEW, = ListActivity.ListActivityIntention.VIEW,
private val forGesture: String? = "", private val forGesture: String? = "",
private var appFilter: AppFilter = AppFilter(activity, "") private var appFilter: AppFilter = AppFilter(activity, "")
private val layout: AppListLayout
) : ) :
RecyclerView.Adapter<AppsRecyclerAdapter.ViewHolder>() { RecyclerView.Adapter<AppsRecyclerAdapter.ViewHolder>() {
@ -76,7 +78,15 @@ class AppsRecyclerAdapter(
override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) { override fun onBindViewHolder(viewHolder: ViewHolder, i: Int) {
val appLabel = appsListDisplayed[i].getCustomLabel(activity).toString() var appLabel = appsListDisplayed[i].label.toString()
if (layout.useBadgedText) {
appLabel = activity.packageManager.getUserBadgedLabel(
appLabel,
getUserFromId(appsListDisplayed[i].app.user, activity)
).toString()
}
val appIcon = appsListDisplayed[i].icon val appIcon = appsListDisplayed[i].icon
viewHolder.textView.text = appLabel viewHolder.textView.text = appLabel

View file

@ -70,7 +70,8 @@ class ListFragmentApps : Fragment(), UIObject {
"", "",
favoritesVisibility = favoritesVisibility, favoritesVisibility = favoritesVisibility,
hiddenVisibility = hiddenVisibility hiddenVisibility = hiddenVisibility
) ),
layout = LauncherPreferences.list_apps().layout()
) )
// set up the list / recycler // set up the list / recycler