Instantiate pref controllers from xml if it's defined.

- If a <preference> tag also defines a controller, we will try to
  instantiate it before displaying the UI. The same logic is shared by
  BaseSearchIndexProvider so it also drives search suppression.

- If user also defines a list of controllers programatically, the
  programatically created ones takes precedence.

Bug: 73668763
Test: WIP
Change-Id: I7aecec270bcd3af261e012ef1f6995d2a523cfa1
This commit is contained in:
Fan Zhang
2018-02-21 15:22:25 -08:00
parent fc520ee38a
commit 917f101899
28 changed files with 496 additions and 267 deletions

View File

@@ -18,7 +18,7 @@ package com.android.settings.search;
import android.content.Context;
import android.provider.SearchIndexableResource;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import java.util.List;
@@ -72,7 +72,9 @@ public interface Indexable {
* @param context
* @return a list of {@link AbstractPreferenceController} for ResultPayload data during
* Indexing.
*
* TODO(zhfan): name is confusing(too similar to getPreferenceControllers). Rename both.
*/
List<AbstractPreferenceController> getPreferenceControllers(Context context);
List<AbstractPreferenceController> getAllPreferenceControllers(Context context);
}
}