Add new method to preference controller base for dynamic index.
- Add updateDynamicRawDataToIndex method.
- Implement preference controller index in BaseSearchIndexProvider.
Fixes: 144545478
Test: make RunSettingsGoogleRoboTests -j
make RunSettingsRoboTests ROBOTEST_FILTER=
com.android.settings.search.BaseSearchIndexProviderTest
Change-Id: Ibb11002227b280102b45d7c0610eae48ecf4c0f3
This commit is contained in:
@@ -274,6 +274,14 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
|
||||
public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates dynamic raw data for search provider.
|
||||
*
|
||||
* Called by SearchIndexProvider#getDynamicRawDataToIndex
|
||||
*/
|
||||
public void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set {@link UiBlockListener}
|
||||
*
|
||||
@@ -308,4 +316,4 @@ public abstract class BasePreferenceController extends AbstractPreferenceControl
|
||||
*/
|
||||
public interface UiBlocker {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,8 +18,8 @@ package com.android.settings.core;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settingslib.search.SearchIndexableRaw;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.search.SearchIndexableRaw;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -62,4 +62,12 @@ public interface PreferenceControllerMixin {
|
||||
*/
|
||||
default void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates dynamic raw data for search provider.
|
||||
*
|
||||
* Called by SearchIndexProvider#getDynamicRawDataToIndex
|
||||
*/
|
||||
default void updateDynamicRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,8 +77,25 @@ public class BaseSearchIndexProvider implements Indexable.SearchIndexProvider {
|
||||
}
|
||||
|
||||
@Override
|
||||
@CallSuper
|
||||
public List<SearchIndexableRaw> getDynamicRawDataToIndex(Context context, boolean enabled) {
|
||||
return null;
|
||||
final List<SearchIndexableRaw> dynamicRaws = new ArrayList<>();
|
||||
final List<AbstractPreferenceController> controllers = getPreferenceControllers(context);
|
||||
if (controllers == null || controllers.isEmpty()) {
|
||||
return dynamicRaws;
|
||||
}
|
||||
for (AbstractPreferenceController controller : controllers) {
|
||||
if (controller instanceof PreferenceControllerMixin) {
|
||||
((PreferenceControllerMixin) controller).updateDynamicRawDataToIndex(dynamicRaws);
|
||||
} else if (controller instanceof BasePreferenceController) {
|
||||
((BasePreferenceController) controller).updateDynamicRawDataToIndex(dynamicRaws);
|
||||
} else {
|
||||
Log.e(TAG, controller.getClass().getName()
|
||||
+ " must implement " + PreferenceControllerMixin.class.getName()
|
||||
+ " treating the dynamic indexable");
|
||||
}
|
||||
}
|
||||
return dynamicRaws;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user