Move LocationServicePreference to Location > LocationServices

Bug: 180533061
Test: manual on device
Change-Id: Idd700f5c530af67f4936e207e42988267185f256
This commit is contained in:
Yu-Han Yang
2021-02-17 13:52:39 -08:00
parent 1ebb7fa010
commit e93c1298fc
12 changed files with 43 additions and 39 deletions

View File

@@ -1315,7 +1315,7 @@
</activity> </activity>
<activity <activity
android:name="Settings$ScanningSettingsActivity" android:name="Settings$ScanningSettingsActivity"
android:label="@string/location_scanning_screen_title" android:label="@string/location_services_screen_title"
android:icon="@drawable/ic_homepage_location" android:icon="@drawable/ic_homepage_location"
android:exported="true" android:exported="true"
android:configChanges="orientation|keyboardHidden|screenSize"> android:configChanges="orientation|keyboardHidden|screenSize">
@@ -1324,7 +1324,7 @@
<category android:name="android.intent.category.DEFAULT" /> <category android:name="android.intent.category.DEFAULT" />
</intent-filter> </intent-filter>
<meta-data android:name="com.android.settings.FRAGMENT_CLASS" <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
android:value="com.android.settings.location.ScanningSettings" /> android:value="com.android.settings.location.LocationServices" />
<meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED" <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
android:value="true" /> android:value="true" />
</activity> </activity>

View File

@@ -4007,8 +4007,6 @@
<string name="location_high_battery_use">High battery use</string> <string name="location_high_battery_use">High battery use</string>
<!-- [CHAR LIMIT=30] Location settings screen, recent location requests low battery use--> <!-- [CHAR LIMIT=30] Location settings screen, recent location requests low battery use-->
<string name="location_low_battery_use">Low battery use</string> <string name="location_low_battery_use">Low battery use</string>
<!-- [CHAR LIMIT=60] Wireless background scanning settings screen, screen title -->
<string name="location_scanning_screen_title">Wi\u2011Fi and Bluetooth scanning</string>
<!-- [CHAR LIMIT=130] Preference title for Wi-Fi always scanning --> <!-- [CHAR LIMIT=130] Preference title for Wi-Fi always scanning -->
<string name="location_scanning_wifi_always_scanning_title">Wi\u2011Fi scanning</string> <string name="location_scanning_wifi_always_scanning_title">Wi\u2011Fi scanning</string>
<!-- Preference description text for Wi-Fi always scanning --> <!-- Preference description text for Wi-Fi always scanning -->
@@ -4017,6 +4015,8 @@
<string name="location_scanning_bluetooth_always_scanning_title">Bluetooth scanning</string> <string name="location_scanning_bluetooth_always_scanning_title">Bluetooth scanning</string>
<!-- Description text for Bluetooth always scanning --> <!-- Description text for Bluetooth always scanning -->
<string name="location_scanning_bluetooth_always_scanning_description">Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services.</string> <string name="location_scanning_bluetooth_always_scanning_description">Allow apps and services to scan for nearby devices at any time, even when Bluetooth is off. This can be used, for example, to improve location-based features and services.</string>
<!-- [CHAR LIMIT=60] Location Services screen, screen title -->
<string name="location_services_screen_title">Location Services</string>
<!-- [CHAR LIMIT=50] Location settings screen, sub category for location services for managed profile --> <!-- [CHAR LIMIT=50] Location settings screen, sub category for location services for managed profile -->
<string name="managed_profile_location_services">Location services for work</string> <string name="managed_profile_location_services">Location services for work</string>

View File

@@ -15,7 +15,8 @@
--> -->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/location_scanning_screen_title"> xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/location_services_screen_title">
<SwitchPreference <SwitchPreference
android:title="@string/location_scanning_wifi_always_scanning_title" android:title="@string/location_scanning_wifi_always_scanning_title"
@@ -29,4 +30,9 @@
android:defaultValue="true" android:defaultValue="true"
android:key="bluetooth_always_scanning" /> android:key="bluetooth_always_scanning" />
<PreferenceCategory
android:key="location_services"
android:layout="@layout/preference_category_no_label"
settings:controller="com.android.settings.location.LocationServicePreferenceController"/>
</PreferenceScreen> </PreferenceScreen>

View File

@@ -50,9 +50,9 @@
</Preference> </Preference>
<Preference <Preference
android:fragment="com.android.settings.location.ScanningSettings" android:fragment="com.android.settings.location.LocationServices"
android:key="location_scanning" android:key="location_services"
android:title="@string/location_scanning_screen_title" android:title="@string/location_services_screen_title"
settings:controller="com.android.settings.location.LocationScanningPreferenceController"/> settings:controller="com.android.settings.location.LocationScanningPreferenceController"/>
<!-- This preference gets removed if there is no managed profile --> <!-- This preference gets removed if there is no managed profile -->
@@ -65,11 +65,6 @@
settings:forWork="true" settings:forWork="true"
settings:useAdminDisabledSummary="true"/> settings:useAdminDisabledSummary="true"/>
<PreferenceCategory
android:key="location_services"
android:layout="@layout/preference_category_no_label"
settings:controller="com.android.settings.location.LocationServicePreferenceController"/>
<!-- This preference gets removed if there is no managed profile --> <!-- This preference gets removed if there is no managed profile -->
<PreferenceCategory <PreferenceCategory
android:key="location_services_managed_profile" android:key="location_services_managed_profile"

View File

@@ -46,15 +46,10 @@
</Preference> </Preference>
<Preference <Preference
android:key="location_scanning"
android:title="@string/location_scanning_screen_title"
android:fragment="com.android.settings.location.ScanningSettings"
settings:controller="com.android.settings.location.LocationScanningPreferenceController"/>
<PreferenceCategory
android:key="location_services" android:key="location_services"
android:layout="@layout/preference_category_no_label" android:title="@string/location_services_screen_title"
settings:controller="com.android.settings.location.LocationServicePreferenceController"/> android:fragment="com.android.settings.location.LocationServices"
settings:controller="com.android.settings.location.LocationScanningPreferenceController"/>
<PreferenceCategory <PreferenceCategory
android:key="location_footer" android:key="location_footer"

View File

@@ -23,7 +23,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.location.ScanningSettings; import com.android.settings.location.LocationServices;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.utils.AnnotationSpan; import com.android.settings.utils.AnnotationSpan;
import com.android.settings.widget.SwitchWidgetController; import com.android.settings.widget.SwitchWidgetController;
@@ -100,7 +100,7 @@ public class BluetoothSwitchPreferenceController
public void onClick(View v) { public void onClick(View v) {
// send users to scanning settings if they click on the link in the summary text // send users to scanning settings if they click on the link in the summary text
new SubSettingLauncher(mContext) new SubSettingLauncher(mContext)
.setDestination(ScanningSettings.class.getName()) .setDestination(LocationServices.class.getName())
.setSourceMetricsCategory(SettingsEnums.BLUETOOTH_FRAGMENT) .setSourceMetricsCategory(SettingsEnums.BLUETOOTH_FRAGMENT)
.launch(); .launch();
} }

View File

@@ -110,8 +110,8 @@ import com.android.settings.inputmethod.UserDictionaryList;
import com.android.settings.inputmethod.UserDictionarySettings; import com.android.settings.inputmethod.UserDictionarySettings;
import com.android.settings.language.LanguageAndInputSettings; import com.android.settings.language.LanguageAndInputSettings;
import com.android.settings.localepicker.LocaleListEditor; import com.android.settings.localepicker.LocaleListEditor;
import com.android.settings.location.LocationServices;
import com.android.settings.location.LocationSettings; import com.android.settings.location.LocationSettings;
import com.android.settings.location.ScanningSettings;
import com.android.settings.network.MobileNetworkListFragment; import com.android.settings.network.MobileNetworkListFragment;
import com.android.settings.network.NetworkDashboardFragment; import com.android.settings.network.NetworkDashboardFragment;
import com.android.settings.network.NetworkProviderSettings; import com.android.settings.network.NetworkProviderSettings;
@@ -200,7 +200,7 @@ public class SettingsGateway {
NotificationStation.class.getName(), NotificationStation.class.getName(),
LocationSettings.class.getName(), LocationSettings.class.getName(),
PrivacyDashboardFragment.class.getName(), PrivacyDashboardFragment.class.getName(),
ScanningSettings.class.getName(), LocationServices.class.getName(),
SecuritySettings.class.getName(), SecuritySettings.class.getName(),
UsageAccessDetails.class.getName(), UsageAccessDetails.class.getName(),
PrivacySettings.class.getName(), PrivacySettings.class.getName(),

View File

@@ -50,7 +50,8 @@ public class LocationPersonalSettings extends DashboardFragment {
super.onAttach(context); super.onAttach(context);
use(AppLocationPermissionPreferenceController.class).init(this); use(AppLocationPermissionPreferenceController.class).init(this);
use(LocationServicePreferenceController.class).init(this); // STOPSHIP(b/180533061): resolve the personal/work location services issue before we can
// ship.
use(LocationFooterPreferenceController.class).init(this); use(LocationFooterPreferenceController.class).init(this);
final int profileType = getArguments().getInt(ProfileSelectFragment.EXTRA_PROFILE); final int profileType = getArguments().getInt(ProfileSelectFragment.EXTRA_PROFILE);

View File

@@ -29,20 +29,21 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* A page that configures the background scanning settings for Wi-Fi and Bluetooth. * A page that configures the Location Services settings including Wi-Fi scanning, Bluetooth
* scanning, and injected location services.
*/ */
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class ScanningSettings extends DashboardFragment { public class LocationServices extends DashboardFragment {
private static final String TAG = "ScanningSettings"; private static final String TAG = "LocationServicesSettings";
@Override @Override
public int getMetricsCategory() { public int getMetricsCategory() {
return SettingsEnums.LOCATION_SCANNING; return SettingsEnums.LOCATION_SERVICES;
} }
@Override @Override
protected int getPreferenceScreenResId() { protected int getPreferenceScreenResId() {
return R.xml.location_scanning; return R.xml.location_services;
} }
@Override @Override
@@ -55,6 +56,13 @@ public class ScanningSettings extends DashboardFragment {
return buildPreferenceControllers(context); return buildPreferenceControllers(context);
} }
@Override
public void onAttach(Context context) {
super.onAttach(context);
use(LocationServicePreferenceController.class).init(this);
}
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) { private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
final List<AbstractPreferenceController> controllers = new ArrayList<>(); final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new WifiScanningPreferenceController(context)); controllers.add(new WifiScanningPreferenceController(context));
@@ -66,7 +74,7 @@ public class ScanningSettings extends DashboardFragment {
* For Search. * For Search.
*/ */
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.location_scanning) { new BaseSearchIndexProvider(R.xml.location_services) {
@Override @Override
public List<AbstractPreferenceController> createPreferenceControllers(Context public List<AbstractPreferenceController> createPreferenceControllers(Context

View File

@@ -83,7 +83,6 @@ public class LocationSettings extends DashboardFragment {
use(AppLocationPermissionPreferenceController.class).init(this); use(AppLocationPermissionPreferenceController.class).init(this);
use(RecentLocationRequestPreferenceController.class).init(this); use(RecentLocationRequestPreferenceController.class).init(this);
use(LocationServicePreferenceController.class).init(this);
use(LocationFooterPreferenceController.class).init(this); use(LocationFooterPreferenceController.class).init(this);
use(LocationForWorkPreferenceController.class).init(this); use(LocationForWorkPreferenceController.class).init(this);
use(LocationServiceForWorkPreferenceController.class).init(this); use(LocationServiceForWorkPreferenceController.class).init(this);

View File

@@ -63,7 +63,7 @@ import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.DataUsagePreference; import com.android.settings.datausage.DataUsagePreference;
import com.android.settings.datausage.DataUsageUtils; import com.android.settings.datausage.DataUsageUtils;
import com.android.settings.location.ScanningSettings; import com.android.settings.location.LocationServices;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.MainSwitchBarController; import com.android.settings.widget.MainSwitchBarController;
@@ -921,8 +921,8 @@ public class WifiSettings extends RestrictedSettingsFragment
: getText(R.string.wifi_scan_notify_text_scanning_off); : getText(R.string.wifi_scan_notify_text_scanning_off);
final LinkifyUtils.OnClickListener clickListener = final LinkifyUtils.OnClickListener clickListener =
() -> new SubSettingLauncher(getContext()) () -> new SubSettingLauncher(getContext())
.setDestination(ScanningSettings.class.getName()) .setDestination(LocationServices.class.getName())
.setTitleRes(R.string.location_scanning_screen_title) .setTitleRes(R.string.location_services_screen_title)
.setSourceMetricsCategory(getMetricsCategory()) .setSourceMetricsCategory(getMetricsCategory())
.launch(); .launch();
mStatusMessagePreference.setText(title, description, clickListener); mStatusMessagePreference.setText(title, description, clickListener);

View File

@@ -32,7 +32,7 @@ import org.robolectric.RuntimeEnvironment;
import java.util.List; import java.util.List;
@RunWith(RobolectricTestRunner.class) @RunWith(RobolectricTestRunner.class)
public class ScanningSettingsTest { public class LocationServicesTest {
private Context mContext; private Context mContext;
@@ -43,10 +43,10 @@ public class ScanningSettingsTest {
@Test @Test
public void searchProvider_shouldIndexDefaultXml() { public void searchProvider_shouldIndexDefaultXml() {
final List<SearchIndexableResource> sir = ScanningSettings.SEARCH_INDEX_DATA_PROVIDER final List<SearchIndexableResource> sir = LocationServices.SEARCH_INDEX_DATA_PROVIDER
.getXmlResourcesToIndex(mContext, true /* enabled */); .getXmlResourcesToIndex(mContext, true /* enabled */);
assertThat(sir).hasSize(1); assertThat(sir).hasSize(1);
assertThat(sir.get(0).xmlResId).isEqualTo(R.xml.location_scanning); assertThat(sir.get(0).xmlResId).isEqualTo(R.xml.location_services);
} }
} }