Move IME related seach landing pages to its fragments
This CL moves the code building index of IMEs from InputMethodAndLanguageSettings to VirtualKeyboardFragment and AvailableVirtualKeyboardFragment, so that a search landing page of IME becomes one of the fragment correctly depending on the IME state. Bug: 32643633 Test: Manually installing/uninstalling AOSP LatinIME.apk while Settings app is/isn't running, then search AOSP and verify the landing page is correctly determined by the IME's enable state. Test: Update robolectric DynamicIndexableContentMonitorTest Change-Id: Ie44f358c2d3919fc864f4f88e6229293113823dd
This commit is contained in:
@@ -26,10 +26,15 @@ import android.os.Bundle;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.view.inputmethod.InputMethodInfo;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.view.inputmethod.InputMethodSubtype;
|
||||
|
||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||
import com.android.internal.util.Preconditions;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settings.search.SearchIndexableRaw;
|
||||
|
||||
import java.text.Collator;
|
||||
import java.util.ArrayList;
|
||||
@@ -37,7 +42,7 @@ import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
public final class VirtualKeyboardFragment extends SettingsPreferenceFragment {
|
||||
public final class VirtualKeyboardFragment extends SettingsPreferenceFragment implements Indexable {
|
||||
|
||||
private static final String ADD_VIRTUAL_KEYBOARD_SCREEN = "add_virtual_keyboard_screen";
|
||||
private static final Drawable NO_ICON = new ColorDrawable(Color.TRANSPARENT);
|
||||
@@ -117,4 +122,16 @@ public final class VirtualKeyboardFragment extends SettingsPreferenceFragment {
|
||||
mAddVirtualKeyboardScreen.setOrder(N);
|
||||
getPreferenceScreen().addPreference(mAddVirtualKeyboardScreen);
|
||||
}
|
||||
|
||||
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider() {
|
||||
@Override
|
||||
public List<SearchIndexableRaw> getRawDataToIndex(Context context, boolean enabled) {
|
||||
final InputMethodManager imm = context.getSystemService(InputMethodManager.class);
|
||||
final List<InputMethodInfo> enabledInputMethods = imm.getEnabledInputMethodList();
|
||||
final String screenTitle = context.getString(R.string.virtual_keyboard_category);
|
||||
return AvailableVirtualKeyboardFragment
|
||||
.buildSearchIndexOfInputMethods(context, enabledInputMethods, screenTitle);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user