Loading src/com/android/launcher3/allapps/PrivateProfileManager.java +18 −17 Original line number Diff line number Diff line Loading @@ -60,9 +60,10 @@ import java.util.function.Predicate; */ public class PrivateProfileManager extends UserProfileManager { private static final String SAFETY_CENTER_INTENT = Intent.ACTION_SAFETY_CENTER; private static final String PS_SETTINGS_FRAGMENT_KEY = ":settings:fragment_args_key"; private static final String PS_SETTINGS_FRAGMENT_VALUE = "AndroidPrivateSpace_personal"; // TODO (b/324573634): Fix the intent string. public static final Intent PRIVATE_SPACE_INTENT = new Intent("com.android.settings.action.PRIVATE_SPACE_SETUP_FLOW"); private final ActivityAllAppsContainerView<?> mAllApps; private final Predicate<UserHandle> mPrivateProfileMatcher; private Set<String> mPreInstalledSystemPackages = new HashSet<>(); Loading Loading @@ -158,18 +159,23 @@ public class PrivateProfileManager extends UserProfileManager { } } /** Opens the Private Space Settings Entry Point. */ /** Opens the Private Space Settings Page. */ public void openPrivateSpaceSettings() { Intent psSettingsIntent = new Intent(SAFETY_CENTER_INTENT); psSettingsIntent.putExtra(PS_SETTINGS_FRAGMENT_KEY, PS_SETTINGS_FRAGMENT_VALUE); mAllApps.getContext().startActivity(psSettingsIntent); if (mPrivateSpaceSettingsAvailable) { mAllApps.getContext().startActivity(PRIVATE_SPACE_INTENT); } } /** Whether Private Space Settings Entry Point is available on the device. */ /** Returns whether or not Private Space Settings Page is available. */ public boolean isPrivateSpaceSettingsAvailable() { return mPrivateSpaceSettingsAvailable; } /** Sets whether Private Space Settings Page is available. */ public boolean setPrivateSpaceSettingsAvailable(boolean value) { return mPrivateSpaceSettingsAvailable = value; } /** Initializes binder call based properties in non-main thread. * <p> * This can cause the Private Space container items to not load/respond correctly sometimes, Loading @@ -183,19 +189,14 @@ public class PrivateProfileManager extends UserProfileManager { Preconditions.assertNonUiThread(); setPreInstalledSystemPackages(); setAppInstallerIntent(); setPrivateSpaceSettingsAvailable(); initializePrivateSpaceSettingsState(); } private void setPrivateSpaceSettingsAvailable() { if (mPrivateSpaceSettingsAvailable) { return; } private void initializePrivateSpaceSettingsState() { Preconditions.assertNonUiThread(); Intent psSettingsIntent = new Intent(SAFETY_CENTER_INTENT); psSettingsIntent.putExtra(PS_SETTINGS_FRAGMENT_KEY, PS_SETTINGS_FRAGMENT_VALUE); ResolveInfo resolveInfo = mAllApps.getContext().getPackageManager() .resolveActivity(psSettingsIntent, PackageManager.MATCH_SYSTEM_ONLY); mPrivateSpaceSettingsAvailable = resolveInfo != null; .resolveActivity(PRIVATE_SPACE_INTENT, PackageManager.MATCH_SYSTEM_ONLY); setPrivateSpaceSettingsAvailable(resolveInfo != null); } private void setPreInstalledSystemPackages() { Loading tests/src/com/android/launcher3/allapps/PrivateProfileManagerTest.java +2 −8 Original line number Diff line number Diff line Loading @@ -76,9 +76,6 @@ public class PrivateProfileManagerTest { new UserIconInfo(MAIN_HANDLE, UserIconInfo.TYPE_MAIN); private static final UserIconInfo PRIVATE_ICON_INFO = new UserIconInfo(PRIVATE_HANDLE, UserIconInfo.TYPE_PRIVATE); private static final String SAFETY_CENTER_INTENT = Intent.ACTION_SAFETY_CENTER; private static final String PS_SETTINGS_FRAGMENT_KEY = ":settings:fragment_args_key"; private static final String PS_SETTINGS_FRAGMENT_VALUE = "AndroidPrivateSpace_personal"; private PrivateProfileManager mPrivateProfileManager; @Mock Loading Loading @@ -180,9 +177,9 @@ public class PrivateProfileManagerTest { @Test public void openPrivateSpaceSettings_triggersSecurityAndPrivacyIntent() { Intent expectedIntent = new Intent(SAFETY_CENTER_INTENT); expectedIntent.putExtra(PS_SETTINGS_FRAGMENT_KEY, PS_SETTINGS_FRAGMENT_VALUE); Intent expectedIntent = PrivateProfileManager.PRIVATE_SPACE_INTENT; ArgumentCaptor<Intent> acIntent = ArgumentCaptor.forClass(Intent.class); mPrivateProfileManager.setPrivateSpaceSettingsAvailable(true); mPrivateProfileManager.openPrivateSpaceSettings(); Loading @@ -190,9 +187,6 @@ public class PrivateProfileManagerTest { Intent actualIntent = acIntent.getValue(); assertEquals("Intent Action is different", expectedIntent.getAction(), actualIntent.getAction()); assertEquals("Settings Fragment is incorrect in Intent", expectedIntent.getStringExtra(PS_SETTINGS_FRAGMENT_KEY), actualIntent.getStringExtra(PS_SETTINGS_FRAGMENT_KEY)); } private static void awaitTasksCompleted() throws Exception { Loading Loading
src/com/android/launcher3/allapps/PrivateProfileManager.java +18 −17 Original line number Diff line number Diff line Loading @@ -60,9 +60,10 @@ import java.util.function.Predicate; */ public class PrivateProfileManager extends UserProfileManager { private static final String SAFETY_CENTER_INTENT = Intent.ACTION_SAFETY_CENTER; private static final String PS_SETTINGS_FRAGMENT_KEY = ":settings:fragment_args_key"; private static final String PS_SETTINGS_FRAGMENT_VALUE = "AndroidPrivateSpace_personal"; // TODO (b/324573634): Fix the intent string. public static final Intent PRIVATE_SPACE_INTENT = new Intent("com.android.settings.action.PRIVATE_SPACE_SETUP_FLOW"); private final ActivityAllAppsContainerView<?> mAllApps; private final Predicate<UserHandle> mPrivateProfileMatcher; private Set<String> mPreInstalledSystemPackages = new HashSet<>(); Loading Loading @@ -158,18 +159,23 @@ public class PrivateProfileManager extends UserProfileManager { } } /** Opens the Private Space Settings Entry Point. */ /** Opens the Private Space Settings Page. */ public void openPrivateSpaceSettings() { Intent psSettingsIntent = new Intent(SAFETY_CENTER_INTENT); psSettingsIntent.putExtra(PS_SETTINGS_FRAGMENT_KEY, PS_SETTINGS_FRAGMENT_VALUE); mAllApps.getContext().startActivity(psSettingsIntent); if (mPrivateSpaceSettingsAvailable) { mAllApps.getContext().startActivity(PRIVATE_SPACE_INTENT); } } /** Whether Private Space Settings Entry Point is available on the device. */ /** Returns whether or not Private Space Settings Page is available. */ public boolean isPrivateSpaceSettingsAvailable() { return mPrivateSpaceSettingsAvailable; } /** Sets whether Private Space Settings Page is available. */ public boolean setPrivateSpaceSettingsAvailable(boolean value) { return mPrivateSpaceSettingsAvailable = value; } /** Initializes binder call based properties in non-main thread. * <p> * This can cause the Private Space container items to not load/respond correctly sometimes, Loading @@ -183,19 +189,14 @@ public class PrivateProfileManager extends UserProfileManager { Preconditions.assertNonUiThread(); setPreInstalledSystemPackages(); setAppInstallerIntent(); setPrivateSpaceSettingsAvailable(); initializePrivateSpaceSettingsState(); } private void setPrivateSpaceSettingsAvailable() { if (mPrivateSpaceSettingsAvailable) { return; } private void initializePrivateSpaceSettingsState() { Preconditions.assertNonUiThread(); Intent psSettingsIntent = new Intent(SAFETY_CENTER_INTENT); psSettingsIntent.putExtra(PS_SETTINGS_FRAGMENT_KEY, PS_SETTINGS_FRAGMENT_VALUE); ResolveInfo resolveInfo = mAllApps.getContext().getPackageManager() .resolveActivity(psSettingsIntent, PackageManager.MATCH_SYSTEM_ONLY); mPrivateSpaceSettingsAvailable = resolveInfo != null; .resolveActivity(PRIVATE_SPACE_INTENT, PackageManager.MATCH_SYSTEM_ONLY); setPrivateSpaceSettingsAvailable(resolveInfo != null); } private void setPreInstalledSystemPackages() { Loading
tests/src/com/android/launcher3/allapps/PrivateProfileManagerTest.java +2 −8 Original line number Diff line number Diff line Loading @@ -76,9 +76,6 @@ public class PrivateProfileManagerTest { new UserIconInfo(MAIN_HANDLE, UserIconInfo.TYPE_MAIN); private static final UserIconInfo PRIVATE_ICON_INFO = new UserIconInfo(PRIVATE_HANDLE, UserIconInfo.TYPE_PRIVATE); private static final String SAFETY_CENTER_INTENT = Intent.ACTION_SAFETY_CENTER; private static final String PS_SETTINGS_FRAGMENT_KEY = ":settings:fragment_args_key"; private static final String PS_SETTINGS_FRAGMENT_VALUE = "AndroidPrivateSpace_personal"; private PrivateProfileManager mPrivateProfileManager; @Mock Loading Loading @@ -180,9 +177,9 @@ public class PrivateProfileManagerTest { @Test public void openPrivateSpaceSettings_triggersSecurityAndPrivacyIntent() { Intent expectedIntent = new Intent(SAFETY_CENTER_INTENT); expectedIntent.putExtra(PS_SETTINGS_FRAGMENT_KEY, PS_SETTINGS_FRAGMENT_VALUE); Intent expectedIntent = PrivateProfileManager.PRIVATE_SPACE_INTENT; ArgumentCaptor<Intent> acIntent = ArgumentCaptor.forClass(Intent.class); mPrivateProfileManager.setPrivateSpaceSettingsAvailable(true); mPrivateProfileManager.openPrivateSpaceSettings(); Loading @@ -190,9 +187,6 @@ public class PrivateProfileManagerTest { Intent actualIntent = acIntent.getValue(); assertEquals("Intent Action is different", expectedIntent.getAction(), actualIntent.getAction()); assertEquals("Settings Fragment is incorrect in Intent", expectedIntent.getStringExtra(PS_SETTINGS_FRAGMENT_KEY), actualIntent.getStringExtra(PS_SETTINGS_FRAGMENT_KEY)); } private static void awaitTasksCompleted() throws Exception { Loading