<string name="disabled_by_policy_title_camera">Camera not allowed</string>
<!-- Title for dialog displayed to tell user that screenshots are disabled by an admin [CHAR LIMIT=50] -->
<string name="disabled_by_policy_title_screen_capture">Screenshot not allowed</string>
- <!-- Title for dialog displayed to tell user that turning off backups is disallowed by an admin [CHAR LIMIT=50] -->
- <string name="disabled_by_policy_title_turn_off_backups">Can’t turn off backups</string>
<!-- Title for dialog displayed to tell user that the app was suspended by an admin [CHAR LIMIT=50] -->
<string name="disabled_by_policy_title_suspend_packages">Can’t open this app</string>
<!-- Shown when the user tries to change a settings locked by an admin [CHAR LIMIT=200] -->
<item quantity="one"><xliff:g id="count">%d</xliff:g> attempt</item>
<item quantity="other"><xliff:g id="count">%d</xliff:g> attempts</item>
</plurals>
- <!-- List item in a work device's settings. This text lets the user know that their IT administrator requires their device's data to be backed up. The user can't change this setting. [CHAR LIMIT=NONE] -->
- <string name="enterprise_privacy_backups_enabled">This device\'s data is being backed up</string>
<!-- Message indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=NONE] -->
<string name="do_disclosure_generic">This device is managed by your organization.</string>
<!-- Message indicating that the device is enterprise-managed by a Device Owner [CHAR LIMIT=NONE] -->
<Preference android:key="ca_certs_managed_profile"
android:title="@string/enterprise_privacy_ca_certs_work"
android:selectable="false"/>
- <Preference android:key="backups_enabled"
- android:title="@string/enterprise_privacy_backups_enabled"
- android:selectable="false"/>
</PreferenceCategory>
<PreferenceCategory android:key="device_access_category"
case DevicePolicyManager.POLICY_DISABLE_SCREEN_CAPTURE:
titleView.setText(R.string.disabled_by_policy_title_screen_capture);
break;
- case DevicePolicyManager.POLICY_MANDATORY_BACKUPS:
- titleView.setText(R.string.disabled_by_policy_title_turn_off_backups);
- break;
case DevicePolicyManager.POLICY_SUSPEND_PACKAGES:
titleView.setText(R.string.disabled_by_policy_title_suspend_packages);
break;
+++ /dev/null
-/*
- * 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.enterprise;
-
-import android.content.Context;
-
-import com.android.settings.core.BasePreferenceController;
-import com.android.settings.overlay.FeatureFactory;
-
-public class BackupsEnabledPreferenceController extends BasePreferenceController {
-
- private static final String KEY_BACKUPS_ENABLED = "backups_enabled";
- private final EnterprisePrivacyFeatureProvider mFeatureProvider;
-
- public BackupsEnabledPreferenceController(Context context) {
- super(context, KEY_BACKUPS_ENABLED);
- mFeatureProvider = FeatureFactory.getFactory(context)
- .getEnterprisePrivacyFeatureProvider(context);
- }
-
- @Override
- public int getAvailabilityStatus() {
- return mFeatureProvider.areBackupsMandatory() ? AVAILABLE : DISABLED_FOR_USER;
- }
-}
-
* profile (if any).
*/
int getNumberOfActiveDeviceAdminsForCurrentUserAndManagedProfile();
-
- /*
- * Returns whether backups are mandatory.
- */
- boolean areBackupsMandatory();
}
return activeAdmins;
}
- @Override
- public boolean areBackupsMandatory() {
- return null != mDpm.getMandatoryBackupTransport();
- }
-
protected static class EnterprisePrivacySpan extends ClickableSpan {
private final Context mContext;
exposureChangesCategoryControllers.add(new CaCertsCurrentUserPreferenceController(context));
exposureChangesCategoryControllers.add(new CaCertsManagedProfilePreferenceController(
context));
- exposureChangesCategoryControllers.add(new BackupsEnabledPreferenceController(context));
controllers.addAll(exposureChangesCategoryControllers);
controllers.add(new PreferenceCategoryController(context, "exposure_changes_category")
.setChildren(exposureChangesCategoryControllers));
assertEquals(Shadows.shadowOf(textView).innerText(),
mActivity.getString(R.string.disabled_by_policy_title_screen_capture));
- mHelper.setAdminSupportTitle(view, DevicePolicyManager.POLICY_MANDATORY_BACKUPS);
- assertEquals(Shadows.shadowOf(textView).innerText(),
- mActivity.getString(R.string.disabled_by_policy_title_turn_off_backups));
-
mHelper.setAdminSupportTitle(view, DevicePolicyManager.POLICY_SUSPEND_PACKAGES);
assertEquals(Shadows.shadowOf(textView).innerText(),
mActivity.getString(R.string.disabled_by_policy_title_suspend_packages));
+++ /dev/null
-/*
- * 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.enterprise;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.testutils.FakeFeatureFactory;
-import com.android.settings.testutils.SettingsRobolectricTestRunner;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
-
-@RunWith(SettingsRobolectricTestRunner.class)
-public class BackupsEnabledPreferenceControllerTest {
-
- private static final String KEY_BACKUPS_ENABLED = "backups_enabled";
-
- private Context mContext;
- private FakeFeatureFactory mFeatureFactory;
-
- private BackupsEnabledPreferenceController mController;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
- mFeatureFactory = FakeFeatureFactory.setupForTest();
- mController = new BackupsEnabledPreferenceController(mContext);
- }
-
- @Test
- public void testIsAvailable() {
- when(mFeatureFactory.enterprisePrivacyFeatureProvider.areBackupsMandatory())
- .thenReturn(false);
- assertThat(mController.isAvailable()).isFalse();
-
- when(mFeatureFactory.enterprisePrivacyFeatureProvider.areBackupsMandatory())
- .thenReturn(true);
- assertThat(mController.isAvailable()).isTrue();
- }
-
- @Test
- public void testHandlePreferenceTreeClick() {
- assertThat(mController.handlePreferenceTreeClick(new Preference(mContext, null, 0, 0)))
- .isFalse();
- }
-
- @Test
- public void testGetPreferenceKey() {
- assertThat(mController.getPreferenceKey()).isEqualTo(KEY_BACKUPS_ENABLED);
- }
-}
.isEqualTo(3);
}
- @Test
- public void testAreBackupsMandatory() {
- assertThat(mProvider.areBackupsMandatory()).isFalse();
- ComponentName transportComponent = new ComponentName("test", "test");
- when(mDevicePolicyManager.getMandatoryBackupTransport())
- .thenReturn(transportComponent);
- assertThat(mProvider.areBackupsMandatory()).isTrue();
- }
-
private void resetAndInitializePackageManager() {
reset(mPackageManager);
when(mPackageManager.hasSystemFeature(PackageManager.FEATURE_DEVICE_ADMIN))
private void verifyPreferenceControllers(List<AbstractPreferenceController> controllers) {
assertThat(controllers).isNotNull();
- assertThat(controllers.size()).isEqualTo(18);
+ assertThat(controllers.size()).isEqualTo(17);
int position = 0;
assertThat(controllers.get(position++)).isInstanceOf(NetworkLogsPreferenceController.class);
assertThat(controllers.get(position++)).isInstanceOf(BugReportsPreferenceController.class);
assertThat(controllers.get(position++)).isInstanceOf(
CaCertsManagedProfilePreferenceController.class);
assertThat(controllers.get(position++)).isInstanceOf(
- BackupsEnabledPreferenceController.class);
- assertThat(controllers.get(position++)).isInstanceOf(
PreferenceCategoryController.class);
assertThat(controllers.get(position++)).isInstanceOf(
FailedPasswordWipeCurrentUserPreferenceController.class);