diff --git a/res/values/strings.xml b/res/values/strings.xml index 1fc8e41f618..7e1eebae574 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -3391,16 +3391,6 @@ My Location Location for work profile - - Mode - - High accuracy - - Battery saving - - Device only - - Location off App-level permissions @@ -3414,14 +3404,6 @@ High battery use Low battery use - - Location mode - - Use GPS, Wi\u2011Fi, Bluetooth, or mobile networks to determine location - - Use Wi\u2011Fi, Bluetooth, or mobile networks to determine location - - Use GPS and device sensors to determine location Scanning @@ -6709,7 +6691,6 @@ dont don\u2019t disturb, interrupt, interruption, break RAM nearby, location, history, reporting - accuracy account restriction, restrict, restricted text correction, correct, sound, vibrate, auto, language, gesture, suggest, suggestion, theme, offensive, word, type, emoji, international @@ -8346,8 +8327,8 @@ %1$s is default - - ON / %1$s + + ON OFF diff --git a/res/xml/location_mode.xml b/res/xml/location_mode.xml deleted file mode 100644 index ac8e584750b..00000000000 --- a/res/xml/location_mode.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml index 0414f20e2ff..267fce98114 100644 --- a/res/xml/location_settings.xml +++ b/res/xml/location_settings.xml @@ -50,10 +50,4 @@ - - diff --git a/src/com/android/settings/location/LocationMode.java b/src/com/android/settings/location/LocationMode.java deleted file mode 100644 index 5931f9e364a..00000000000 --- a/src/com/android/settings/location/LocationMode.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2013 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.location; - -import android.content.Context; -import android.provider.SearchIndexableResource; - -import com.android.internal.logging.nano.MetricsProto.MetricsEvent; -import com.android.settings.R; -import com.android.settings.dashboard.DashboardFragment; -import com.android.settings.search.BaseSearchIndexProvider; -import com.android.settings.search.Indexable; -import com.android.settingslib.core.AbstractPreferenceController; -import com.android.settingslib.core.lifecycle.Lifecycle; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * A page with 3 radio buttons to choose the location mode. - * - * There are 3 location modes when location access is enabled: - * - * High accuracy: use both GPS and network location. - * - * Battery saving: use network location only to reduce the power consumption. - * - * Sensors only: use GPS location only. - */ -public class LocationMode extends DashboardFragment { - - private static final String TAG = "LocationMode"; - - @Override - public int getMetricsCategory() { - return MetricsEvent.LOCATION_MODE; - } - - @Override - protected int getPreferenceScreenResId() { - return R.xml.location_mode; - } - - @Override - protected String getLogTag() { - return TAG; - } - - @Override - protected List getPreferenceControllers(Context context) { - return buildPreferenceControllers(context, getLifecycle()); - } - - @Override - public int getHelpResource() { - return R.string.help_url_location_access; - } - - private static List buildPreferenceControllers( - Context context, Lifecycle lifecycle) { - final List controllers = new ArrayList<>(); - controllers.add(new LocationModeHighAccuracyPreferenceController(context, lifecycle)); - controllers.add( - new LocationModeBatterySavingPreferenceController(context, lifecycle)); - controllers.add(new LocationModeSensorsOnlyPreferenceController(context, lifecycle)); - return controllers; - } - - /** - * For Search. - */ - public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider() { - @Override - public List getXmlResourcesToIndex( - Context context, boolean enabled) { - final SearchIndexableResource sir = new SearchIndexableResource(context); - sir.xmlResId = R.xml.location_mode; - return Arrays.asList(sir); - } - - @Override - protected boolean isPageSearchEnabled(Context context) { - return context.getResources().getBoolean(R.bool.config_location_mode_available); - } - - @Override - public List getPreferenceControllers(Context - context) { - return buildPreferenceControllers(context, null /* lifecycle */); - } - }; -} diff --git a/src/com/android/settings/location/LocationModeBatterySavingPreferenceController.java b/src/com/android/settings/location/LocationModeBatterySavingPreferenceController.java deleted file mode 100644 index 70c7013fbbd..00000000000 --- a/src/com/android/settings/location/LocationModeBatterySavingPreferenceController.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import android.content.Context; -import android.provider.Settings; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -public class LocationModeBatterySavingPreferenceController - extends LocationModeRadioButtonPreferenceController { - - private static final String KEY_BATTERY_SAVING = "battery_saving"; - - public LocationModeBatterySavingPreferenceController(Context context, - Lifecycle lifecycle) { - super(context, lifecycle); - } - - @Override - public String getPreferenceKey() { - return KEY_BATTERY_SAVING; - } - - @Override - protected int getLocationMode() { - return Settings.Secure.LOCATION_MODE_BATTERY_SAVING; - } -} diff --git a/src/com/android/settings/location/LocationModeHighAccuracyPreferenceController.java b/src/com/android/settings/location/LocationModeHighAccuracyPreferenceController.java deleted file mode 100644 index bd2d07e9452..00000000000 --- a/src/com/android/settings/location/LocationModeHighAccuracyPreferenceController.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import android.content.Context; -import android.provider.Settings; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -public class LocationModeHighAccuracyPreferenceController - extends LocationModeRadioButtonPreferenceController { - - private static final String KEY_HIGH_ACCURACY = "high_accuracy"; - - public LocationModeHighAccuracyPreferenceController(Context context, - Lifecycle lifecycle) { - super(context, lifecycle); - } - - @Override - public String getPreferenceKey() { - return KEY_HIGH_ACCURACY; - } - - @Override - protected int getLocationMode() { - return Settings.Secure.LOCATION_MODE_HIGH_ACCURACY; - } -} diff --git a/src/com/android/settings/location/LocationModePreferenceController.java b/src/com/android/settings/location/LocationModePreferenceController.java deleted file mode 100644 index 265a9dfe797..00000000000 --- a/src/com/android/settings/location/LocationModePreferenceController.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import android.content.Context; -import android.support.v7.preference.Preference; -import android.support.v7.preference.PreferenceScreen; - -import com.android.settings.R; -import com.android.settings.SettingsActivity; -import com.android.settingslib.core.lifecycle.Lifecycle; - -public class LocationModePreferenceController extends LocationBasePreferenceController { - - /** Key for preference screen "Mode" */ - private static final String KEY_LOCATION_MODE = "location_mode"; - - private final LocationSettings mParentFragment; - private Preference mPreference; - - public LocationModePreferenceController(Context context, LocationSettings parent, - Lifecycle lifecycle) { - super(context, lifecycle); - mParentFragment = parent; - } - - @Override - public String getPreferenceKey() { - return KEY_LOCATION_MODE; - } - - @Override - public boolean isAvailable() { - return mContext.getResources().getBoolean(R.bool.config_location_mode_available); - } - - @Override - public void displayPreference(PreferenceScreen screen) { - super.displayPreference(screen); - mPreference = screen.findPreference(KEY_LOCATION_MODE); - } - - @Override - public boolean handlePreferenceTreeClick(Preference preference) { - if (KEY_LOCATION_MODE.equals(preference.getKey())) { - final SettingsActivity activity = (SettingsActivity) mParentFragment.getActivity(); - activity.startPreferencePanel(mParentFragment, LocationMode.class.getName(), null, - R.string.location_mode_screen_title, null, mParentFragment, 0); - return true; - } - return false; - } - - @Override - public void onLocationModeChanged(int mode, boolean restricted) { - final int modeDescription = LocationPreferenceController.getLocationString(mode); - if (modeDescription != 0) { - mPreference.setSummary(modeDescription); - } - // Restricted user can't change the location mode, so disable the master switch. But in some - // corner cases, the location might still be enabled. In such case the master switch should - // be disabled but checked. - mPreference.setEnabled(mLocationEnabler.isEnabled(mode)); - } -} diff --git a/src/com/android/settings/location/LocationModeRadioButtonPreferenceController.java b/src/com/android/settings/location/LocationModeRadioButtonPreferenceController.java deleted file mode 100644 index bdf7c8f1ba8..00000000000 --- a/src/com/android/settings/location/LocationModeRadioButtonPreferenceController.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import android.content.Context; -import android.support.v7.preference.PreferenceScreen; - -import com.android.settings.widget.RadioButtonPreference; -import com.android.settingslib.core.lifecycle.Lifecycle; - -public abstract class LocationModeRadioButtonPreferenceController - extends LocationBasePreferenceController - implements RadioButtonPreference.OnClickListener { - - protected RadioButtonPreference mPreference; - - public LocationModeRadioButtonPreferenceController(Context context, Lifecycle lifecycle) { - super(context, lifecycle); - } - - @Override - public void displayPreference(PreferenceScreen screen) { - super.displayPreference(screen); - mPreference = (RadioButtonPreference) screen.findPreference(getPreferenceKey()); - mPreference.setOnClickListener(this); - } - - @Override - public void onRadioButtonClicked(RadioButtonPreference emiter) { - mLocationEnabler.setLocationMode(getLocationMode()); - } - - @Override - public void onLocationModeChanged(int mode, boolean restricted) { - mPreference.setChecked(mode == getLocationMode()); - mPreference.setEnabled(mLocationEnabler.isEnabled(mode)); - } - - /** Gets the location mode that this controller monitors. */ - protected abstract int getLocationMode(); - -} diff --git a/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceController.java b/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceController.java deleted file mode 100644 index b79dbf24869..00000000000 --- a/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceController.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import android.content.Context; -import android.provider.Settings; - -import com.android.settingslib.core.lifecycle.Lifecycle; - -public class LocationModeSensorsOnlyPreferenceController - extends LocationModeRadioButtonPreferenceController { - - private static final String KEY_SENSORS_ONLY = "sensors_only"; - - public LocationModeSensorsOnlyPreferenceController(Context context, - Lifecycle lifecycle) { - super(context, lifecycle); - } - - @Override - public String getPreferenceKey() { - return KEY_SENSORS_ONLY; - } - - @Override - protected int getLocationMode() { - return Settings.Secure.LOCATION_MODE_SENSORS_ONLY; - } -} diff --git a/src/com/android/settings/location/LocationPreferenceController.java b/src/com/android/settings/location/LocationPreferenceController.java index 9b68848c129..5760ab702fb 100644 --- a/src/com/android/settings/location/LocationPreferenceController.java +++ b/src/com/android/settings/location/LocationPreferenceController.java @@ -105,26 +105,11 @@ public class LocationPreferenceController extends AbstractPreferenceController int mode = Secure.getInt(context.getContentResolver(), Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF); if (mode != Secure.LOCATION_MODE_OFF) { - return context.getString(R.string.location_on_summary, - context.getString(getLocationString(mode))); + return context.getString(R.string.location_on_summary); } return context.getString(R.string.location_off_summary); } - public static int getLocationString(int mode) { - switch (mode) { - case Secure.LOCATION_MODE_OFF: - return R.string.location_mode_location_off_title; - case Secure.LOCATION_MODE_SENSORS_ONLY: - return R.string.location_mode_sensors_only_title; - case Secure.LOCATION_MODE_BATTERY_SAVING: - return R.string.location_mode_battery_saving_title; - case Secure.LOCATION_MODE_HIGH_ACCURACY: - return R.string.location_mode_high_accuracy_title; - } - return 0; - } - @Override public ResultPayload getResultPayload() { final Intent intent = DatabaseIndexingUtils.buildSearchResultPageIntent(mContext, diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java index 85c049db1d5..3cc5b847f15 100644 --- a/src/com/android/settings/location/LocationSettings.java +++ b/src/com/android/settings/location/LocationSettings.java @@ -127,7 +127,6 @@ public class LocationSettings extends DashboardFragment { private static List buildPreferenceControllers( Context context, LocationSettings fragment, Lifecycle lifecycle) { final List controllers = new ArrayList<>(); - controllers.add(new LocationModePreferenceController(context, fragment, lifecycle)); controllers.add(new AppLocationPermissionPreferenceController(context)); controllers.add(new LocationForWorkPreferenceController(context, lifecycle)); controllers.add( diff --git a/src/com/android/settings/search/SearchIndexableResourcesImpl.java b/src/com/android/settings/search/SearchIndexableResourcesImpl.java index 034cbd0e06b..75f64d32a10 100644 --- a/src/com/android/settings/search/SearchIndexableResourcesImpl.java +++ b/src/com/android/settings/search/SearchIndexableResourcesImpl.java @@ -62,7 +62,6 @@ import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment; import com.android.settings.inputmethod.PhysicalKeyboardFragment; import com.android.settings.inputmethod.VirtualKeyboardFragment; import com.android.settings.language.LanguageAndInputSettings; -import com.android.settings.location.LocationMode; import com.android.settings.location.LocationSettings; import com.android.settings.location.ScanningSettings; import com.android.settings.network.NetworkDashboardFragment; @@ -132,7 +131,6 @@ public class SearchIndexableResourcesImpl implements SearchIndexableResources { addIndex(GestureSettings.class); addIndex(LanguageAndInputSettings.class); addIndex(LocationSettings.class); - addIndex(LocationMode.class); addIndex(ScanningSettings.class); addIndex(SecuritySettingsV2.class); addIndex(ScreenLockSettings.class); diff --git a/tests/robotests/src/com/android/settings/location/LocationModeBatterySavingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationModeBatterySavingPreferenceControllerTest.java deleted file mode 100644 index 41e9f1e7b2d..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationModeBatterySavingPreferenceControllerTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.mock; - -import android.arch.lifecycle.LifecycleOwner; -import android.content.Context; -import android.provider.Settings; - -import com.android.settings.TestConfig; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.annotation.Config; - -@RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class LocationModeBatterySavingPreferenceControllerTest { - - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setUp() { - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - } - - @Test - public void getLocationMode_shouldReturnModeBatterySaving() { - final LocationModeBatterySavingPreferenceController controller = - new LocationModeBatterySavingPreferenceController(mock(Context.class), mLifecycle); - - assertThat(controller.getLocationMode()) - .isEqualTo(Settings.Secure.LOCATION_MODE_BATTERY_SAVING); - } - -} diff --git a/tests/robotests/src/com/android/settings/location/LocationModeHighAccuracyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationModeHighAccuracyPreferenceControllerTest.java deleted file mode 100644 index 9c8bac63254..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationModeHighAccuracyPreferenceControllerTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.mock; - -import android.arch.lifecycle.LifecycleOwner; -import android.content.Context; -import android.provider.Settings; - -import com.android.settings.TestConfig; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.annotation.Config; - -@RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class LocationModeHighAccuracyPreferenceControllerTest { - - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setUp() { - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - } - - @Test - public void getLocationMode_shouldReturnModeHighAccuracy() { - final LocationModeHighAccuracyPreferenceController controller = - new LocationModeHighAccuracyPreferenceController(mock(Context.class), mLifecycle); - - assertThat(controller.getLocationMode()) - .isEqualTo(Settings.Secure.LOCATION_MODE_HIGH_ACCURACY); - } - -} diff --git a/tests/robotests/src/com/android/settings/location/LocationModePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationModePreferenceControllerTest.java deleted file mode 100644 index a28cb205be5..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationModePreferenceControllerTest.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import static junit.framework.Assert.assertFalse; -import static junit.framework.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyInt; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.spy; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.arch.lifecycle.LifecycleOwner; -import android.content.Context; -import android.os.UserManager; -import android.provider.Settings; -import android.support.v7.preference.Preference; -import android.support.v7.preference.PreferenceScreen; - -import com.android.settings.R; -import com.android.settings.SettingsActivity; -import com.android.settings.TestConfig; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settingslib.core.lifecycle.Lifecycle; - -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) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class LocationModePreferenceControllerTest { - - @Mock - private LocationSettings mFragment; - @Mock - private SettingsActivity mActivity; - @Mock - private Preference mPreference; - @Mock - private PreferenceScreen mScreen; - @Mock - private UserManager mUserManager; - - private Context mContext; - private LocationModePreferenceController mController; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = spy(RuntimeEnvironment.application); - when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager); - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = new LocationModePreferenceController(mContext, mFragment, mLifecycle); - when(mFragment.getActivity()).thenReturn(mActivity); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - } - - @Test - @Config(qualifiers = "mcc999") - public void locationModePreference_ifXmlSetToFalse_shouldNotBeAvailable() { - assertFalse(mController.isAvailable()); - } - - @Test - public void locationModePreference_ifXmlSetToTrue_shouldBeAvailable() { - assertTrue(mController.isAvailable()); - } - - @Test - public void onLocationModeChanged_locationOff_shouldDisablePreference() { - when(mUserManager.hasUserRestriction(any())).thenReturn(false); - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_OFF, false); - - verify(mPreference).setEnabled(false); - } - - @Test - public void onLocationModeChanged_restricted_shouldDisablePreference() { - when(mUserManager.hasUserRestriction(any())).thenReturn(true); - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, false); - - verify(mPreference).setEnabled(false); - } - - @Test - public void onLocationModeChanged_locationOnNotRestricted_shouldEnablePreference() { - when(mUserManager.hasUserRestriction(any())).thenReturn(false); - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, false); - - verify(mPreference).setEnabled(true); - } - - @Test - public void onLocationModeChanged_shouldUpdateSummary() { - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, false); - - verify(mPreference).setSummary(anyInt()); - } - - @Test - public void handlePreferenceTreeClick_shouldStartLocationModeFragment() { - final Preference preference = new Preference(mContext); - preference.setKey(mController.getPreferenceKey()); - - mController.handlePreferenceTreeClick(preference); - - verify(mActivity).startPreferencePanel(any(), eq(LocationMode.class.getName()), any(), - eq(R.string.location_mode_screen_title), any(), any(), anyInt()); - } - -} diff --git a/tests/robotests/src/com/android/settings/location/LocationModeRadioButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationModeRadioButtonPreferenceControllerTest.java deleted file mode 100644 index 27667889d97..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationModeRadioButtonPreferenceControllerTest.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.arch.lifecycle.LifecycleOwner; -import android.content.Context; -import android.provider.Settings; -import android.support.v7.preference.PreferenceScreen; -import com.android.settings.TestConfig; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.testutils.shadow.ShadowSecureSettings; -import com.android.settings.widget.RadioButtonPreference; -import com.android.settingslib.core.lifecycle.Lifecycle; -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) -@Config( - manifest = TestConfig.MANIFEST_PATH, - sdk = TestConfig.SDK_VERSION, - shadows = {ShadowSecureSettings.class}) -public class LocationModeRadioButtonPreferenceControllerTest { - - @Mock - private RadioButtonPreference mPreference; - @Mock - private PreferenceScreen mScreen; - - private Context mContext; - private LocationModeRadioButtonPreferenceController mController; - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = new LocationModeRadioButtonPreferenceControllerTestable(mContext, mLifecycle); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - } - - @Test - public void displayPreference_shouldAddClickListener() { - mController.displayPreference(mScreen); - - verify(mPreference).setOnClickListener(mController); - } - - @Test - public void onRadioButtonClicked_shouldSetLocationModeToOwnMode() { - mController.displayPreference(mScreen); - Settings.Secure.putInt(mContext.getContentResolver(), - Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF); - - mController.onRadioButtonClicked(mPreference); - - assertThat(Settings.Secure.getInt(mContext.getContentResolver(), - Settings.Secure.LOCATION_MODE, Settings.Secure.LOCATION_MODE_OFF)) - .isEqualTo(mController.getLocationMode()); - } - - @Test - public void onLocationModeChanged_otherModeSelected_shouldUncheckPreference() { - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, false); - - verify(mPreference).setChecked(false); - } - - @Test - public void onLocationModeChanged_ownModeSelected_shouldCheckPreference() { - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(mController.getLocationMode(), false); - - verify(mPreference).setChecked(true); - } - - @Test - public void onLocationModeChanged_locationOff_shouldDisablePreference() { - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_OFF, false); - - verify(mPreference).setEnabled(false); - } - - @Test - public void onLocationModeChanged_locationOn_shouldDisablePreference() { - mController.displayPreference(mScreen); - - mController.onLocationModeChanged(Settings.Secure.LOCATION_MODE_BATTERY_SAVING, false); - - verify(mPreference).setEnabled(true); - } - - private class LocationModeRadioButtonPreferenceControllerTestable - extends LocationModeRadioButtonPreferenceController { - - public LocationModeRadioButtonPreferenceControllerTestable(Context context, - Lifecycle lifecycle) { - super(context, lifecycle); - } - - @Override - public String getPreferenceKey() { - return "test"; - } - - @Override - protected int getLocationMode() { - return Settings.Secure.LOCATION_MODE_HIGH_ACCURACY; - } - } -} diff --git a/tests/robotests/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceControllerTest.java deleted file mode 100644 index 4ed75d28c4d..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceControllerTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.Mockito.mock; - -import android.arch.lifecycle.LifecycleOwner; -import android.content.Context; -import android.provider.Settings; - -import com.android.settings.TestConfig; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.robolectric.annotation.Config; - -@RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class LocationModeSensorsOnlyPreferenceControllerTest { - - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - - @Before - public void setUp() { - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - } - - @Test - public void getLocationMode_shouldReturnModeSensorsOnly() { - final LocationModeSensorsOnlyPreferenceController controller = - new LocationModeSensorsOnlyPreferenceController(mock(Context.class), mLifecycle); - - assertThat(controller.getLocationMode()) - .isEqualTo(Settings.Secure.LOCATION_MODE_SENSORS_ONLY); - } - -} diff --git a/tests/robotests/src/com/android/settings/location/LocationModeTest.java b/tests/robotests/src/com/android/settings/location/LocationModeTest.java deleted file mode 100644 index 0e7a9d72ed0..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationModeTest.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 2017 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.location; - -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Mockito.spy; - -import android.content.Context; -import android.provider.SearchIndexableResource; - -import com.android.settings.TestConfig; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settings.testutils.XmlTestUtils; - -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; - -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -@RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) -public class LocationModeTest { - - private Context mContext; - private LocationMode mFragment; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mContext = spy(RuntimeEnvironment.application); - mFragment = new LocationMode(); - } - - @Test - public void testSearchIndexProvider_shouldIndexResource() { - final List indexRes = - mFragment.SEARCH_INDEX_DATA_PROVIDER.getXmlResourcesToIndex(mContext, - true /* enabled */); - - assertThat(indexRes).isNotNull(); - assertThat(indexRes.get(0).xmlResId).isEqualTo(mFragment.getPreferenceScreenResId()); - } - - @Test - @Config(qualifiers = "mcc999") - public void testSearchIndexProvider_ifPageDisabled_shouldNotIndexResource() { - final List niks = LocationMode.SEARCH_INDEX_DATA_PROVIDER - .getNonIndexableKeys(mContext); - final int xmlId = mFragment.getPreferenceScreenResId(); - - final List keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId); - assertThat(niks).containsAllIn(keys); - } -} diff --git a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java index 2c92b445c9a..e4aa0754807 100644 --- a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java @@ -109,45 +109,30 @@ public class LocationPreferenceControllerTest { } @Test - public void getLocationSummary_sensorsOnly_shouldSetSummarySensorsOnly() { + public void getLocationSummary_sensorsOnly_shouldSetSummaryOn() { Secure.putInt(mContext.getContentResolver(), Secure.LOCATION_MODE, Secure.LOCATION_MODE_SENSORS_ONLY); assertThat(mController.getLocationSummary(mContext)).isEqualTo( - mContext.getString(R.string.location_on_summary, - mContext.getString(R.string.location_mode_sensors_only_title))); + mContext.getString(R.string.location_on_summary)); } @Test - public void getLocationSummary_highAccuracy_shouldSetSummarHighAccuracy() { + public void getLocationSummary_highAccuracy_shouldSetSummaryOn() { Secure.putInt(mContext.getContentResolver(), Secure.LOCATION_MODE, Secure.LOCATION_MODE_HIGH_ACCURACY); assertThat(mController.getLocationSummary(mContext)).isEqualTo( - mContext.getString(R.string.location_on_summary, - mContext.getString(R.string.location_mode_high_accuracy_title))); + mContext.getString(R.string.location_on_summary)); } @Test - public void getLocationSummary_batterySaving_shouldSetSummaryBatterySaving() { + public void getLocationSummary_batterySaving_shouldSetSummaryOn() { Secure.putInt(mContext.getContentResolver(), Secure.LOCATION_MODE, Secure.LOCATION_MODE_BATTERY_SAVING); assertThat(mController.getLocationSummary(mContext)).isEqualTo( - mContext.getString(R.string.location_on_summary, - mContext.getString(R.string.location_mode_battery_saving_title))); - } - - @Test - public void getLocationString_shouldCorrectString() { - assertThat(mController.getLocationString(Secure.LOCATION_MODE_OFF)).isEqualTo( - R.string.location_mode_location_off_title); - assertThat(mController.getLocationString(Secure.LOCATION_MODE_SENSORS_ONLY)).isEqualTo( - R.string.location_mode_sensors_only_title); - assertThat(mController.getLocationString(Secure.LOCATION_MODE_BATTERY_SAVING)).isEqualTo( - R.string.location_mode_battery_saving_title); - assertThat(mController.getLocationString(Secure.LOCATION_MODE_HIGH_ACCURACY)).isEqualTo( - R.string.location_mode_high_accuracy_title); + mContext.getString(R.string.location_on_summary)); } @Test