If backup service is not available, remove Settings->Backup and Backup->"Backup is disabled by
admin" from search results. "Backup -> Backup" still appears due to the PrivacySettingsActivity. On clicking that, we get "Backup is disabled by admin" which is OK Bug: 129743816 Test: 1. atest -v UserBackupSettingsActivityTest 2. atest -v BackupInactivePreferenceControllerTest 3. Create and switch to secondary user. Type "backup" in settings search. Note that only "Backup->Backup" is shown and on clicking it, we get "Backup is disabled by admin" Change-Id: Ic13e2d745c9511cbebe27aa4c6f5cd89b277fc37
This commit is contained in:
@@ -639,12 +639,7 @@ public class SettingsActivity extends SettingsBaseActivity
|
||||
showDev, isAdmin)
|
||||
|| somethingChanged;
|
||||
|
||||
// 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();
|
||||
boolean enableBackupTile = new BackupSettingsHelper(this).showBackupSettingsForUser();
|
||||
somethingChanged = setTileEnabled(changedList, new ComponentName(packageName,
|
||||
UserBackupSettingsActivity.class.getName()), enableBackupTile, isAdmin)
|
||||
|| somethingChanged;
|
||||
|
@@ -28,6 +28,9 @@ public class BackupInactivePreferenceController extends BasePreferenceController
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
if (!new BackupSettingsHelper(mContext).showBackupSettingsForUser()) {
|
||||
return AVAILABLE_UNSEARCHABLE;
|
||||
}
|
||||
if (PrivacySettingsUtils.isInvisibleKey(mContext, PrivacySettingsUtils.BACKUP_INACTIVE)) {
|
||||
return UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
@@ -50,6 +50,14 @@ public class BackupSettingsHelper {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
public boolean showBackupSettingsForUser() {
|
||||
// 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.
|
||||
return UserManager.get(mContext).isManagedProfile() || isBackupServiceActive();
|
||||
}
|
||||
|
||||
/**
|
||||
* If there is only one profile, show whether the backup is on or off.
|
||||
* Otherwise, show nothing.
|
||||
|
@@ -98,7 +98,7 @@ public class UserBackupSettingsActivity extends FragmentActivity implements Inde
|
||||
*/
|
||||
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider() {
|
||||
private static final String BACKUP_SEARCH_INDEX_KEY = "backup";
|
||||
private static final String BACKUP_SEARCH_INDEX_KEY = "Backup";
|
||||
|
||||
@Override
|
||||
public List<SearchIndexableRaw> getRawDataToIndex(Context context,
|
||||
@@ -119,6 +119,15 @@ public class UserBackupSettingsActivity extends FragmentActivity implements Inde
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final List<String> keys = super.getNonIndexableKeys(context);
|
||||
if (!new BackupSettingsHelper(context).showBackupSettingsForUser()) {
|
||||
keys.add(BACKUP_SEARCH_INDEX_KEY);
|
||||
}
|
||||
return keys;
|
||||
}
|
||||
};
|
||||
|
||||
@VisibleForTesting
|
||||
|
Reference in New Issue
Block a user