diff options
-rw-r--r-- | service/java/com/android/server/wifi/WifiNetworkFactory.java | 22 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java | 12 |
2 files changed, 26 insertions, 8 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java index ce83a6d5e..9231843f6 100644 --- a/service/java/com/android/server/wifi/WifiNetworkFactory.java +++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java @@ -25,6 +25,8 @@ import android.app.ActivityManager; import android.app.AlarmManager; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; import android.net.MacAddress; import android.net.NetworkCapabilities; import android.net.NetworkFactory; @@ -86,8 +88,8 @@ public class WifiNetworkFactory extends NetworkFactory { @VisibleForTesting public static final String UI_START_INTENT_CATEGORY = "android.intent.category.DEFAULT"; @VisibleForTesting - public static final String UI_START_INTENT_EXTRA_PACKAGE_NAME = - "com.android.settings.wifi.extra.PACKAGE_NAME"; + public static final String UI_START_INTENT_EXTRA_APP_NAME = + "com.android.settings.wifi.extra.APP_NAME"; private final Context mContext; private final ActivityManager mActivityManager; @@ -1033,14 +1035,26 @@ public class WifiNetworkFactory extends NetworkFactory { mConnectionTimeoutSet = true; } + private @NonNull CharSequence getAppName(@NonNull String packageName) { + ApplicationInfo applicationInfo = null; + try { + applicationInfo = mContext.getPackageManager().getApplicationInfo(packageName, 0); + } catch (PackageManager.NameNotFoundException e) { + Log.e(TAG, "Failed to find app name for " + packageName); + return ""; + } + CharSequence appName = mContext.getPackageManager().getApplicationLabel(applicationInfo); + return (appName != null) ? appName : ""; + } + private void startUi() { Intent intent = new Intent(); intent.setAction(UI_START_INTENT_ACTION); intent.addCategory(UI_START_INTENT_CATEGORY); intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK); int requestorUid = mActiveSpecificNetworkRequestSpecifier.requestorUid; - intent.putExtra(UI_START_INTENT_EXTRA_PACKAGE_NAME, - mContext.getPackageManager().getNameForUid(requestorUid)); + intent.putExtra(UI_START_INTENT_EXTRA_APP_NAME, + getAppName(mContext.getPackageManager().getNameForUid(requestorUid))); mContext.startActivityAsUser(intent, UserHandle.getUserHandleForUid(requestorUid)); } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java index ab814d985..98caa1399 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java @@ -33,6 +33,7 @@ import android.app.AlarmManager; import android.app.AlarmManager.OnAlarmListener; import android.content.Context; import android.content.Intent; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.net.MacAddress; import android.net.NetworkCapabilities; @@ -88,6 +89,7 @@ public class WifiNetworkFactoryTest { private static final int TEST_CALLBACK_IDENTIFIER = 123; private static final String TEST_PACKAGE_NAME_1 = "com.test.networkrequest.1"; private static final String TEST_PACKAGE_NAME_2 = "com.test.networkrequest.2"; + private static final String TEST_APP_NAME = "app"; private static final String TEST_SSID_1 = "test1234"; private static final String TEST_SSID_2 = "test12345678"; private static final String TEST_SSID_3 = "abc1234"; @@ -150,6 +152,8 @@ public class WifiNetworkFactoryTest { when(mContext.getPackageManager()).thenReturn(mPackageManager); when(mPackageManager.getNameForUid(TEST_UID_1)).thenReturn(TEST_PACKAGE_NAME_1); when(mPackageManager.getNameForUid(TEST_UID_2)).thenReturn(TEST_PACKAGE_NAME_2); + when(mPackageManager.getApplicationInfo(any(), anyInt())).thenReturn(new ApplicationInfo()); + when(mPackageManager.getApplicationLabel(any())).thenReturn(TEST_APP_NAME); when(mActivityManager.getPackageImportance(TEST_PACKAGE_NAME_1)) .thenReturn(IMPORTANCE_FOREGROUND_SERVICE); when(mActivityManager.getPackageImportance(TEST_PACKAGE_NAME_2)) @@ -439,8 +443,8 @@ public class WifiNetworkFactoryTest { Intent intent = intentArgumentCaptor.getValue(); assertNotNull(intent); assertEquals(intent.getAction(), WifiNetworkFactory.UI_START_INTENT_ACTION); - assertEquals(intent.getStringExtra(WifiNetworkFactory.UI_START_INTENT_EXTRA_PACKAGE_NAME), - TEST_PACKAGE_NAME_1); + assertEquals(intent.getStringExtra(WifiNetworkFactory.UI_START_INTENT_EXTRA_APP_NAME), + TEST_APP_NAME); assertTrue(intent.getCategories().contains(WifiNetworkFactory.UI_START_INTENT_CATEGORY)); assertTrue((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0); assertTrue((intent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK) != 0); @@ -468,8 +472,8 @@ public class WifiNetworkFactoryTest { assertNotNull(intent); assertEquals(intent.getAction(), WifiNetworkFactory.UI_START_INTENT_ACTION); assertTrue(intent.getCategories().contains(WifiNetworkFactory.UI_START_INTENT_CATEGORY)); - assertEquals(intent.getStringExtra(WifiNetworkFactory.UI_START_INTENT_EXTRA_PACKAGE_NAME), - TEST_PACKAGE_NAME_1); + assertEquals(intent.getStringExtra(WifiNetworkFactory.UI_START_INTENT_EXTRA_APP_NAME), + TEST_APP_NAME); assertTrue((intent.getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0); assertTrue((intent.getFlags() & Intent.FLAG_ACTIVITY_NEW_TASK) != 0); |