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
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 001e65b..e704076 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -632,10 +632,14 @@
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 8bd278c..83a0318 100644
--- a/src/com/android/settings/backup/BackupInactivePreferenceController.java
+++ b/src/com/android/settings/backup/BackupInactivePreferenceController.java
@@ -28,9 +28,6 @@
@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 f8b3578..1d8d028 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 android.content.Context;
-import androidx.preference.Preference;
-
import com.android.settings.core.BasePreferenceController;
import org.junit.After;
@@ -38,7 +36,6 @@
public class BackupInactivePreferenceControllerTest {
private Context mContext;
private BackupInactivePreferenceController mController;
- private Preference mPreference;
@Before
public void setUp() {
@@ -54,23 +51,14 @@
}
@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);