From 9071506902ebb6d6e9323f0d09a51a79b8a111b7 Mon Sep 17 00:00:00 2001 From: Chandan Nath Date: Mon, 1 Apr 2019 21:05:15 +0100 Subject: [PATCH] Show "Backup service isn't active" if backup isnt active for work profile Bug: 127821779 Test: 1) Set up work profile. 2) adb shell bmgr --user 19 activate true 3) Settings -> System -> Backup -> Work -> Shows google backup settings 4) adb shell bmgr --user 19 activate false 5) Settings -> System -> Backup -> Work -> "Backup service isn't active" Change-Id: Ifc16cf3e69fd9db87d519cbad68f0f8e9d8ef6f3 --- src/com/android/settings/SettingsActivity.java | 10 +++++++--- .../BackupInactivePreferenceController.java | 3 --- .../BackupInactivePreferenceControllerTest.java | 16 ++-------------- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java index 001e65be8be..e704076c5e7 100644 --- a/src/com/android/settings/SettingsActivity.java +++ b/src/com/android/settings/SettingsActivity.java @@ -632,10 +632,14 @@ public class SettingsActivity extends SettingsBaseActivity showDev, isAdmin) || somethingChanged; - // Enable/disable backup settings depending on whether backup is activated for the user. - boolean isBackupActive = new BackupSettingsHelper(this).isBackupServiceActive(); + // For profiles, we want them to be included in the profile select dialog even if + // backup is not activated. + // For other users, enable/disable backup settings depending on whether backup is activated + // for the user. + boolean enableBackupTile = um.isManagedProfile() + || new BackupSettingsHelper(this).isBackupServiceActive(); somethingChanged = setTileEnabled(changedList, new ComponentName(packageName, - UserBackupSettingsActivity.class.getName()), isBackupActive, isAdmin) + UserBackupSettingsActivity.class.getName()), enableBackupTile, isAdmin) || somethingChanged; somethingChanged = setTileEnabled(changedList, new ComponentName(packageName, diff --git a/src/com/android/settings/backup/BackupInactivePreferenceController.java b/src/com/android/settings/backup/BackupInactivePreferenceController.java index 8bd278c2e13..83a03185e15 100644 --- a/src/com/android/settings/backup/BackupInactivePreferenceController.java +++ b/src/com/android/settings/backup/BackupInactivePreferenceController.java @@ -28,9 +28,6 @@ public class BackupInactivePreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { - if (!PrivacySettingsUtils.isAdminUser(mContext)) { - return DISABLED_FOR_USER; - } if (PrivacySettingsUtils.isInvisibleKey(mContext, PrivacySettingsUtils.BACKUP_INACTIVE)) { return UNSUPPORTED_ON_DEVICE; } diff --git a/tests/robotests/src/com/android/settings/backup/BackupInactivePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/backup/BackupInactivePreferenceControllerTest.java index f8b3578d0d5..1d8d0283c2f 100644 --- a/tests/robotests/src/com/android/settings/backup/BackupInactivePreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/backup/BackupInactivePreferenceControllerTest.java @@ -20,8 +20,6 @@ import static com.google.common.truth.Truth.assertThat; import android.content.Context; -import androidx.preference.Preference; - import com.android.settings.core.BasePreferenceController; import org.junit.After; @@ -38,7 +36,6 @@ import org.robolectric.annotation.Config; public class BackupInactivePreferenceControllerTest { private Context mContext; private BackupInactivePreferenceController mController; - private Preference mPreference; @Before public void setUp() { @@ -54,23 +51,14 @@ public class BackupInactivePreferenceControllerTest { } @Test - public void getAvailabilityStatus_isAdmiUser_isnotInvisibleKey_shouldBeAvailable() { - ShadowPrivacySettingsUtils.setIsAdminUser(true); + public void getAvailabilityStatus_isnotInvisibleKey_shouldBeAvailable() { ShadowPrivacySettingsUtils.setIsInvisibleKey(false); assertThat(mController.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.AVAILABLE); } @Test - public void getAvailabilityStatus_isnotAdmiUser_shouldBeDisabledForUser() { - ShadowPrivacySettingsUtils.setIsAdminUser(false); - assertThat(mController.getAvailabilityStatus()) - .isEqualTo(BasePreferenceController.DISABLED_FOR_USER); - } - - @Test - public void getAvailabilityStatus_isAdmiUser_isInvisibleKey_shouldBeDisabledUnsupported() { - ShadowPrivacySettingsUtils.setIsAdminUser(true); + public void getAvailabilityStatus_isInvisibleKey_shouldBeDisabledUnsupported() { ShadowPrivacySettingsUtils.setIsInvisibleKey(true); assertThat(mController.getAvailabilityStatus()) .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE);