diff --git a/res/xml/app_and_notification.xml b/res/xml/app_and_notification.xml
index 84b80b8d419..9fc29c3e83f 100644
--- a/res/xml/app_and_notification.xml
+++ b/res/xml/app_and_notification.xml
@@ -55,7 +55,8 @@
android:key="manage_perms"
android:title="@string/app_permissions"
android:order="12"
- settings:keywords="@string/keywords_app_permissions">
+ settings:keywords="@string/keywords_app_permissions"
+ settings:controller="com.android.settings.applications.AppPermissionsPreferenceController">
@@ -76,4 +77,4 @@
android:title="@string/special_access"
android:order="20" />
-
\ No newline at end of file
+
diff --git a/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java b/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java
index 0e24a10651b..ea212cf4d3f 100644
--- a/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java
+++ b/src/com/android/settings/accessibility/VibrationIntensityPreferenceController.java
@@ -49,7 +49,7 @@ public abstract class VibrationIntensityPreferenceController extends BasePrefere
mSettingsContentObserver = new SettingObserver(settingKey) {
@Override
public void onChange(boolean selfChange, Uri uri) {
- updateState(null);
+ updateState(mPreference);
}
};
}
@@ -73,14 +73,6 @@ public abstract class VibrationIntensityPreferenceController extends BasePrefere
mPreference = screen.findPreference(getPreferenceKey());
}
- @Override
- public void updateState(Preference preference) {
- if (mPreference == null) {
- return;
- }
- mPreference.setSummary(getSummary());
- }
-
@Override
public CharSequence getSummary() {
final int intensity = Settings.System.getInt(mContext.getContentResolver(),
diff --git a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
index 7b62078339d..eb74fb13861 100644
--- a/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
+++ b/src/com/android/settings/applications/AppAndNotificationDashboardFragment.java
@@ -75,7 +75,6 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment {
controllers.add(new EmergencyBroadcastPreferenceController(context,
"app_and_notif_cell_broadcast_settings"));
controllers.add(new SpecialAppAccessPreferenceController(context));
- controllers.add(new AppPermissionsPreferenceController(context));
controllers.add(new RecentAppsPreferenceController(context, app, host));
return controllers;
}
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
index 9bd8c0b3393..206ef339122 100644
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
@@ -19,55 +19,40 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PermissionGroupInfo;
import android.content.pm.PermissionInfo;
-import android.support.v7.preference.Preference;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.Log;
+
import com.android.settings.R;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
+import com.android.settings.core.BasePreferenceController;
import java.util.List;
import java.util.Set;
-public class AppPermissionsPreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin {
+public class AppPermissionsPreferenceController extends BasePreferenceController {
private static final String TAG = "AppPermissionPrefCtrl";
private static final String KEY_APP_PERMISSION_GROUPS = "manage_perms";
private static final String[] PERMISSION_GROUPS = new String[] {
- "android.permission-group.LOCATION",
- "android.permission-group.MICROPHONE",
- "android.permission-group.CAMERA",
- "android.permission-group.SMS",
- "android.permission-group.CONTACTS",
- "android.permission-group.PHONE"};
+ "android.permission-group.LOCATION",
+ "android.permission-group.MICROPHONE",
+ "android.permission-group.CAMERA",
+ "android.permission-group.SMS",
+ "android.permission-group.CONTACTS",
+ "android.permission-group.PHONE"};
private static final int NUM_PERMISSION_TO_USE = 3;
private final PackageManager mPackageManager;
public AppPermissionsPreferenceController(Context context) {
- super(context);
+ super(context, KEY_APP_PERMISSION_GROUPS);
mPackageManager = context.getPackageManager();
}
@Override
- public boolean isAvailable() {
- return true;
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_APP_PERMISSION_GROUPS;
- }
-
- @Override
- public void updateState(Preference preference) {
- final CharSequence summary = getSummary();
- if (summary != null) {
- preference.setSummary(summary);
- }
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
}
/*
@@ -96,7 +81,7 @@ public class AppPermissionsPreferenceController extends AbstractPreferenceContro
private Set getGrantedPermissionGroups(Set permissions) {
ArraySet grantedPermissionGroups = new ArraySet<>();
List installedPackages =
- mPackageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
+ mPackageManager.getInstalledPackages(PackageManager.GET_PERMISSIONS);
for (PackageInfo installedPackage : installedPackages) {
if (installedPackage.permissions == null) {
continue;
@@ -134,12 +119,12 @@ public class AppPermissionsPreferenceController extends AbstractPreferenceContro
for (String group : PERMISSION_GROUPS) {
try {
final List permissions =
- mPackageManager.queryPermissionsByGroup(group, 0);
+ mPackageManager.queryPermissionsByGroup(group, 0);
for (PermissionInfo permissionInfo : permissions) {
result.add(permissionInfo.name);
}
} catch (NameNotFoundException e) {
- Log.e(TAG, "Error getting permissions in group "+group, e);
+ Log.e(TAG, "Error getting permissions in group " + group, e);
}
}
return result;
diff --git a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
index 8952de0b6b8..cf1731d31ac 100644
--- a/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
+++ b/src/com/android/settings/applications/appinfo/DefaultAppShortcutPreferenceControllerBase.java
@@ -49,11 +49,6 @@ public abstract class DefaultAppShortcutPreferenceControllerBase extends BasePre
return hasAppCapability() ? AVAILABLE : DISABLED_UNSUPPORTED;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
public CharSequence getSummary() {
int summaryResId = isDefaultApp() ? R.string.yes : R.string.no;
diff --git a/src/com/android/settings/applications/appinfo/DrawOverlayDetailPreferenceController.java b/src/com/android/settings/applications/appinfo/DrawOverlayDetailPreferenceController.java
index 21c619519d1..ca63575f363 100644
--- a/src/com/android/settings/applications/appinfo/DrawOverlayDetailPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/DrawOverlayDetailPreferenceController.java
@@ -21,7 +21,6 @@ import static android.Manifest.permission.SYSTEM_ALERT_WINDOW;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.os.UserManager;
-import android.support.v7.preference.Preference;
import com.android.settings.SettingsPreferenceFragment;
@@ -50,11 +49,6 @@ public class DrawOverlayDetailPreferenceController extends AppInfoPreferenceCont
return DISABLED_FOR_USER;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
protected Class extends SettingsPreferenceFragment> getDetailFragmentClass() {
return DrawOverlayDetails.class;
diff --git a/src/com/android/settings/applications/appinfo/WriteSystemSettingsPreferenceController.java b/src/com/android/settings/applications/appinfo/WriteSystemSettingsPreferenceController.java
index ec69b85a9f0..71532eaa4a8 100644
--- a/src/com/android/settings/applications/appinfo/WriteSystemSettingsPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/WriteSystemSettingsPreferenceController.java
@@ -21,7 +21,6 @@ import static android.Manifest.permission.WRITE_SETTINGS;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.os.UserManager;
-import android.support.v7.preference.Preference;
import com.android.settings.SettingsPreferenceFragment;
@@ -51,11 +50,6 @@ public class WriteSystemSettingsPreferenceController extends AppInfoPreferenceCo
return DISABLED_FOR_USER;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
protected Class extends SettingsPreferenceFragment> getDetailFragmentClass() {
return WriteSettingsDetails.class;
diff --git a/src/com/android/settings/backup/BackupSettingsActivityPreferenceController.java b/src/com/android/settings/backup/BackupSettingsActivityPreferenceController.java
index 1070ae9df66..183d13f0033 100644
--- a/src/com/android/settings/backup/BackupSettingsActivityPreferenceController.java
+++ b/src/com/android/settings/backup/BackupSettingsActivityPreferenceController.java
@@ -19,7 +19,6 @@ package com.android.settings.backup;
import android.app.backup.BackupManager;
import android.content.Context;
import android.os.UserManager;
-import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -45,11 +44,6 @@ public class BackupSettingsActivityPreferenceController extends BasePreferenceCo
: DISABLED_UNSUPPORTED;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
public CharSequence getSummary() {
final boolean backupEnabled = mBackupManager.isBackupEnabled();
diff --git a/src/com/android/settings/core/PreferenceControllerListHelper.java b/src/com/android/settings/core/PreferenceControllerListHelper.java
index d955301d175..bec7c094ea2 100644
--- a/src/com/android/settings/core/PreferenceControllerListHelper.java
+++ b/src/com/android/settings/core/PreferenceControllerListHelper.java
@@ -41,7 +41,7 @@ import java.util.TreeSet;
*/
public class PreferenceControllerListHelper {
- private static final String TAG = "PrefCtrlListCreator";
+ private static final String TAG = "PrefCtrlListHelper";
/**
* Instantiates a list of controller based on xml definition.
diff --git a/src/com/android/settings/display/ColorModePreferenceController.java b/src/com/android/settings/display/ColorModePreferenceController.java
index f3435d0612a..7fa978209d7 100644
--- a/src/com/android/settings/display/ColorModePreferenceController.java
+++ b/src/com/android/settings/display/ColorModePreferenceController.java
@@ -18,7 +18,6 @@ import android.os.IBinder;
import android.os.Parcel;
import android.os.RemoteException;
import android.os.ServiceManager;
-import android.support.v7.preference.Preference;
import android.util.Log;
import com.android.internal.annotations.VisibleForTesting;
@@ -45,11 +44,6 @@ public class ColorModePreferenceController extends BasePreferenceController {
return mConfigWrapper.isScreenWideColorGamut() ? AVAILABLE : DISABLED_FOR_USER;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
public CharSequence getSummary() {
final int colorMode = getColorDisplayController().getColorMode();
diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
index 3a74a8cf09e..1df5b900b53 100644
--- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
+++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
@@ -19,7 +19,6 @@ package com.android.settings.gestures;
import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
-import android.support.v7.preference.Preference;
import com.android.internal.hardware.AmbientDisplayConfiguration;
import com.android.settings.R;
@@ -55,11 +54,6 @@ public class GesturesSettingPreferenceController extends BasePreferenceControlle
: DISABLED_UNSUPPORTED;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
public CharSequence getSummary() {
if (!mFeatureProvider.isSensorAvailable(mContext)) {
diff --git a/src/com/android/settings/notification/HeaderPreferenceController.java b/src/com/android/settings/notification/HeaderPreferenceController.java
index 1247659545b..f30abf48ef0 100644
--- a/src/com/android/settings/notification/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/HeaderPreferenceController.java
@@ -51,6 +51,7 @@ public class HeaderPreferenceController extends NotificationPreferenceController
return mAppRow != null;
}
+ @Override
public void updateState(Preference preference) {
if (mAppRow != null && mFragment != null) {
LayoutPreference pref = (LayoutPreference) preference;
diff --git a/src/com/android/settings/print/PrintSettingPreferenceController.java b/src/com/android/settings/print/PrintSettingPreferenceController.java
index 7fb67349f08..a589770a0ea 100644
--- a/src/com/android/settings/print/PrintSettingPreferenceController.java
+++ b/src/com/android/settings/print/PrintSettingPreferenceController.java
@@ -84,10 +84,7 @@ public class PrintSettingPreferenceController extends BasePreferenceController i
@Override
public void updateState(Preference preference) {
- if (preference == null) {
- return;
- }
- preference.setSummary(getSummary());
+ super.updateState(preference);
((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
UserManager.DISALLOW_PRINTING);
}
diff --git a/src/com/android/settings/security/ScreenPinningPreferenceController.java b/src/com/android/settings/security/ScreenPinningPreferenceController.java
index 36b25a385cf..a90746eb1e7 100644
--- a/src/com/android/settings/security/ScreenPinningPreferenceController.java
+++ b/src/com/android/settings/security/ScreenPinningPreferenceController.java
@@ -18,7 +18,6 @@ package com.android.settings.security;
import android.content.Context;
import android.provider.Settings;
-import android.support.v7.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -44,10 +43,4 @@ public class ScreenPinningPreferenceController extends BasePreferenceController
? mContext.getText(R.string.switch_on_text)
: mContext.getText(R.string.switch_off_text);
}
-
- @Override
- public void updateState(Preference preference) {
- super.updateState(preference);
- preference.setSummary(getSummary());
- }
}
diff --git a/src/com/android/settings/system/SystemUpdatePreferenceController.java b/src/com/android/settings/system/SystemUpdatePreferenceController.java
index 134166f36a4..80d4ecb05df 100644
--- a/src/com/android/settings/system/SystemUpdatePreferenceController.java
+++ b/src/com/android/settings/system/SystemUpdatePreferenceController.java
@@ -82,11 +82,6 @@ public class SystemUpdatePreferenceController extends BasePreferenceController {
return false;
}
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(getSummary());
- }
-
@Override
public CharSequence getSummary() {
final Bundle updateInfo = mUpdateManager.retrieveSystemUpdateInfo();
diff --git a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
index 948b14ad70c..be3507c93ae 100644
--- a/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
+++ b/tests/robotests/assets/grandfather_not_in_search_index_provider_registry
@@ -1 +1,2 @@
com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
+com.android.settings.search.indexing.FakeSettingsFragment
diff --git a/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider b/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
index da541e21df2..b3290725c98 100644
--- a/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
+++ b/tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider
@@ -1,5 +1 @@
-com.android.settings.datausage.DataUsageSummaryLegacy
com.android.settings.fuelgauge.PowerUsageSummary
-com.android.settings.fuelgauge.PowerUsageAdvanced
-com.android.settings.search.indexing.FakeSettingsFragment
-com.android.settings.system.SystemDashboardFragment
\ No newline at end of file
diff --git a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
index 2f55e00d46e..32e17b92687 100644
--- a/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/accessibility/NotificationVibrationIntensityPreferenceControllerTest.java
@@ -86,25 +86,25 @@ public class NotificationVibrationIntensityPreferenceControllerTest {
public void updateState_shouldRefreshSummary() {
Settings.System.putInt(mContext.getContentResolver(),
NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_LOW);
- mController.updateState(null);
+ mController.updateState(mPreference);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_low));
Settings.System.putInt(mContext.getContentResolver(),
NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_HIGH);
- mController.updateState(null);
+ mController.updateState(mPreference);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_high));
Settings.System.putInt(mContext.getContentResolver(),
NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_MEDIUM);
- mController.updateState(null);
+ mController.updateState(mPreference);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_medium));
Settings.System.putInt(mContext.getContentResolver(),
NOTIFICATION_VIBRATION_INTENSITY, Vibrator.VIBRATION_INTENSITY_OFF);
- mController.updateState(null);
+ mController.updateState(mPreference);
assertThat(mPreference.getSummary())
.isEqualTo(mContext.getString(R.string.accessibility_vibration_intensity_off));
}
diff --git a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
index 80083ed1919..83579b4252c 100644
--- a/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
+++ b/tests/robotests/src/com/android/settings/dashboard/DashboardFragmentSearchIndexProviderInspector.java
@@ -19,6 +19,8 @@ package com.android.settings.dashboard;
import android.app.Fragment;
import android.content.Context;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settings.core.PreferenceControllerListHelper;
import com.android.settings.search.DatabaseIndexingUtils;
import com.android.settings.search.Indexable;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -58,6 +60,14 @@ public class DashboardFragmentSearchIndexProviderInspector {
try {
controllersFromFragment =
((DashboardFragment) fragment).createPreferenceControllers(context);
+ List controllersFromXml = PreferenceControllerListHelper
+ .getPreferenceControllersFromXml(context,
+ ((DashboardFragment) fragment).getPreferenceScreenResId());
+ final List uniqueControllerFromXml =
+ PreferenceControllerListHelper.filterControllers(
+ controllersFromXml, controllersFromFragment);
+ controllersFromFragment.addAll(uniqueControllerFromXml);
+
} catch (Throwable e) {
// Can't do much with exception, assume the test passed.
return true;