OSDN Git Service

Remove location mode menu from location settings
authorMaggie <yiranwang@google.com>
Wed, 24 Jan 2018 20:05:45 +0000 (12:05 -0800)
committerMaggie <yiranwang@google.com>
Wed, 24 Jan 2018 23:51:34 +0000 (15:51 -0800)
Location modes were introduced in KitKat. It has made location settings over complicated. In P we are removing location modes to provide simple, meaningful and transparent controls for users.

Bug: 63818349
Bug: 70350519
Test: Robo
Test: Manual
Change-Id: Ic8a168b8eeb3cd2c8b1536c378c92a5f377d3bba

19 files changed:
res/values/strings.xml
res/xml/location_mode.xml [deleted file]
res/xml/location_settings.xml
src/com/android/settings/location/LocationMode.java [deleted file]
src/com/android/settings/location/LocationModeBatterySavingPreferenceController.java [deleted file]
src/com/android/settings/location/LocationModeHighAccuracyPreferenceController.java [deleted file]
src/com/android/settings/location/LocationModePreferenceController.java [deleted file]
src/com/android/settings/location/LocationModeRadioButtonPreferenceController.java [deleted file]
src/com/android/settings/location/LocationModeSensorsOnlyPreferenceController.java [deleted file]
src/com/android/settings/location/LocationPreferenceController.java
src/com/android/settings/location/LocationSettings.java
src/com/android/settings/search/SearchIndexableResourcesImpl.java
tests/robotests/src/com/android/settings/location/LocationModeBatterySavingPreferenceControllerTest.java [deleted file]
tests/robotests/src/com/android/settings/location/LocationModeHighAccuracyPreferenceControllerTest.java [deleted file]
tests/robotests/src/com/android/settings/location/LocationModePreferenceControllerTest.java [deleted file]
tests/robotests/src/com/android/settings/location/LocationModeRadioButtonPreferenceControllerTest.java [deleted file]
tests/robotests/src/com/android/settings/location/LocationModeSensorsOnlyPreferenceControllerTest.java [deleted file]
tests/robotests/src/com/android/settings/location/LocationModeTest.java [deleted file]
tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java

index 1fc8e41..7e1eeba 100644 (file)
     <string name="location_title">My Location</string>
     <!-- [CHAR LIMIT=30] Title for managed profile location switch  -->
     <string name="managed_profile_location_switch_title">Location for work profile</string>
-    <!-- [CHAR LIMIT=30] Location settings screen, setting preference screen box label for location mode -->
-    <string name="location_mode_title">Mode</string>
-    <!-- [CHAR LIMIT=30] Location settings screen, high accuracy location mode -->
-    <string name="location_mode_high_accuracy_title">High accuracy</string>
-    <!-- [CHAR LIMIT=30] Location settings screen, battery saving location mode -->
-    <string name="location_mode_battery_saving_title">Battery saving</string>
-    <!-- [CHAR LIMIT=30] Location settings screen, device only location mode -->
-    <string name="location_mode_sensors_only_title">Device only</string>
-    <!-- [CHAR LIMIT=30] Location settings screen, location off mode -->
-    <string name="location_mode_location_off_title">Location off</string>
     <!-- [CHAR LIMIT=30] Location settings screen. It's a link that directs the user to a page that
       shows the location permission setting for each installed app -->
     <string name="location_app_level_permissions">App-level permissions</string>
     <string name="location_high_battery_use">High battery use</string>
     <!-- [CHAR LIMIT=30] Location settings screen, recent location requests low battery use-->
     <string name="location_low_battery_use">Low battery use</string>
-    <!-- [CHAR LIMIT=30] Location mode screen, screen title -->
-    <string name="location_mode_screen_title">Location mode</string>
-    <!-- [CHAR LIMIT=130] Location mode screen, description for high accuracy mode -->
-    <string name="location_mode_high_accuracy_description">Use GPS, Wi\u2011Fi, Bluetooth, or mobile networks to determine location </string>
-    <!-- [CHAR LIMIT=130] Location mode screen, description for battery saving mode -->
-    <string name="location_mode_battery_saving_description">Use Wi\u2011Fi, Bluetooth, or mobile networks to determine location</string>
-    <!-- [CHAR LIMIT=130] Location mode screen, description for sensors only mode -->
-    <string name="location_mode_sensors_only_description">Use GPS and device sensors to determine location</string>
     <!-- [CHAR LIMIT=30] Wireless background scanning settings screen, screen title -->
     <string name="location_scanning_screen_title">Scanning</string>
     <!-- [CHAR LIMIT=130] Preference title for Wi-Fi always scanning -->
     <string name="keywords_sounds_and_notifications_interruptions">dont don\u2019t disturb, interrupt, interruption, break</string>
     <string name="keywords_app">RAM</string>
     <string name="keywords_location">nearby, location, history, reporting</string>
-    <string name="keywords_location_mode">accuracy</string>
     <string name="keywords_accounts">account</string>
     <string name="keywords_users">restriction, restrict, restricted</string>
     <string name="keywords_keyboard_and_ime">text correction, correct, sound, vibrate, auto, language, gesture, suggest, suggestion, theme, offensive, word, type, emoji, international</string>
     <!-- Summary of payment screen [CHAR LIMIT=NONE] -->
     <string name="payment_summary"><xliff:g id="app_name" example="Payment App">%1$s</xliff:g> is default</string>
 
-    <!-- Summary of location screen [CHAR LIMIT=NONE] -->
-    <string name="location_on_summary">ON / <xliff:g id="location_mode" example="High accuracy">%1$s</xliff:g></string>
+    <!-- Summary of location on screen [CHAR LIMIT=NONE] -->
+    <string name="location_on_summary">ON</string>
 
     <!-- Location off [CHAR LIMIT=NONE] -->
     <string name="location_off_summary">OFF</string>
diff --git a/res/xml/location_mode.xml b/res/xml/location_mode.xml
deleted file mode 100644 (file)
index ac8e584..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2011 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.
--->
-
-<PreferenceScreen
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:key="location_mode_settings"
-    android:title="@string/location_mode_screen_title">
-
-    <com.android.settings.widget.RadioButtonPreference
-        android:key="high_accuracy"
-        android:title="@string/location_mode_high_accuracy_title"
-        android:summary="@string/location_mode_high_accuracy_description" />
-    <com.android.settings.widget.RadioButtonPreference
-        android:key="battery_saving"
-        android:title="@string/location_mode_battery_saving_title"
-        android:summary="@string/location_mode_battery_saving_description" />
-    <com.android.settings.widget.RadioButtonPreference
-        android:key="sensors_only"
-        android:title="@string/location_mode_sensors_only_title"
-        android:summary="@string/location_mode_sensors_only_description" />
-
-</PreferenceScreen>
index 0414f20..267fce9 100644 (file)
         <PreferenceCategory
             android:key="location_services"
             android:title="@string/location_category_location_services" />
-
-        <Preference
-            android:key="location_mode"
-            android:title="@string/location_mode_title"
-            settings:keywords="@string/keywords_location_mode"
-            android:summary="@string/summary_placeholder" />
 </PreferenceScreen>
diff --git a/src/com/android/settings/location/LocationMode.java b/src/com/android/settings/location/LocationMode.java
deleted file mode 100644 (file)
index 5931f9e..0000000
+++ /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<AbstractPreferenceController> getPreferenceControllers(Context context) {
-        return buildPreferenceControllers(context, getLifecycle());
-    }
-
-    @Override
-    public int getHelpResource() {
-        return R.string.help_url_location_access;
-    }
-
-    private static List<AbstractPreferenceController> buildPreferenceControllers(
-            Context context, Lifecycle lifecycle) {
-        final List<AbstractPreferenceController> 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<SearchIndexableResource> 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<AbstractPreferenceController> 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 (file)
index 70c7013..0000000
+++ /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 (file)
index bd2d07e..0000000
+++ /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 (file)
index 265a9df..0000000
+++ /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 (file)
index bdf7c8f..0000000
+++ /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 (file)
index b79dbf2..0000000
+++ /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;
-    }
-}
index 9b68848..5760ab7 100644 (file)
@@ -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,
index 85c049d..3cc5b84 100644 (file)
@@ -127,7 +127,6 @@ public class LocationSettings extends DashboardFragment {
     private static List<AbstractPreferenceController> buildPreferenceControllers(
             Context context, LocationSettings fragment, Lifecycle lifecycle) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        controllers.add(new LocationModePreferenceController(context, fragment, lifecycle));
         controllers.add(new AppLocationPermissionPreferenceController(context));
         controllers.add(new LocationForWorkPreferenceController(context, lifecycle));
         controllers.add(
index 034cbd0..75f64d3 100644 (file)
@@ -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 (file)
index 41e9f1e..0000000
+++ /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 (file)
index 9c8bac6..0000000
+++ /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 (file)
index a28cb20..0000000
+++ /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 (file)
index 2766788..0000000
+++ /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 (file)
index 4ed75d2..0000000
+++ /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 (file)
index 0e7a9d7..0000000
+++ /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<SearchIndexableResource> 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<String> niks = LocationMode.SEARCH_INDEX_DATA_PROVIDER
-                .getNonIndexableKeys(mContext);
-        final int xmlId = mFragment.getPreferenceScreenResId();
-
-        final List<String> keys = XmlTestUtils.getKeysFromPreferenceXml(mContext, xmlId);
-        assertThat(niks).containsAllIn(keys);
-    }
-}
index 2c92b44..e4aa075 100644 (file)
@@ -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