diff --git a/res/xml/location_services.xml b/res/xml/location_services.xml
index 7096d2cd3f2..ef94886f748 100644
--- a/res/xml/location_services.xml
+++ b/res/xml/location_services.xml
@@ -33,6 +33,6 @@
+ settings:controller="com.android.settings.location.LocationInjectedServicesPreferenceController"/>
diff --git a/res/xml/location_services_workprofile.xml b/res/xml/location_services_workprofile.xml
new file mode 100644
index 00000000000..6db208367d9
--- /dev/null
+++ b/res/xml/location_services_workprofile.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index cf80debc695..1646b1d810d 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -54,7 +54,7 @@
android:fragment="com.android.settings.location.LocationServices"
android:key="location_services"
android:title="@string/location_services_screen_title"
- settings:controller="com.android.settings.location.LocationScanningPreferenceController"/>
+ settings:controller="com.android.settings.location.LocationServicesPreferenceController"/>
+ settings:controller="com.android.settings.location.LocationInjectedServicesForWorkPreferenceController"/>
diff --git a/res/xml/location_settings_personal.xml b/res/xml/location_settings_personal.xml
index 00b89e35852..479c61f0936 100644
--- a/res/xml/location_settings_personal.xml
+++ b/res/xml/location_settings_personal.xml
@@ -50,7 +50,7 @@
android:key="location_services"
android:title="@string/location_services_screen_title"
android:fragment="com.android.settings.location.LocationServices"
- settings:controller="com.android.settings.location.LocationScanningPreferenceController"/>
+ settings:controller="com.android.settings.location.LocationServicesPreferenceController"/>
-
+
buildPreferenceControllers(Context context) {
diff --git a/src/com/android/settings/location/LocationServicesForWork.java b/src/com/android/settings/location/LocationServicesForWork.java
new file mode 100644
index 00000000000..4b3124eb129
--- /dev/null
+++ b/src/com/android/settings/location/LocationServicesForWork.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2021 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.app.settings.SettingsEnums;
+import android.content.Context;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A page that configures the Location Services settings for work profile.
+ */
+@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
+public class LocationServicesForWork extends DashboardFragment {
+ private static final String TAG = "LocationServicesForWork";
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.LOCATION_SERVICES;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.location_services_workprofile;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @Override
+ protected List createPreferenceControllers(Context context) {
+ return buildPreferenceControllers(context);
+ }
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ use(LocationInjectedServicesForWorkPreferenceController.class).init(this);
+ }
+
+ private static List buildPreferenceControllers(Context context) {
+ final List controllers = new ArrayList<>();
+ return controllers;
+ }
+
+ /**
+ * For Search.
+ */
+ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider(R.xml.location_services_workprofile) {
+
+ @Override
+ public List createPreferenceControllers(Context
+ context) {
+ return buildPreferenceControllers(context);
+ }
+ };
+}
diff --git a/src/com/android/settings/location/LocationServicesForWorkPreferenceController.java b/src/com/android/settings/location/LocationServicesForWorkPreferenceController.java
new file mode 100644
index 00000000000..f8167df0df1
--- /dev/null
+++ b/src/com/android/settings/location/LocationServicesForWorkPreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2021 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 com.android.settings.core.BasePreferenceController;
+
+/**
+ * Preference controller for Location Services for Work Profile.
+ */
+public class LocationServicesForWorkPreferenceController extends BasePreferenceController {
+
+ public LocationServicesForWorkPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return null;
+ }
+
+ @AvailabilityStatus
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+}
diff --git a/src/com/android/settings/location/LocationScanningPreferenceController.java b/src/com/android/settings/location/LocationServicesPreferenceController.java
similarity index 91%
rename from src/com/android/settings/location/LocationScanningPreferenceController.java
rename to src/com/android/settings/location/LocationServicesPreferenceController.java
index a0c32412113..f7a338840f2 100644
--- a/src/com/android/settings/location/LocationScanningPreferenceController.java
+++ b/src/com/android/settings/location/LocationServicesPreferenceController.java
@@ -23,12 +23,14 @@ import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
-
-public class LocationScanningPreferenceController extends BasePreferenceController {
+/**
+ * Preference controller for Location Services.
+ */
+public class LocationServicesPreferenceController extends BasePreferenceController {
private final WifiManager mWifiManager;
- public LocationScanningPreferenceController(Context context, String key) {
+ public LocationServicesPreferenceController(Context context, String key) {
super(context, key);
mWifiManager = context.getSystemService(WifiManager.class);
}
@@ -57,4 +59,4 @@ public class LocationScanningPreferenceController extends BasePreferenceControll
? AVAILABLE
: UNSUPPORTED_ON_DEVICE;
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 9a61b31a170..d58ad5b5ca2 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -85,7 +85,7 @@ public class LocationSettings extends DashboardFragment {
use(RecentLocationAccessPreferenceController.class).init(this);
use(LocationFooterPreferenceController.class).init(this);
use(LocationForWorkPreferenceController.class).init(this);
- use(LocationServiceForWorkPreferenceController.class).init(this);
+ use(LocationInjectedServicesForWorkPreferenceController.class).init(this);
}
@Override
diff --git a/src/com/android/settings/location/LocationWorkProfileSettings.java b/src/com/android/settings/location/LocationWorkProfileSettings.java
index 601ec23bc1d..18936fd4897 100644
--- a/src/com/android/settings/location/LocationWorkProfileSettings.java
+++ b/src/com/android/settings/location/LocationWorkProfileSettings.java
@@ -50,7 +50,6 @@ public class LocationWorkProfileSettings extends DashboardFragment {
super.onAttach(context);
use(AppLocationPermissionPreferenceController.class).init(this);
- use(LocationServiceForWorkPreferenceController.class).init(this);
use(LocationFooterPreferenceController.class).init(this);
use(LocationForWorkPreferenceController.class).init(this);
diff --git a/tests/robotests/src/com/android/settings/location/LocationServicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
similarity index 97%
rename from tests/robotests/src/com/android/settings/location/LocationServicePreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
index 62c13af849b..0370781fe77 100644
--- a/tests/robotests/src/com/android/settings/location/LocationServicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationInjectedServicesPreferenceControllerTest.java
@@ -58,7 +58,7 @@ import java.util.Map;
@RunWith(RobolectricTestRunner.class)
@Config(shadows = ShadowUserManager.class)
-public class LocationServicePreferenceControllerTest {
+public class LocationInjectedServicesPreferenceControllerTest {
private static final String KEY_LOCATION_SERVICES = "location_service";
@@ -76,7 +76,7 @@ public class LocationServicePreferenceControllerTest {
private DevicePolicyManager mDevicePolicyManager;
private Context mContext;
- private LocationServicePreferenceController mController;
+ private LocationInjectedServicesPreferenceController mController;
private LifecycleOwner mLifecycleOwner;
private Lifecycle mLifecycle;
@@ -86,7 +86,8 @@ public class LocationServicePreferenceControllerTest {
mContext = spy(RuntimeEnvironment.application);
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
- mController = spy(new LocationServicePreferenceController(mContext, KEY_LOCATION_SERVICES));
+ mController = spy(
+ new LocationInjectedServicesPreferenceController(mContext, KEY_LOCATION_SERVICES));
when(mFragment.getSettingsLifecycle()).thenReturn(mLifecycle);
mController.init(mFragment);
mController.mInjector = mSettingsInjector;
diff --git a/tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java
similarity index 95%
rename from tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java
rename to tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java
index 149276658b3..d7d76bef7c7 100644
--- a/tests/robotests/src/com/android/settings/location/LocationScanningPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/location/LocationServicesPreferenceControllerTest.java
@@ -37,18 +37,18 @@ import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-public class LocationScanningPreferenceControllerTest {
+public class LocationServicesPreferenceControllerTest {
@Mock
private WifiManager mWifiManager;
private Context mContext;
- private LocationScanningPreferenceController mController;
+ private LocationServicesPreferenceController mController;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
when(mContext.getSystemService(WifiManager.class)).thenReturn(mWifiManager);
- mController = new LocationScanningPreferenceController(mContext, "key");
+ mController = new LocationServicesPreferenceController(mContext, "key");
}
@Test
@@ -97,4 +97,4 @@ public class LocationScanningPreferenceControllerTest {
public void testLocationScanning_ifDisabled_shouldNotBeShown() {
assertThat(mController.isAvailable()).isFalse();
}
-}
\ No newline at end of file
+}