summaryrefslogtreecommitdiffstats
path: root/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-09-19 15:25:56 -0700
committerJeff Sharkey <jsharkey@android.com>2013-09-19 19:53:32 -0700
commita9ce049db87259e302e2368d2a4a1c11a94fd831 (patch)
treec024fcea7bf3983f0f9dd4de270c1412aeb42250 /packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
parentbdac73fec8e6d4686398654f7a74db465e6de8e0 (diff)
downloadframeworks_base-a9ce049db87259e302e2368d2a4a1c11a94fd831.zip
frameworks_base-a9ce049db87259e302e2368d2a4a1c11a94fd831.tar.gz
frameworks_base-a9ce049db87259e302e2368d2a4a1c11a94fd831.tar.bz2
Load RootInfo in background, invalidation.
Move all RootInfo queries to background threads to avoid janking the UI. Update passes happen on spawed task, which swaps out updated cache results when finished. Support partial updates when only a single package/authority has changed. Watch for change notifications for roots, since flags can change over time. Ignore stopped packages when in background, but query them for roots when launching any picker UI. Optimize management launches by treating as one-shot requests that don't need to wait for all RootInfo. Bug: 10600454, 10745490 Change-Id: Ibc7b15688ef6b41bd7e9dd0d7564b501e60e49a9
Diffstat (limited to 'packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java')
-rw-r--r--packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
index 180ddef..960181a 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java
@@ -23,6 +23,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Point;
+import android.net.Uri;
public class DocumentsApplication extends Application {
private RootsCache mRoots;
@@ -49,6 +50,8 @@ public class DocumentsApplication extends Application {
final int memoryClassBytes = am.getMemoryClass() * 1024 * 1024;
mRoots = new RootsCache(this);
+ mRoots.updateAsync();
+
mThumbnails = new ThumbnailCache(memoryClassBytes / 4);
final IntentFilter packageFilter = new IntentFilter();
@@ -77,8 +80,13 @@ public class DocumentsApplication extends Application {
private BroadcastReceiver mCacheReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
- // TODO: narrow changed/removed to only packages that have backends
- mRoots.update();
+ final Uri data = intent.getData();
+ if (data != null) {
+ final String packageName = data.getSchemeSpecificPart();
+ mRoots.updatePackageAsync(packageName);
+ } else {
+ mRoots.updateAsync();
+ }
}
};
}