summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);
}
}