Merge "Revert "Remove "See all" button"" into sc-dev
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index a950b3a..dc176d9 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -27,6 +27,14 @@
settings:controller=
"com.android.settings.location.RecentLocationAccessPreferenceController"/>
+ <Preference
+ android:key="recent_location_access_see_all_button"
+ android:title="@string/location_recent_location_access_see_all"
+ android:icon="@drawable/ic_chevron_right_24dp"
+ android:fragment="com.android.settings.location.RecentLocationAccessSeeAllFragment"
+ settings:controller="com.android.settings.location.RecentLocationAccessSeeAllButtonPreferenceController"
+ settings:searchable="false"/>
+
<PreferenceCategory
android:key="location_advanced_settings"
android:layout="@layout/preference_category_no_label"
diff --git a/res/xml/location_settings_personal.xml b/res/xml/location_settings_personal.xml
index a798899..726a96c 100644
--- a/res/xml/location_settings_personal.xml
+++ b/res/xml/location_settings_personal.xml
@@ -28,6 +28,14 @@
settings:controller=
"com.android.settings.location.RecentLocationAccessPreferenceController"/>
+ <Preference
+ android:key="recent_location_access_see_all_button"
+ android:title="@string/location_recent_location_access_see_all"
+ android:icon="@drawable/ic_chevron_right_24dp"
+ android:fragment="com.android.settings.location.RecentLocationAccessSeeAllFragment"
+ settings:controller="com.android.settings.location.RecentLocationAccessSeeAllButtonPreferenceController"
+ settings:searchable="false"/>
+
<!-- This preference category gets removed if new_recent_location_ui is disabled -->
<Preference
android:key="app_level_permissions"
diff --git a/res/xml/location_settings_workprofile.xml b/res/xml/location_settings_workprofile.xml
index 62ec0cb..99ccf14 100644
--- a/res/xml/location_settings_workprofile.xml
+++ b/res/xml/location_settings_workprofile.xml
@@ -28,6 +28,15 @@
settings:controller=
"com.android.settings.location.RecentLocationAccessPreferenceController"/>
+ <Preference
+ android:key="recent_location_access_see_all_button"
+ android:title="@string/location_recent_location_access_see_all"
+ android:icon="@drawable/ic_chevron_right_24dp"
+ android:fragment="com.android.settings.location.RecentLocationAccessSeeAllFragment"
+ settings:controller="com.android.settings.location.RecentLocationAccessSeeAllButtonPreferenceController"
+ settings:forWork="true"
+ settings:searchable="false"/>
+
<com.android.settingslib.RestrictedSwitchPreference
android:key="managed_profile_location_switch"
android:title="@string/managed_profile_location_switch_title"
diff --git a/src/com/android/settings/location/LocationPersonalSettings.java b/src/com/android/settings/location/LocationPersonalSettings.java
index ab392d6..0553d96 100644
--- a/src/com/android/settings/location/LocationPersonalSettings.java
+++ b/src/com/android/settings/location/LocationPersonalSettings.java
@@ -51,6 +51,7 @@
use(AppLocationPermissionPreferenceController.class).init(this);
use(LocationSettingsFooterPreferenceController.class).init(this);
+ use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this);
final int profileType = getArguments().getInt(ProfileSelectFragment.EXTRA_PROFILE);
final RecentLocationAccessPreferenceController controller = use(
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index 093dc85..fe3cf30 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -83,6 +83,7 @@
use(AppLocationPermissionPreferenceController.class).init(this);
use(RecentLocationAccessPreferenceController.class).init(this);
+ use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this);
use(LocationForWorkPreferenceController.class).init(this);
use(LocationSettingsFooterPreferenceController.class).init(this);
}
diff --git a/src/com/android/settings/location/LocationWorkProfileSettings.java b/src/com/android/settings/location/LocationWorkProfileSettings.java
index f50ba90..24c44f3 100644
--- a/src/com/android/settings/location/LocationWorkProfileSettings.java
+++ b/src/com/android/settings/location/LocationWorkProfileSettings.java
@@ -51,6 +51,7 @@
use(AppLocationPermissionPreferenceController.class).init(this);
use(LocationForWorkPreferenceController.class).init(this);
+ use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this);
use(LocationSettingsFooterPreferenceController.class).init(this);
final int profileType = getArguments().getInt(ProfileSelectFragment.EXTRA_PROFILE);
diff --git a/src/com/android/settings/location/RecentLocationAccessSeeAllButtonPreferenceController.java b/src/com/android/settings/location/RecentLocationAccessSeeAllButtonPreferenceController.java
new file mode 100644
index 0000000..68cde63
--- /dev/null
+++ b/src/com/android/settings/location/RecentLocationAccessSeeAllButtonPreferenceController.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright 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 androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+/**
+ * Preference controller that handles the "See All" button for recent location access.
+ */
+public class RecentLocationAccessSeeAllButtonPreferenceController extends
+ LocationBasePreferenceController {
+
+ private Preference mPreference;
+
+ /**
+ * Constructor of {@link RecentLocationAccessSeeAllButtonPreferenceController}.
+ */
+ public RecentLocationAccessSeeAllButtonPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
+ }
+
+ @Override
+ public void onLocationModeChanged(int mode, boolean restricted) {
+ boolean enabled = mLocationEnabler.isEnabled(mode);
+ mPreference.setVisible(enabled);
+ }
+}