Merge branch 'dev/11/fp3/security-aosp-rvc-release' into int/11/fp3

* dev/11/fp3/security-aosp-rvc-release:
  Extract app label from component name in notification access confirmation UI

Change-Id: I0d63961ec6985c544760e03d9a99462d2335a149
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationAccessConfirmationActivity.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationAccessConfirmationActivity.java
index b7696bf..9f64097 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationAccessConfirmationActivity.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationAccessConfirmationActivity.java
@@ -18,7 +18,6 @@
 package com.android.car.developeroptions.notification;
 
 import static com.android.internal.notification.NotificationAccessConfirmationActivityContract.EXTRA_COMPONENT_NAME;
-import static com.android.internal.notification.NotificationAccessConfirmationActivityContract.EXTRA_PACKAGE_TITLE;
 import static com.android.internal.notification.NotificationAccessConfirmationActivityContract.EXTRA_USER_ID;
 
 import android.Manifest;
@@ -28,10 +27,13 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageItemInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.ServiceInfo;
 import android.os.Bundle;
 import android.os.UserHandle;
+import android.text.TextUtils;
 import android.util.Slog;
 import android.view.WindowManager;
 import android.view.accessibility.AccessibilityEvent;
@@ -59,15 +61,38 @@
 
         mComponentName = getIntent().getParcelableExtra(EXTRA_COMPONENT_NAME);
         mUserId = getIntent().getIntExtra(EXTRA_USER_ID, UserHandle.USER_NULL);
-        String pkgTitle = getIntent().getStringExtra(EXTRA_PACKAGE_TITLE);
+        CharSequence mAppLabel;
+
+        if (mComponentName == null || mComponentName.getPackageName() == null) {
+            finish();
+            return;
+        }
+
+        try {
+            ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(
+                    mComponentName.getPackageName(), 0);
+            mAppLabel = applicationInfo.loadSafeLabel(getPackageManager(),
+                    PackageItemInfo.DEFAULT_MAX_LABEL_SIZE_PX,
+                    PackageItemInfo.SAFE_LABEL_FLAG_TRIM
+                            | PackageItemInfo.SAFE_LABEL_FLAG_FIRST_LINE);
+        } catch (PackageManager.NameNotFoundException e) {
+            Slog.e(LOG_TAG, "Couldn't find app with package name for " + mComponentName, e);
+            finish();
+            return;
+        }
+
+        if (TextUtils.isEmpty(mAppLabel)) {
+            finish();
+            return;
+        }
 
         AlertController.AlertParams p = new AlertController.AlertParams(this);
         p.mTitle = getString(
                 R.string.notification_listener_security_warning_title,
-                pkgTitle);
+                mAppLabel);
         p.mMessage = getString(
                 R.string.notification_listener_security_warning_summary,
-                pkgTitle);
+                mAppLabel);
         p.mPositiveButtonText = getString(R.string.allow);
         p.mPositiveButtonListener = (a, b) -> onAllow();
         p.mNegativeButtonText = getString(R.string.deny);