Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8bae3248 authored by Yalan Yiue's avatar Yalan Yiue Committed by Automerger Merge Worker
Browse files

Merge "[MediaProjection] Avoid SysUI crash by handling NameNotFoundException"...

Merge "[MediaProjection] Avoid SysUI crash by handling NameNotFoundException" into udc-dev am: 6a3a7bde

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22616880



Change-Id: Ie1f4f97bcf8312db1140c4375a6eef56695d65f0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 3cbfe4e8 6a3a7bde
Loading
Loading
Loading
Loading
+18 −8
Original line number Diff line number Diff line
@@ -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)
            var badgedLabel: CharSequence? = null
            try {
                val appInfo =
                packageManager.getApplicationInfo(
                    packageManager.getApplicationInfoAsUser(
                        componentName.packageName,
                    PackageManager.ApplicationInfoFlags.of(0 /* no flags */)
                        PackageManager.ApplicationInfoFlags.of(0 /* no flags */),
                        userId
                    )
                val label = packageManager.getApplicationLabel(appInfo)
            return@withContext packageManager.getUserBadgedLabel(label, userHandle)
                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
        }
}
+1 −1
Original line number Diff line number Diff line
@@ -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 {