summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskLabelLoader.kt26
-rw-r--r--packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/RecentTaskViewHolder.kt2
2 files changed, 19 insertions, 9 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskLabelLoader.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskLabelLoader.kt
index eadcb93a7f94..1be8b70c1d42 100644
--- a/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskLabelLoader.kt
+++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/data/RecentTaskLabelLoader.kt
@@ -20,6 +20,7 @@ import android.annotation.UserIdInt
import android.content.ComponentName
import android.content.pm.PackageManager
import android.os.UserHandle
+import android.util.Log
import com.android.systemui.dagger.qualifiers.Background
import javax.inject.Inject
import kotlinx.coroutines.CoroutineDispatcher
@@ -36,18 +37,27 @@ constructor(
private val packageManager: PackageManager
) : RecentTaskLabelLoader {
+ private val TAG = "RecentTaskLabelLoader"
+
override suspend fun loadLabel(
@UserIdInt userId: Int,
componentName: ComponentName
): CharSequence? =
withContext(coroutineDispatcher) {
- val userHandle = UserHandle(userId)
- val appInfo =
- packageManager.getApplicationInfo(
- componentName.packageName,
- PackageManager.ApplicationInfoFlags.of(0 /* no flags */)
- )
- val label = packageManager.getApplicationLabel(appInfo)
- return@withContext packageManager.getUserBadgedLabel(label, userHandle)
+ var badgedLabel: CharSequence? = null
+ try {
+ val appInfo =
+ packageManager.getApplicationInfoAsUser(
+ componentName.packageName,
+ PackageManager.ApplicationInfoFlags.of(0 /* no flags */),
+ userId
+ )
+ val label = packageManager.getApplicationLabel(appInfo)
+ val userHandle = UserHandle(userId)
+ badgedLabel = packageManager.getUserBadgedLabel(label, userHandle)
+ } catch (e: PackageManager.NameNotFoundException) {
+ Log.e(TAG, "Unable to get application info", e)
+ }
+ return@withContext badgedLabel
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/RecentTaskViewHolder.kt b/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/RecentTaskViewHolder.kt
index 64f97f2faacc..2d75359bf835 100644
--- a/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/RecentTaskViewHolder.kt
+++ b/packages/SystemUI/src/com/android/systemui/mediaprojection/appselector/view/RecentTaskViewHolder.kt
@@ -68,7 +68,7 @@ constructor(
}
launch {
val label = labelLoader.loadLabel(task.userId, component)
- root.contentDescription = label
+ root.contentDescription = label ?: root.context.getString(R.string.unknown)
}
}
launch {