summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Brophy <mbrophy@google.com>2011-07-25 16:32:08 +0100
committerMark Brophy <mbrophy@google.com>2011-07-25 16:34:17 +0100
commit1f298d3dec8ac178cac0d61eba296bd9099ea11d (patch)
tree2ba2923b494f993ecfcc17a452970b8df6fc4531
parenteea776684be05ee9418f2f3ee63effbb834421ac (diff)
downloadApplicationsProvider-1f298d3dec8ac178cac0d61eba296bd9099ea11d.tar.gz
Catch disabled packages in ApplicationsProvider.
ApplicationsProvider overrides PackageMonitor.onSomePackagesChanged to watch for package changes. However, this isn't called when an application is disabled When GooglePartnerServices disables the "Books" app because the phone is outside the US, ApplicationsProvider doesn't see this, so QSB still shows the Books app. Override onPackageModified as well, and post an update for that package, so we'll remove the app from the DB. Bug: 5029707 Change-Id: I48f5a608f174b56544f52e379c80db309d2dff47
-rw-r--r--src/com/android/providers/applications/ApplicationsProvider.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/com/android/providers/applications/ApplicationsProvider.java b/src/com/android/providers/applications/ApplicationsProvider.java
index 04ed5db..2d58ce8 100644
--- a/src/com/android/providers/applications/ApplicationsProvider.java
+++ b/src/com/android/providers/applications/ApplicationsProvider.java
@@ -82,6 +82,7 @@ public class ApplicationsProvider extends ContentProvider {
// Messages for mHandler
private static final int MSG_UPDATE_ALL = 0;
+ private static final int MSG_UPDATE_PACKAGE = 1;
public static final String _ID = "_id";
public static final String NAME = "name";
@@ -150,6 +151,11 @@ public class ApplicationsProvider extends ContentProvider {
public void onSomePackagesChanged() {
postUpdateAll();
}
+
+ @Override
+ public void onPackageModified(String packageName) {
+ postUpdatePackage(packageName);
+ }
}
// Broadcast receiver for updating applications list when the locale changes.
@@ -199,6 +205,9 @@ public class ApplicationsProvider extends ContentProvider {
case MSG_UPDATE_ALL:
updateApplicationsList(null);
break;
+ case MSG_UPDATE_PACKAGE:
+ updateApplicationsList((String) msg.obj);
+ break;
default:
Log.e(TAG, "Unknown message: " + msg.what);
break;
@@ -218,6 +227,13 @@ public class ApplicationsProvider extends ContentProvider {
mHandler.sendMessageDelayed(msg, UPDATE_DELAY_MILLIS);
}
+ private void postUpdatePackage(String packageName) {
+ Message msg = Message.obtain();
+ msg.what = MSG_UPDATE_PACKAGE;
+ msg.obj = packageName;
+ mHandler.sendMessageDelayed(msg, UPDATE_DELAY_MILLIS);
+ }
+
// ----------
// END ASYC UPDATE CODE
// ----------