Loading src/com/android/settings/search/DynamicIndexableContentMonitor.java +75 −50 Original line number Diff line number Diff line Loading @@ -74,10 +74,15 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } }; private final ContentObserver mContentObserver = new MyContentObserver(mHandler); private final ContentObserver mUserDictionaryContentObserver = new UserDictionaryContentObserver(mHandler); private Context mContext; private boolean mHasFeturePrinting; private boolean mHasFetureIme; private static Intent getAccessibilityServiceIntent(String packageName) { final Intent intent = new Intent(AccessibilityService.SERVICE_INTERFACE); intent.setPackage(packageName); Loading @@ -99,6 +104,11 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme public void register(Context context) { mContext = context; mHasFeturePrinting = mContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_PRINTING); mHasFetureIme = mContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_INPUT_METHODS); // Cache accessibility service packages to know when they go away. AccessibilityManager accessibilityManager = (AccessibilityManager) mContext.getSystemService(Context.ACCESSIBILITY_SERVICE); Loading @@ -114,6 +124,7 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme mAccessibilityServices.add(resolveInfo.serviceInfo.packageName); } if (mHasFeturePrinting) { // Cache print service packages to know when they go away. PrintManager printManager = (PrintManager) mContext.getSystemService(Context.PRINT_SERVICE); Loading @@ -127,8 +138,10 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } mPrintServices.add(resolveInfo.serviceInfo.packageName); } } // Cache IME service packages to know when they go away. if (mHasFetureIme) { InputMethodManager imeManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); List<InputMethodInfo> inputMethods = imeManager.getInputMethodList(); Loading @@ -142,7 +155,8 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme // Watch for related content URIs. mContext.getContentResolver().registerContentObserver( UserDictionary.Words.CONTENT_URI, true, mContentObserver); UserDictionary.Words.CONTENT_URI, true, mUserDictionaryContentObserver); } // Watch for input device changes. InputManager inputManager = (InputManager) context.getSystemService( Loading @@ -160,7 +174,10 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme Context.INPUT_SERVICE); inputManager.unregisterInputDeviceListener(this); mContext.getContentResolver().unregisterContentObserver(mContentObserver); if (mHasFetureIme) { mContext.getContentResolver().unregisterContentObserver( mUserDictionaryContentObserver); } mAccessibilityServices.clear(); mPrintServices.clear(); Loading Loading @@ -225,6 +242,7 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } } if (mHasFeturePrinting) { if (!mPrintServices.contains(packageName)) { final Intent intent = getPrintServiceIntent(packageName); if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) { Loading @@ -233,7 +251,9 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme PrintSettingsFragment.class.getName(), false, true); } } } if (mHasFetureIme) { if (!mImeServices.contains(packageName)) { Intent intent = getIMEServiceIntent(packageName); if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) { Loading @@ -243,6 +263,7 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } } } } private void handlePackageUnavailable(String packageName) { final int accessibilityIndex = mAccessibilityServices.indexOf(packageName); Loading @@ -252,13 +273,16 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme AccessibilitySettings.class.getName(), true, true); } if (mHasFeturePrinting) { final int printIndex = mPrintServices.indexOf(packageName); if (printIndex >= 0) { mPrintServices.remove(printIndex); Index.getInstance(mContext).updateFromClassNameResource( PrintSettingsFragment.class.getName(), true, true); } } if (mHasFetureIme) { final int imeIndex = mImeServices.indexOf(packageName); if (imeIndex >= 0) { mImeServices.remove(imeIndex); Loading @@ -266,10 +290,11 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme InputMethodAndLanguageSettings.class.getName(), true, true); } } } private final class MyContentObserver extends ContentObserver { private final class UserDictionaryContentObserver extends ContentObserver { public MyContentObserver(Handler handler) { public UserDictionaryContentObserver(Handler handler) { super(handler); } Loading Loading
src/com/android/settings/search/DynamicIndexableContentMonitor.java +75 −50 Original line number Diff line number Diff line Loading @@ -74,10 +74,15 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } }; private final ContentObserver mContentObserver = new MyContentObserver(mHandler); private final ContentObserver mUserDictionaryContentObserver = new UserDictionaryContentObserver(mHandler); private Context mContext; private boolean mHasFeturePrinting; private boolean mHasFetureIme; private static Intent getAccessibilityServiceIntent(String packageName) { final Intent intent = new Intent(AccessibilityService.SERVICE_INTERFACE); intent.setPackage(packageName); Loading @@ -99,6 +104,11 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme public void register(Context context) { mContext = context; mHasFeturePrinting = mContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_PRINTING); mHasFetureIme = mContext.getPackageManager().hasSystemFeature( PackageManager.FEATURE_INPUT_METHODS); // Cache accessibility service packages to know when they go away. AccessibilityManager accessibilityManager = (AccessibilityManager) mContext.getSystemService(Context.ACCESSIBILITY_SERVICE); Loading @@ -114,6 +124,7 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme mAccessibilityServices.add(resolveInfo.serviceInfo.packageName); } if (mHasFeturePrinting) { // Cache print service packages to know when they go away. PrintManager printManager = (PrintManager) mContext.getSystemService(Context.PRINT_SERVICE); Loading @@ -127,8 +138,10 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } mPrintServices.add(resolveInfo.serviceInfo.packageName); } } // Cache IME service packages to know when they go away. if (mHasFetureIme) { InputMethodManager imeManager = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); List<InputMethodInfo> inputMethods = imeManager.getInputMethodList(); Loading @@ -142,7 +155,8 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme // Watch for related content URIs. mContext.getContentResolver().registerContentObserver( UserDictionary.Words.CONTENT_URI, true, mContentObserver); UserDictionary.Words.CONTENT_URI, true, mUserDictionaryContentObserver); } // Watch for input device changes. InputManager inputManager = (InputManager) context.getSystemService( Loading @@ -160,7 +174,10 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme Context.INPUT_SERVICE); inputManager.unregisterInputDeviceListener(this); mContext.getContentResolver().unregisterContentObserver(mContentObserver); if (mHasFetureIme) { mContext.getContentResolver().unregisterContentObserver( mUserDictionaryContentObserver); } mAccessibilityServices.clear(); mPrintServices.clear(); Loading Loading @@ -225,6 +242,7 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } } if (mHasFeturePrinting) { if (!mPrintServices.contains(packageName)) { final Intent intent = getPrintServiceIntent(packageName); if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) { Loading @@ -233,7 +251,9 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme PrintSettingsFragment.class.getName(), false, true); } } } if (mHasFetureIme) { if (!mImeServices.contains(packageName)) { Intent intent = getIMEServiceIntent(packageName); if (!mContext.getPackageManager().queryIntentServices(intent, 0).isEmpty()) { Loading @@ -243,6 +263,7 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme } } } } private void handlePackageUnavailable(String packageName) { final int accessibilityIndex = mAccessibilityServices.indexOf(packageName); Loading @@ -252,13 +273,16 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme AccessibilitySettings.class.getName(), true, true); } if (mHasFeturePrinting) { final int printIndex = mPrintServices.indexOf(packageName); if (printIndex >= 0) { mPrintServices.remove(printIndex); Index.getInstance(mContext).updateFromClassNameResource( PrintSettingsFragment.class.getName(), true, true); } } if (mHasFetureIme) { final int imeIndex = mImeServices.indexOf(packageName); if (imeIndex >= 0) { mImeServices.remove(imeIndex); Loading @@ -266,10 +290,11 @@ public final class DynamicIndexableContentMonitor extends PackageMonitor impleme InputMethodAndLanguageSettings.class.getName(), true, true); } } } private final class MyContentObserver extends ContentObserver { private final class UserDictionaryContentObserver extends ContentObserver { public MyContentObserver(Handler handler) { public UserDictionaryContentObserver(Handler handler) { super(handler); } Loading