summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-10-23 11:13:06 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2013-10-23 11:13:06 -0700
commit05f92b7c5810dfc4e96cd5dddff1f7f380739136 (patch)
treecc50a1ebf596d3103780abaa7aec9f85a5df6df1 /packages
parent75b96875bee961b12aed0f6e81369a4ecc6b26df (diff)
parent6599c12843fe3c82a5a02978afeb262eeb76f3f4 (diff)
downloadframeworks_base-05f92b7c5810dfc4e96cd5dddff1f7f380739136.zip
frameworks_base-05f92b7c5810dfc4e96cd5dddff1f7f380739136.tar.gz
frameworks_base-05f92b7c5810dfc4e96cd5dddff1f7f380739136.tar.bz2
am 6599c128: am 871cb5d5: Merge "Update roots when data cleared, refresh UI." into klp-dev
* commit '6599c12843fe3c82a5a02978afeb262eeb76f3f4': Update roots when data cleared, refresh UI.
Diffstat (limited to 'packages')
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java1
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RootsCache.java5
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java7
3 files changed, 11 insertions, 2 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
index 6b46e3a..547e343 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
@@ -75,6 +75,7 @@ public class DocumentsApplication extends Application {
packageFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
packageFilter.addAction(Intent.ACTION_PACKAGE_CHANGED);
packageFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+ packageFilter.addAction(Intent.ACTION_PACKAGE_DATA_CLEARED);
packageFilter.addDataScheme("package");
registerReceiver(mCacheReceiver, packageFilter);
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
index b98e1ee..f6b43c7 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsCache.java
@@ -60,8 +60,8 @@ import java.util.concurrent.TimeUnit;
public class RootsCache {
private static final boolean LOGD = true;
- // TODO: cache roots in local provider to avoid spinning up backends
- // TODO: root updates should trigger UI refresh
+ public static final Uri sNotificationUri = Uri.parse(
+ "content://com.android.documentsui.roots/");
private final Context mContext;
private final ContentObserver mObserver;
@@ -201,6 +201,7 @@ public class RootsCache {
mStoppedAuthorities = mTaskStoppedAuthorities;
}
mFirstLoad.countDown();
+ resolver.notifyChange(sNotificationUri, null, false);
return null;
}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java b/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java
index 7108971..8d37cdf 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsLoader.java
@@ -25,6 +25,8 @@ import com.android.documentsui.model.RootInfo;
import java.util.Collection;
public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> {
+ private final ForceLoadContentObserver mObserver = new ForceLoadContentObserver();
+
private final RootsCache mRoots;
private final State mState;
@@ -34,6 +36,9 @@ public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> {
super(context);
mRoots = roots;
mState = state;
+
+ getContext().getContentResolver()
+ .registerContentObserver(RootsCache.sNotificationUri, false, mObserver);
}
@Override
@@ -77,5 +82,7 @@ public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> {
onStopLoading();
mResult = null;
+
+ getContext().getContentResolver().unregisterContentObserver(mObserver);
}
}