Make PreferenceController a mixin
Bug: 62912136 Test: Existing tests in BaseSearchIndexProviderTest Change-Id: Ieda359806c09a019840b2005446c7ec8b61fdb00
This commit is contained in:
@@ -20,12 +20,13 @@ import android.content.Context;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.support.v7.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||
import com.android.settingslib.core.lifecycle.events.OnResume;
|
||||
|
||||
public abstract class DynamicAvailabilityPreferenceController extends PreferenceController
|
||||
implements LifecycleObserver, OnResume {
|
||||
public abstract class DynamicAvailabilityPreferenceController extends AbstractPreferenceController
|
||||
implements PreferenceControllerMixin, LifecycleObserver, OnResume {
|
||||
|
||||
private Preference mPreference;
|
||||
private PreferenceScreen mScreen;
|
||||
|
@@ -15,21 +15,28 @@
|
||||
*/
|
||||
package com.android.settings.core;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.android.settings.search.SearchIndexableRaw;
|
||||
import com.android.settings.search.ResultPayload;
|
||||
import com.android.settings.search.SearchIndexableRaw;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A controller that manages event for preference.
|
||||
* A controller mixin that adds mobile settings specific functionality
|
||||
*/
|
||||
public abstract class PreferenceController extends AbstractPreferenceController {
|
||||
public interface PreferenceControllerMixin {
|
||||
|
||||
public PreferenceController(Context context) {
|
||||
super(context);
|
||||
/**
|
||||
* Updates non-indexable keys for search provider.
|
||||
*
|
||||
* Called by SearchIndexProvider#getNonIndexableKeys
|
||||
*/
|
||||
default void updateNonIndexableKeys(List<String> keys) {
|
||||
if (this instanceof AbstractPreferenceController) {
|
||||
if (!((AbstractPreferenceController) this).isAvailable()) {
|
||||
keys.add(((AbstractPreferenceController) this).getPreferenceKey());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -37,13 +44,13 @@ public abstract class PreferenceController extends AbstractPreferenceController
|
||||
*
|
||||
* Called by SearchIndexProvider#getRawDataToIndex
|
||||
*/
|
||||
public void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||
default void updateRawDataToIndex(List<SearchIndexableRaw> rawData) {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the {@link ResultPayload} corresponding to the search result type for the preference.
|
||||
*/
|
||||
public ResultPayload getResultPayload() {
|
||||
default ResultPayload getResultPayload() {
|
||||
return null;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user