Add extra summary string in cross profiles page
Fixes: 158227594
Test: manual testing
Change-Id: Idd44c690c2a77503173e733a49bc59c1717cbdd5
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 910aba4..8879919 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -8706,6 +8706,11 @@
to the user's IT admin. [CHAR LIMIT=NONE] -->
<string name="interact_across_profiles_summary_2">Only connect apps if you trust them not to share personal data with your IT admin.</string>
+ <!-- Settings text. This text lets a user know that they can disconnect work and personal apps from
+ the Privacy page in settings, This is only shown when the connected app page is launched via
+ an app, not when navigated to via settings. [CHAR LIMIT=NONE] -->
+ <string name="interact_across_profiles_summary_3">You can disconnect apps anytime in your device\u2019s privacy settings.</string>
+
<!-- Dialog title. This dialog is shown when a user tries to connect a work app to a personal
app (e.g. their work Calendar to their personal Calendar), and it's confirming that they should
connect the apps only if they trust the work app with their personal data. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/interact_across_profiles_permissions_details.xml b/res/xml/interact_across_profiles_permissions_details.xml
index c40eaf5..bf0ea8f 100644
--- a/res/xml/interact_across_profiles_permissions_details.xml
+++ b/res/xml/interact_across_profiles_permissions_details.xml
@@ -38,4 +38,9 @@
<Preference
android:summary="@string/interact_across_profiles_summary_2"
android:selectable="false" />
+
+ <Preference
+ android:key="interact_across_profiles_extra_summary"
+ android:summary="@string/interact_across_profiles_summary_3"
+ android:selectable="false"/>
</PreferenceScreen>
diff --git a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
index 1fe9fd6..71d9d13 100644
--- a/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
+++ b/src/com/android/settings/applications/specialaccess/interactacrossprofiles/InteractAcrossProfilesDetails.java
@@ -63,6 +63,8 @@
"interact_across_profiles_settings_switch";
private static final String INTERACT_ACROSS_PROFILES_HEADER = "interact_across_profiles_header";
public static final String INSTALL_APP_BANNER_KEY = "install_app_banner";
+ public static final String INTERACT_ACROSS_PROFILE_EXTRA_SUMMARY_KEY =
+ "interact_across_profiles_extra_summary";
public static final String EXTRA_SHOW_FRAGMENT_ARGS = ":settings:show_fragment_args";
public static final String INTENT_KEY = "intent";
@@ -79,6 +81,7 @@
private boolean mInstalledInWork;
private String mAppLabel;
private Intent mInstallAppIntent;
+ private boolean mIsPageLaunchedByApp;
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -106,6 +109,8 @@
mInstallBanner = findPreference(INSTALL_APP_BANNER_KEY);
mInstallBanner.setOnPreferenceClickListener(this);
+ mIsPageLaunchedByApp = launchedByApp();
+
// refreshUi checks that the user can still configure the appOp, return to the
// previous page if it can't.
if (!refreshUi()) {
@@ -113,14 +118,23 @@
}
addAppTitleAndIcons(mPersonalProfile, mWorkProfile);
styleActionBar();
+ maybeShowExtraSummary();
logPageLaunchMetrics();
}
+ private void maybeShowExtraSummary() {
+ Preference extraSummary = findPreference(INTERACT_ACROSS_PROFILE_EXTRA_SUMMARY_KEY);
+ if (extraSummary == null) {
+ return;
+ }
+ extraSummary.setVisible(mIsPageLaunchedByApp);
+ }
+
private void logPageLaunchMetrics() {
if (!mCrossProfileApps.canConfigureInteractAcrossProfiles(mPackageName)) {
logNonConfigurableAppMetrics();
}
- if (launchedByApp()) {
+ if (mIsPageLaunchedByApp) {
logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_LAUNCHED_FROM_APP);
} else {
logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_LAUNCHED_FROM_SETTINGS);
@@ -262,7 +276,7 @@
logEvent(DevicePolicyEnums.CROSS_PROFILE_SETTINGS_PAGE_USER_CONSENTED);
enableInteractAcrossProfiles(true);
refreshUi();
- if (launchedByApp()) {
+ if (mIsPageLaunchedByApp) {
setIntentAndFinish(/* appChanged= */ true);
}
}