Previously, 1) we showed backup settings for main users (including secondary non-profile users) only when backup was activated 2) for profile users, we always showed backup settings. However, this results in a nullpointer when opening Settings when backup is deactivated for both main and profile user. This CL fixes that nullpointer(and also changes existing functionality since keeping existing functionality and fixing the nullpointer would be too large a code change) For more details, see https://b.corp.google.com/issues/129843872#comment9 and https://b.corp.google.com/issues/129843872#comment12 Bug: 129843872 Test: 1. atest -v UserBackupSettingsActivityTest 2. atest -v BackupInactivePreferenceControllerTest 3a) backup not active for main and profile user. shows "isn't active" for both 3b) backup active for main only. shows backup settings for main user and "isn't active" for profile. 3c) backup active for both. shows backup settings for both. 3d) backup active for profile only is not possible (as profile backup is only active when main user backup is active). if we try to force set it, we get "isn't active" for both 3e) backup not active for secondary user. shows "isn't active" 3f) backup active for secondary user. shows backup settings. Change-Id: Icb87a047068d29eda560c45dfa4ae02bc991b1af
39 lines
1.3 KiB
Java
39 lines
1.3 KiB
Java
/*
|
|
* Copyright (C) 2018 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License
|
|
*/
|
|
|
|
package com.android.settings.backup;
|
|
|
|
import android.content.Context;
|
|
|
|
import com.android.settings.core.BasePreferenceController;
|
|
|
|
public class BackupInactivePreferenceController extends BasePreferenceController {
|
|
|
|
public BackupInactivePreferenceController(Context context, String key) {
|
|
super(context, key);
|
|
}
|
|
|
|
@Override
|
|
public int getAvailabilityStatus() {
|
|
if (!new BackupSettingsHelper(mContext).isBackupServiceActive()) {
|
|
return AVAILABLE_UNSEARCHABLE;
|
|
}
|
|
if (PrivacySettingsUtils.isInvisibleKey(mContext, PrivacySettingsUtils.BACKUP_INACTIVE)) {
|
|
return UNSUPPORTED_ON_DEVICE;
|
|
}
|
|
return AVAILABLE;
|
|
}
|
|
} |