OSDN Git Service

Share preference controller in AdavancedAppSettings search
authorFan Zhang <zhfan@google.com>
Tue, 30 May 2017 19:47:17 +0000 (12:47 -0700)
committerFan Zhang <zhfan@google.com>
Tue, 30 May 2017 19:51:08 +0000 (12:51 -0700)
Change-Id: I4283f35a91ce10e01fa4c9d1cf626b1d2a30082c
Fix: 62141436
Test: make RunSettingsRoboTests

src/com/android/settings/applications/AdvancedAppSettings.java
tests/robotests/assets/grandfather_not_sharing_pref_controllers_with_search_provider

index cce8b7d..b623801 100644 (file)
@@ -18,8 +18,8 @@ package com.android.settings.applications;
 import android.app.Activity;
 import android.content.Context;
 import android.provider.SearchIndexableResource;
-
 import android.text.TextUtils;
+
 import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
 import com.android.settings.R;
 import com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController;
@@ -57,6 +57,15 @@ public class AdvancedAppSettings extends DashboardFragment {
 
     @Override
     protected List<PreferenceController> getPreferenceControllers(Context context) {
+        return buildPreferenceControllers(context);
+    }
+
+    @Override
+    public int getMetricsCategory() {
+        return MetricsEvent.APPLICATIONS_ADVANCED;
+    }
+
+    private static List<PreferenceController> buildPreferenceControllers(Context context) {
         final List<PreferenceController> controllers = new ArrayList<>();
         controllers.add(new DefaultBrowserPreferenceController(context));
         controllers.add(new DefaultWorkBrowserPreferenceController(context));
@@ -68,11 +77,6 @@ public class AdvancedAppSettings extends DashboardFragment {
         return controllers;
     }
 
-    @Override
-    public int getMetricsCategory() {
-        return MetricsEvent.APPLICATIONS_ADVANCED;
-    }
-
     public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
             new BaseSearchIndexProvider() {
                 @Override
@@ -94,6 +98,11 @@ public class AdvancedAppSettings extends DashboardFragment {
                             .getPreferenceKey());
                     return keys;
                 }
+
+                @Override
+                public List<PreferenceController> getPreferenceControllers(Context context) {
+                    return buildPreferenceControllers(context);
+                }
             };
 
     static class SummaryProvider implements SummaryLoader.SummaryProvider {
@@ -118,10 +127,10 @@ public class AdvancedAppSettings extends DashboardFragment {
                 return;
             }
             CharSequence summary = concatSummaryText(
-                mDefaultSmsPreferenceController.getDefaultAppLabel(),
-                mDefaultBrowserPreferenceController.getDefaultAppLabel());
+                    mDefaultSmsPreferenceController.getDefaultAppLabel(),
+                    mDefaultBrowserPreferenceController.getDefaultAppLabel());
             summary = concatSummaryText(summary,
-                mDefaultPhonePreferenceController.getDefaultAppLabel());
+                    mDefaultPhonePreferenceController.getDefaultAppLabel());
             if (!TextUtils.isEmpty(summary)) {
                 mSummaryLoader.setSummary(this, summary);
             }
@@ -139,11 +148,11 @@ public class AdvancedAppSettings extends DashboardFragment {
     }
 
     public static final SummaryLoader.SummaryProviderFactory SUMMARY_PROVIDER_FACTORY =
-        new SummaryLoader.SummaryProviderFactory() {
-            @Override
-            public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
-                    SummaryLoader summaryLoader) {
-                return new AdvancedAppSettings.SummaryProvider(activity, summaryLoader);
-            }
-        };
+            new SummaryLoader.SummaryProviderFactory() {
+                @Override
+                public SummaryLoader.SummaryProvider createSummaryProvider(Activity activity,
+                        SummaryLoader summaryLoader) {
+                    return new AdvancedAppSettings.SummaryProvider(activity, summaryLoader);
+                }
+            };
 }