Declare "searchable" attribute for preferences.

Now we can easily mark a preference nonIndexable in xml instead of
adding key into searchIndexProvider.

Bug: 112608186
Test: robotests
Change-Id: I0ff16d44bb7b6ad148d3d35f09ca0da0163f73f4
This commit is contained in:
Fan Zhang
2018-08-14 16:25:54 -07:00
parent 097cfa7251
commit a79c377fbc
28 changed files with 201 additions and 148 deletions

View File

@@ -19,31 +19,26 @@ package com.android.settings.language;
import android.content.Context;
import android.speech.tts.TtsEngines;
import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settings.core.BasePreferenceController;
public class TtsPreferenceController extends AbstractPreferenceController
implements PreferenceControllerMixin {
public class TtsPreferenceController extends BasePreferenceController {
private static final String KEY_VOICE_CATEGORY = "voice_category";
private static final String KEY_TTS_SETTINGS = "tts_settings_summary";
@VisibleForTesting
TtsEngines mTtsEngines;
private final TtsEngines mTtsEngines;
public TtsPreferenceController(Context context, TtsEngines ttsEngines) {
super(context);
mTtsEngines = ttsEngines;
public TtsPreferenceController(Context context, String key) {
super(context, key);
mTtsEngines = new TtsEngines(context);
}
@Override
public boolean isAvailable() {
public int getAvailabilityStatus() {
return !mTtsEngines.getEngines().isEmpty() &&
mContext.getResources().getBoolean(R.bool.config_show_tts_settings_summary);
}
@Override
public String getPreferenceKey() {
return KEY_TTS_SETTINGS;
mContext.getResources().getBoolean(R.bool.config_show_tts_settings_summary)
? AVAILABLE_UNSEARCHABLE
: CONDITIONALLY_UNAVAILABLE;
}
}