From a53001dd139182cca867e06f5b7185670ca8d73f Mon Sep 17 00:00:00 2001 From: Ben Lin Date: Wed, 7 Mar 2018 15:24:37 -0800 Subject: [PATCH] Introduce boolean flag to show/hide Reset Options. This adds one new flag: config_show_reset_dashboard Which when set to false, will hide Reset Options from System settings. Bug: 74127210 Test: Updated robotests Change-Id: I42b14a0abde575f5c4e51985125e8543716d206a (cherry picked from commit bd180a62ec597dbcc205ff55395851769cdbe730) --- res/values/bools.xml | 3 ++ res/xml/system_dashboard_fragment.xml | 3 +- .../settings/system/ResetPreferenceController.java | 35 ++++++++++++++ tests/robotests/res/values-mcc999/config.xml | 1 + .../system/ResetPreferenceControllerTest.java | 56 ++++++++++++++++++++++ 5 files changed, 97 insertions(+), 1 deletion(-) create mode 100644 src/com/android/settings/system/ResetPreferenceController.java create mode 100644 tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java diff --git a/res/values/bools.xml b/res/values/bools.xml index 4665f2eaed..8b0c5984e9 100644 --- a/res/values/bools.xml +++ b/res/values/bools.xml @@ -153,6 +153,9 @@ true + + true + true diff --git a/res/xml/system_dashboard_fragment.xml b/res/xml/system_dashboard_fragment.xml index d8459dd3c9..c3f15b99ff 100644 --- a/res/xml/system_dashboard_fragment.xml +++ b/res/xml/system_dashboard_fragment.xml @@ -46,7 +46,8 @@ android:summary="@string/reset_dashboard_summary" android:icon="@drawable/ic_restore" android:order="-50" - android:fragment="com.android.settings.system.ResetDashboardFragment" /> + android:fragment="com.android.settings.system.ResetDashboardFragment" + settings:controller="com.android.settings.system.ResetPreferenceController"/> false false false + false false false false diff --git a/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java new file mode 100644 index 0000000000..3869903c88 --- /dev/null +++ b/tests/robotests/src/com/android/settings/system/ResetPreferenceControllerTest.java @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2016 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.system; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; + +import com.android.settings.testutils.SettingsRobolectricTestRunner; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.MockitoAnnotations; +import org.robolectric.RuntimeEnvironment; +import org.robolectric.annotation.Config; + +@RunWith(SettingsRobolectricTestRunner.class) +public class ResetPreferenceControllerTest { + + private static final String KEY_RESET_DASHBOARD = "reset_dashboard"; + + private Context mContext; + private ResetPreferenceController mController; + + @Before + public void setUp() { + MockitoAnnotations.initMocks(this); + mContext = RuntimeEnvironment.application; + mController = new ResetPreferenceController(mContext, KEY_RESET_DASHBOARD); + } + + @Test + public void isAvailable_byDefault_true() { + assertThat(mController.isAvailable()).isTrue(); + } + + @Test + @Config(qualifiers = "mcc999") + public void isAvailable_ifNotVisible_false() { + assertThat(mController.isAvailable()).isFalse(); + } +} \ No newline at end of file -- 2.11.0