From 7ee39ba3b8ef13c3a26168f6ffc55c8c5bde38d0 Mon Sep 17 00:00:00 2001 From: Josia Pietsch Date: Wed, 27 Nov 2024 14:59:44 +0100 Subject: [PATCH] use badged labels in text layout --- .../preferences/theme/AppListLayout.kt | 18 +++++++++--------- .../ui/list/apps/AppsRecyclerAdapter.kt | 12 +++++++++++- .../launcher/ui/list/apps/ListFragmentApps.kt | 3 ++- 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/de/jrpie/android/launcher/preferences/theme/AppListLayout.kt b/app/src/main/java/de/jrpie/android/launcher/preferences/theme/AppListLayout.kt index 935a2fc..a5d3522 100644 --- a/app/src/main/java/de/jrpie/android/launcher/preferences/theme/AppListLayout.kt +++ b/app/src/main/java/de/jrpie/android/launcher/preferences/theme/AppListLayout.kt @@ -1,8 +1,6 @@ package de.jrpie.android.launcher.preferences.theme -import android.app.Activity import android.content.Context -import android.util.DisplayMetrics import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -16,28 +14,30 @@ enum class AppListLayout( val layoutManager: (context: Context) -> RecyclerView.LayoutManager, val layoutResource: Int, val prepareView: (viewHolder: AppsRecyclerAdapter.ViewHolder) -> Unit, + val useBadgedText: Boolean ) { DEFAULT( { c -> LinearLayoutManager(c) }, R.layout.list_apps_row, - { v -> } + { v -> }, + false ), - // TODO work profile indicator TEXT( { c -> LinearLayoutManager(c) }, R.layout.list_apps_row_variant_text, - { v -> - } + { v -> }, + true ), GRID( { c -> val displayMetrics = c.resources.displayMetrics - val width_sp = displayMetrics.widthPixels / displayMetrics.scaledDensity - GridLayoutManager(c, (width_sp / 90).toInt()) }, + val widthSp = displayMetrics.widthPixels / displayMetrics.scaledDensity + GridLayoutManager(c, (widthSp / 90).toInt()) }, R.layout.list_apps_row_variant_grid, { v -> - } + }, + false ), } \ No newline at end of file diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt index a437ba3..7a71723 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/AppsRecyclerAdapter.kt @@ -26,6 +26,7 @@ import de.jrpie.android.launcher.apps.AppFilter import de.jrpie.android.launcher.apps.AppInfo import de.jrpie.android.launcher.apps.DetailedAppInfo import de.jrpie.android.launcher.appsList +import de.jrpie.android.launcher.getUserFromId import de.jrpie.android.launcher.loadApps import de.jrpie.android.launcher.openAppSettings import de.jrpie.android.launcher.preferences.LauncherPreferences @@ -50,6 +51,7 @@ class AppsRecyclerAdapter( = ListActivity.ListActivityIntention.VIEW, private val forGesture: String? = "", private var appFilter: AppFilter = AppFilter(activity, "") + private val layout: AppListLayout ) : RecyclerView.Adapter() { @@ -76,7 +78,15 @@ class AppsRecyclerAdapter( 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 viewHolder.textView.text = appLabel diff --git a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt index 3ffe53f..de9a279 100644 --- a/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt +++ b/app/src/main/java/de/jrpie/android/launcher/ui/list/apps/ListFragmentApps.kt @@ -70,7 +70,8 @@ class ListFragmentApps : Fragment(), UIObject { "", favoritesVisibility = favoritesVisibility, hiddenVisibility = hiddenVisibility - ) + ), + layout = LauncherPreferences.list_apps().layout() ) // set up the list / recycler