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:
@@ -47,8 +47,10 @@ import android.view.inputmethod.InputMethodManager;
|
||||
|
||||
import com.android.internal.content.PackageMonitor;
|
||||
import com.android.settings.accessibility.AccessibilitySettings;
|
||||
import com.android.settings.inputmethod.AvailableVirtualKeyboardFragment;
|
||||
import com.android.settings.inputmethod.InputMethodAndLanguageSettings;
|
||||
import com.android.settings.inputmethod.PhysicalKeyboardFragment;
|
||||
import com.android.settings.inputmethod.VirtualKeyboardFragment;
|
||||
import com.android.settings.print.PrintSettingsFragment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -418,7 +420,11 @@ public final class DynamicIndexableContentMonitor implements
|
||||
mPackageManager = context.getPackageManager();
|
||||
mContentResolver = context.getContentResolver();
|
||||
mInputMethodServices.clear();
|
||||
// Build index of {@link UserDictionary}.
|
||||
buildIndex(InputMethodAndLanguageSettings.class, true /* rebuild */);
|
||||
// Build index of IMEs.
|
||||
buildIndex(VirtualKeyboardFragment.class, true /* rebuild */);
|
||||
buildIndex(AvailableVirtualKeyboardFragment.class, true /* rebuild */);
|
||||
|
||||
// Cache IME service packages to know when they go away.
|
||||
final InputMethodManager inputMethodManager = (InputMethodManager) context
|
||||
@@ -451,15 +457,15 @@ public final class DynamicIndexableContentMonitor implements
|
||||
.queryIntentServices(intent, 0 /* flags */);
|
||||
if (services == null || services.isEmpty()) return;
|
||||
mInputMethodServices.add(packageName);
|
||||
// TODO: Fix landing page to VirtualKeyboardFragment.
|
||||
buildIndex(InputMethodAndLanguageSettings.class, false /* rebuild */);
|
||||
buildIndex(VirtualKeyboardFragment.class, false /* rebuild */);
|
||||
buildIndex(AvailableVirtualKeyboardFragment.class, false /* rebuild */);
|
||||
}
|
||||
|
||||
synchronized void onPackageUnavailable(String packageName) {
|
||||
if (mIndex == null) return;
|
||||
if (!mInputMethodServices.remove(packageName)) return;
|
||||
// TODO: Fix landing page to AvailableVirtualKeyboardFragment.
|
||||
buildIndex(InputMethodAndLanguageSettings.class, true /* rebuild */);
|
||||
buildIndex(VirtualKeyboardFragment.class, true /* rebuild */);
|
||||
buildIndex(AvailableVirtualKeyboardFragment.class, true /* rebuild */);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user