From d3fa045e351bf195055cb962df77367171f08150 Mon Sep 17 00:00:00 2001 From: Alex Kershaw Date: Sat, 16 May 2020 20:30:26 +0100 Subject: [PATCH] Close Settings page when cross-profile appop is granted Fixes: 156365481 Test: manual Change-Id: I9250ef5db0c40a42a25a2dedf84a47d1b1da11f1 --- .../InteractAcrossProfilesDetails.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java index ad47c03a90b..4e7a9e9372e 100644 --- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java +++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java @@ -120,18 +120,10 @@ public class InteractAcrossProfilesDetails extends AppInfoBase if (!mCrossProfileApps.canConfigureInteractAcrossProfiles(mPackageName)) { logNonConfigurableAppMetrics(); } - Bundle bundle = getIntent().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGS); - if (bundle == null) { - logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_LAUNCHED_FROM_SETTINGS); - return; - } - Intent intent = (Intent) bundle.get(INTENT_KEY); - if (intent == null) { - logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_LAUNCHED_FROM_SETTINGS); - return; - } - if (ACTION_MANAGE_CROSS_PROFILE_ACCESS.equals(intent.getAction())) { + if (launchedByApp()) { logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_LAUNCHED_FROM_APP); + } else { + logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_LAUNCHED_FROM_SETTINGS); } } @@ -275,6 +267,9 @@ public class InteractAcrossProfilesDetails extends AppInfoBase logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_USER_CONSENTED); enableInteractAcrossProfiles(true); refreshUi(); + if (launchedByApp()) { + setIntentAndFinish(/* appChanged= */ true); + } } }) .setNegativeButton(R.string.deny, new DialogInterface.OnClickListener() { @@ -469,4 +464,16 @@ public class InteractAcrossProfilesDetails extends AppInfoBase public int getMetricsCategory() { return SettingsEnums.INTERACT_ACROSS_PROFILES; } + + private boolean launchedByApp() { + final Bundle bundle = getIntent().getBundleExtra(EXTRA_SHOW_FRAGMENT_ARGS); + if (bundle == null) { + return false; + } + final Intent intent = (Intent) bundle.get(INTENT_KEY); + if (intent == null) { + return false; + } + return ACTION_MANAGE_CROSS_PROFILE_ACCESS.equals(intent.getAction()); + } }