diff options
Diffstat (limited to 'src/com/android/providers/applications/ApplicationsProvider.java')
-rw-r--r-- | src/com/android/providers/applications/ApplicationsProvider.java | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/com/android/providers/applications/ApplicationsProvider.java b/src/com/android/providers/applications/ApplicationsProvider.java index 2d58ce8..73adf7a 100644 --- a/src/com/android/providers/applications/ApplicationsProvider.java +++ b/src/com/android/providers/applications/ApplicationsProvider.java @@ -558,18 +558,26 @@ public class ApplicationsProvider extends ContentProvider { private boolean isComponentEnabled(PackageManager manager, String packageName, String componentName) { - if (manager.getApplicationEnabledSetting(packageName) == - PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { - if (DBG) Log.d(TAG, "DISABLED package " + packageName); - return false; - } - if (manager.getComponentEnabledSetting(new ComponentName(packageName, componentName)) == - PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { - if (DBG) Log.d(TAG, "DISABLED component " + packageName + "/" + componentName); + try { + if (manager.getApplicationEnabledSetting(packageName) == + PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { + if (DBG) Log.d(TAG, "DISABLED package " + packageName); + return false; + } + if (manager.getComponentEnabledSetting(new ComponentName(packageName, componentName)) == + PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { + if (DBG) Log.d(TAG, "DISABLED component " + packageName + "/" + componentName); + return false; + } + + return true; + } catch (Exception e) { + if (DBG) { + Log.w(TAG, "Couldn't query component enabled status " + + packageName + "/" + componentName + ": " + e); + } return false; } - - return true; } @VisibleForTesting |