diff --git a/res/values/config.xml b/res/values/config.xml index f46134f301b..0a733079a98 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -41,9 +41,6 @@ false - - false - false diff --git a/res/values/strings.xml b/res/values/strings.xml index 1646b7016d6..e64bd87f8a5 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -9105,9 +9105,6 @@ Camera Laser Sensor - - Logical Camera As Default - Automatic system updates diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml index 55386a2c272..05759167f31 100644 --- a/res/xml/development_settings.xml +++ b/res/xml/development_settings.xml @@ -187,10 +187,6 @@ android:key="camera_laser_sensor_switch" android:title="@string/camera_laser_sensor_switch" /> - - createPreferenceControllers(Context context) { - final List controllers = new ArrayList<>(); final String[] authorities = getIntent().getStringArrayExtra(EXTRA_AUTHORITIES); + return buildPreferenceControllers(context, this /* parent */, authorities); + } + + private static List buildPreferenceControllers(Context context, + SettingsPreferenceFragment parent, String[] authorities) { + final List controllers = new ArrayList<>(); + final AccountPreferenceController accountPrefController = - new AccountPreferenceController(context, this, authorities); - getLifecycle().addObserver(accountPrefController); + new AccountPreferenceController(context, parent, authorities); + if (parent != null) { + parent.getLifecycle().addObserver(accountPrefController); + } controllers.add(accountPrefController); - controllers.add(new AutoSyncDataPreferenceController(context, this /*parent */)); - controllers.add(new AutoSyncPersonalDataPreferenceController(context, this /*parent */)); - controllers.add(new AutoSyncWorkDataPreferenceController(context, this /* parent */)); + controllers.add(new AutoSyncDataPreferenceController(context, parent)); + controllers.add(new AutoSyncPersonalDataPreferenceController(context, parent)); + controllers.add(new AutoSyncWorkDataPreferenceController(context, parent)); return controllers; } @@ -122,13 +130,7 @@ public class AccountDashboardFragment extends DashboardFragment { } public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY - = new SummaryLoader.SummaryProviderFactory() { - @Override - public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity, - SummaryLoader summaryLoader) { - return new SummaryProvider(activity, summaryLoader); - } - }; + = (activity, summaryLoader) -> new SummaryProvider(activity, summaryLoader); public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @@ -139,5 +141,12 @@ public class AccountDashboardFragment extends DashboardFragment { sir.xmlResId = R.xml.accounts_dashboard_settings; return Arrays.asList(sir); } + + @Override + public List createPreferenceControllers( + Context context) { + return buildPreferenceControllers( + context, null /* parent */, null /* authorities*/); + } }; } \ No newline at end of file diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java index 0b5cfffcbaf..769f4dae4f3 100644 --- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java +++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java @@ -406,7 +406,6 @@ public class DevelopmentSettingsDashboardFragment extends RestrictedDashboardFra controllers.add(new LogdSizePreferenceController(context)); controllers.add(new LogPersistPreferenceController(context, fragment, lifecycle)); controllers.add(new CameraLaserSensorPreferenceController(context)); - controllers.add(new LogicalCameraDefaultPreferenceController(context)); controllers.add(new WifiDisplayCertificationPreferenceController(context)); controllers.add(new WifiVerboseLoggingPreferenceController(context)); controllers.add(new WifiConnectedMacRandomizationPreferenceController(context)); diff --git a/src/com/android/settings/development/LogicalCameraDefaultPreferenceController.java b/src/com/android/settings/development/LogicalCameraDefaultPreferenceController.java deleted file mode 100644 index 8e6d4eaa520..00000000000 --- a/src/com/android/settings/development/LogicalCameraDefaultPreferenceController.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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.development; - -import android.content.Context; -import android.os.SystemProperties; -import androidx.preference.SwitchPreference; -import androidx.preference.Preference; -import android.text.TextUtils; - -import com.android.internal.annotations.VisibleForTesting; -import com.android.settings.R; -import com.android.settings.core.PreferenceControllerMixin; -import com.android.settingslib.development.DeveloperOptionsPreferenceController; - -public class LogicalCameraDefaultPreferenceController extends DeveloperOptionsPreferenceController - implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin { - - private static final String KEY_LOGICAL_CAMERA_DEFAULT_SWITCH = "logical_camera_default_switch"; - @VisibleForTesting - static final String BUILD_TYPE = "ro.build.type"; - @VisibleForTesting - static final String PROPERTY_LOGICAL_CAMERA_DEFAULT = "persist.camera.logical.default"; - @VisibleForTesting - static final int ENABLED = 1; - @VisibleForTesting - static final int DISABLED = 0; - @VisibleForTesting - static final String USERDEBUG_BUILD = "userdebug"; - @VisibleForTesting - static final String ENG_BUILD = "eng"; - @VisibleForTesting - static final String USER_BUILD = "user"; - - public LogicalCameraDefaultPreferenceController(Context context) { - super(context); - } - - @Override - public boolean isAvailable() { - return mContext.getResources().getBoolean(R.bool.config_show_logical_camera_default); - } - - @Override - public String getPreferenceKey() { - return KEY_LOGICAL_CAMERA_DEFAULT_SWITCH; - } - - @Override - public boolean onPreferenceChange(Preference preference, Object newValue) { - final boolean isEnabled = (Boolean) newValue; - String value = Integer.toString(isEnabled ? ENABLED : DISABLED); - SystemProperties.set(PROPERTY_LOGICAL_CAMERA_DEFAULT, value); - return true; - } - - @Override - public void updateState(Preference preference) { - final boolean enabled = isLogicalCameraDefault(); - ((SwitchPreference) mPreference).setChecked(enabled); - } - - @Override - protected void onDeveloperOptionsSwitchDisabled() { - super.onDeveloperOptionsSwitchDisabled(); - SystemProperties.set(PROPERTY_LOGICAL_CAMERA_DEFAULT, Integer.toString(DISABLED)); - ((SwitchPreference) mPreference).setChecked(false); - } - - private boolean isLogicalCameraDefault() { - final String prop = SystemProperties.get(PROPERTY_LOGICAL_CAMERA_DEFAULT, - Integer.toString(DISABLED)); - return TextUtils.equals(Integer.toString(ENABLED), prop); - } - -} diff --git a/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java b/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java index 8edc45e338a..1043a8e1e1e 100644 --- a/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java +++ b/src/com/android/settings/fuelgauge/batterytip/BatteryManagerPreferenceController.java @@ -20,14 +20,15 @@ import android.app.AppOpsManager; import android.content.Context; import android.os.UserManager; import android.provider.Settings; -import androidx.annotation.VisibleForTesting; -import androidx.preference.Preference; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; import com.android.settings.fuelgauge.PowerUsageFeatureProvider; import com.android.settings.overlay.FeatureFactory; +import androidx.annotation.VisibleForTesting; +import androidx.preference.Preference; + /** * Preference controller to control the battery manager */ @@ -48,7 +49,7 @@ public class BatteryManagerPreferenceController extends BasePreferenceController @Override public int getAvailabilityStatus() { - return AVAILABLE; + return AVAILABLE_UNSEARCHABLE; } @Override diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java index c2979a24dc2..c4911fed746 100644 --- a/src/com/android/settings/gestures/GestureSettings.java +++ b/src/com/android/settings/gestures/GestureSettings.java @@ -17,21 +17,15 @@ package com.android.settings.gestures; import android.content.Context; -import android.os.UserHandle; import android.provider.SearchIndexableResource; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.search.SearchIndexable; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -40,15 +34,6 @@ public class GestureSettings extends DashboardFragment { private static final String TAG = "GestureSettings"; - private static final String KEY_ASSIST = "gesture_assist_input_summary"; - private static final String KEY_SWIPE_DOWN = "gesture_swipe_down_fingerprint_input_summary"; - private static final String KEY_DOUBLE_TAP_POWER = "gesture_double_tap_power_input_summary"; - private static final String KEY_DOUBLE_TWIST = "gesture_double_twist_input_summary"; - private static final String KEY_DOUBLE_TAP_SCREEN = "gesture_double_tap_screen_input_summary"; - private static final String KEY_PICK_UP = "gesture_pick_up_input_summary"; - private static final String KEY_PREVENT_RINGING = "gesture_prevent_ringing_summary"; - private static final String KEY_SWIPE_UP = "gesture_swipe_up_input_summary"; - private AmbientDisplayConfiguration mAmbientDisplayConfig; @Override @@ -92,19 +77,10 @@ public class GestureSettings extends DashboardFragment { } @Override - public List getNonIndexableKeys(Context context) { - List keys = super.getNonIndexableKeys(context); - // Duplicates in summary and details pages. - keys.add(KEY_ASSIST); - keys.add(KEY_SWIPE_DOWN); - keys.add(KEY_DOUBLE_TAP_POWER); - keys.add(KEY_DOUBLE_TWIST); - keys.add(KEY_SWIPE_UP); - keys.add(KEY_DOUBLE_TAP_SCREEN); - keys.add(KEY_PICK_UP); - keys.add(KEY_PREVENT_RINGING); - - return keys; + protected boolean isPageSearchEnabled(Context context) { + // All rows in this screen can lead to a different page, so suppress everything + // from this page to remove duplicates. + return false; } }; } diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java index 652e1518188..1074be03556 100644 --- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java +++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java @@ -19,7 +19,6 @@ package com.android.settings.gestures; import android.content.ContentResolver; import android.content.Context; import android.provider.Settings; -import androidx.annotation.NonNull; import com.android.internal.hardware.AmbientDisplayConfiguration; import com.android.settings.R; @@ -30,6 +29,8 @@ import com.android.settingslib.core.AbstractPreferenceController; import java.util.ArrayList; import java.util.List; +import androidx.annotation.NonNull; + public class GesturesSettingPreferenceController extends BasePreferenceController { private final AssistGestureFeatureProvider mFeatureProvider; private List mGestureControllers; @@ -51,7 +52,7 @@ public class GesturesSettingPreferenceController extends BasePreferenceControlle for (AbstractPreferenceController controller : mGestureControllers) { isAvailable = isAvailable || controller.isAvailable(); } - return isAvailable ? AVAILABLE : UNSUPPORTED_ON_DEVICE; + return isAvailable ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } /** diff --git a/src/com/android/settings/notification/WorkSoundPreferenceController.java b/src/com/android/settings/notification/WorkSoundPreferenceController.java index 108fbcaa2e8..c11fbc81138 100644 --- a/src/com/android/settings/notification/WorkSoundPreferenceController.java +++ b/src/com/android/settings/notification/WorkSoundPreferenceController.java @@ -32,11 +32,6 @@ import android.os.Bundle; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; -import androidx.preference.Preference; -import androidx.preference.Preference.OnPreferenceChangeListener; -import androidx.preference.PreferenceGroup; -import androidx.preference.PreferenceScreen; -import androidx.preference.TwoStatePreference; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; @@ -51,6 +46,14 @@ import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.events.OnPause; import com.android.settingslib.core.lifecycle.events.OnResume; +import java.util.List; + +import androidx.preference.Preference; +import androidx.preference.Preference.OnPreferenceChangeListener; +import androidx.preference.PreferenceGroup; +import androidx.preference.PreferenceScreen; +import androidx.preference.TwoStatePreference; + public class WorkSoundPreferenceController extends AbstractPreferenceController implements PreferenceControllerMixin, OnPreferenceChangeListener, LifecycleObserver, OnResume, OnPause { @@ -96,10 +99,8 @@ public class WorkSoundPreferenceController extends AbstractPreferenceController @Override public void displayPreference(PreferenceScreen screen) { + super.displayPreference(screen); mWorkPreferenceCategory = (PreferenceGroup) screen.findPreference(KEY_WORK_CATEGORY); - if (mWorkPreferenceCategory != null) { - mWorkPreferenceCategory.setVisible(isAvailable()); - } } @Override @@ -157,6 +158,18 @@ public class WorkSoundPreferenceController extends AbstractPreferenceController return true; } + @Override + public void updateNonIndexableKeys(List keys) { + if (isAvailable()) { + return; + } + keys.add(KEY_WORK_CATEGORY); + keys.add(KEY_WORK_USE_PERSONAL_SOUNDS); + keys.add(KEY_WORK_NOTIFICATION_RINGTONE); + keys.add(KEY_WORK_PHONE_RINGTONE); + keys.add(KEY_WORK_ALARM_RINGTONE); + } + // === Phone & notification ringtone === private boolean shouldShowRingtoneSettings() { diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java index 32f4b9238dd..9669863a06c 100644 --- a/src/com/android/settings/security/LockscreenDashboardFragment.java +++ b/src/com/android/settings/security/LockscreenDashboardFragment.java @@ -159,6 +159,7 @@ public class LockscreenDashboardFragment extends DashboardFragment final List niks = super.getNonIndexableKeys(context); niks.add(KEY_ADD_USER_FROM_LOCK_SCREEN); niks.add(KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE); + niks.add(KEY_LOCK_SCREEN_NOTIFICATON_WORK_PROFILE_HEADER); return niks; } }; diff --git a/tests/robotests/res/values-mcc999/config.xml b/tests/robotests/res/values-mcc999/config.xml index c500bc69e9a..72f5134025e 100644 --- a/tests/robotests/res/values-mcc999/config.xml +++ b/tests/robotests/res/values-mcc999/config.xml @@ -62,7 +62,6 @@ false false true - false diff --git a/tests/robotests/res/values/config.xml b/tests/robotests/res/values/config.xml index 8ea12219315..359df6cc0a5 100644 --- a/tests/robotests/res/values/config.xml +++ b/tests/robotests/res/values/config.xml @@ -22,5 +22,4 @@ true true true - true - + \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/development/LogicalCameraDefaultPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/LogicalCameraDefaultPreferenceControllerTest.java deleted file mode 100644 index 2d052512097..00000000000 --- a/tests/robotests/src/com/android/settings/development/LogicalCameraDefaultPreferenceControllerTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * 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.development; - -import static com.android.settings.development.LogicalCameraDefaultPreferenceController.ENG_BUILD; -import static com.android.settings.development.LogicalCameraDefaultPreferenceController.USERDEBUG_BUILD; -import static com.android.settings.development.LogicalCameraDefaultPreferenceController.USER_BUILD; -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.os.SystemProperties; -import androidx.preference.SwitchPreference; -import androidx.preference.PreferenceScreen; - -import com.android.settings.testutils.SettingsRobolectricTestRunner; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.robolectric.RuntimeEnvironment; -import org.robolectric.annotation.Config; - -@RunWith(SettingsRobolectricTestRunner.class) -public class LogicalCameraDefaultPreferenceControllerTest { - - @Mock - private PreferenceScreen mScreen; - @Mock - private SwitchPreference mPreference; - - private LogicalCameraDefaultPreferenceController mController; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mController = new LogicalCameraDefaultPreferenceController(RuntimeEnvironment.application); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - when(mPreference.getKey()).thenReturn(mController.getPreferenceKey()); - mController.displayPreference(mScreen); - } - - @Test - @Config(qualifiers = "mcc999") - public void isAvailable_withConfigNoShow_shouldReturnFalse() { - assertThat(mController.isAvailable()).isFalse(); - } - - @Test - public void isAvailable_withUserdebugBuild_shouldReturnTrue() { - SystemProperties.set(LogicalCameraDefaultPreferenceController.BUILD_TYPE, USERDEBUG_BUILD); - - assertThat(mController.isAvailable()).isTrue(); - } - - @Test - public void isAvailable_withEngBuild_shouldReturnTrue() { - SystemProperties.set(LogicalCameraDefaultPreferenceController.BUILD_TYPE, ENG_BUILD); - - assertThat(mController.isAvailable()).isTrue(); - } - - @Test - public void isAvailable_withUserBuild_shouldReturnTrue() { - SystemProperties.set(LogicalCameraDefaultPreferenceController.BUILD_TYPE, USER_BUILD); - - assertThat(mController.isAvailable()).isTrue(); - } - - @Test - public void updateState_logicalCameraDefaultEnabled_shouldCheckedPreference() { - SystemProperties.set(LogicalCameraDefaultPreferenceController.PROPERTY_LOGICAL_CAMERA_DEFAULT, - Integer.toString(LogicalCameraDefaultPreferenceController.ENABLED)); - SystemProperties.set(LogicalCameraDefaultPreferenceController.BUILD_TYPE, USERDEBUG_BUILD); - - mController.updateState(mScreen); - - verify(mPreference).setChecked(true); - } - - @Test - public void updateState_logicalCameraDefaultEnabled_shouldUncheckedPreference() { - SystemProperties.set(LogicalCameraDefaultPreferenceController.PROPERTY_LOGICAL_CAMERA_DEFAULT, - Integer.toString(LogicalCameraDefaultPreferenceController.DISABLED)); - SystemProperties.set( - LogicalCameraDefaultPreferenceController.BUILD_TYPE, USERDEBUG_BUILD); - - mController.updateState(mScreen); - - verify(mPreference).setChecked(false); - } - - @Test - public void onPreferenceChange_preferenceChecked_shouldEnableLogicalCameraDefault() { - mController.onPreferenceChange(mPreference, true); - - assertThat(Integer.toString(LogicalCameraDefaultPreferenceController.ENABLED)).isEqualTo( - SystemProperties.get( - LogicalCameraDefaultPreferenceController.PROPERTY_LOGICAL_CAMERA_DEFAULT, - Integer.toString(LogicalCameraDefaultPreferenceController.ENABLED))); - } - - @Test - public void onPreferenceChange_preferenceUnchecked_shouldDisableLogicalCameraDefault() { - mController.onPreferenceChange(mPreference, false); - - assertThat(Integer.toString(LogicalCameraDefaultPreferenceController.DISABLED)).isEqualTo( - SystemProperties.get( - LogicalCameraDefaultPreferenceController.PROPERTY_LOGICAL_CAMERA_DEFAULT, - Integer.toString(LogicalCameraDefaultPreferenceController.ENABLED))); - } - - @Test - public void onDeveloperOptionsSwitchDisabled_preferenceShouldBeEnabled() { - mController.onDeveloperOptionsSwitchDisabled(); - - verify(mPreference).setEnabled(false); - verify(mPreference).setChecked(false); - assertThat(Integer.toString(LogicalCameraDefaultPreferenceController.DISABLED)).isEqualTo( - SystemProperties.get( - LogicalCameraDefaultPreferenceController.PROPERTY_LOGICAL_CAMERA_DEFAULT, - Integer.toString(LogicalCameraDefaultPreferenceController.ENABLED))); - } -}