diff options
author | Mark Brophy <mbrophy@google.com> | 2011-07-25 16:32:08 +0100 |
---|---|---|
committer | Mark Brophy <mbrophy@google.com> | 2011-07-25 16:34:17 +0100 |
commit | 1f298d3dec8ac178cac0d61eba296bd9099ea11d (patch) | |
tree | 2ba2923b494f993ecfcc17a452970b8df6fc4531 | |
parent | eea776684be05ee9418f2f3ee63effbb834421ac (diff) | |
download | ApplicationsProvider-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.java | 16 |
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 // ---------- |