diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-09-19 15:25:56 -0700 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-09-19 19:53:32 -0700 |
commit | a9ce049db87259e302e2368d2a4a1c11a94fd831 (patch) | |
tree | c024fcea7bf3983f0f9dd4de270c1412aeb42250 /packages/DocumentsUI/src/com/android/documentsui/DocumentsApplication.java | |
parent | bdac73fec8e6d4686398654f7a74db465e6de8e0 (diff) | |
download | frameworks_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.java | 12 |
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(); + } } }; } |