Loading src/com/android/documentsui/RootsMonitor.java +12 −11 Original line number Diff line number Diff line Loading @@ -17,11 +17,12 @@ package com.android.documentsui; import android.app.Activity; import android.content.ContentResolver; import android.database.ContentObserver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.support.v4.content.LocalBroadcastManager; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.base.DocumentInfo; Loading @@ -39,8 +40,8 @@ import java.util.Collection; */ final class RootsMonitor<T extends Activity & CommonAddons> { private final ContentResolver mResolver; private final ContentObserver mObserver; private final LocalBroadcastManager mManager; private final BroadcastReceiver mReceiver; RootsMonitor( final T activity, Loading @@ -49,11 +50,11 @@ final class RootsMonitor<T extends Activity & CommonAddons> { final DocumentsAccess docs, final State state, final SearchViewManager searchMgr) { mResolver = activity.getContentResolver(); mManager = LocalBroadcastManager.getInstance(activity); mObserver = new ContentObserver(new Handler(Looper.getMainLooper())) { mReceiver = new BroadcastReceiver() { @Override public void onChange(boolean selfChange) { public void onReceive(Context context, Intent intent) { new HandleRootsChangedTask<T>( activity, actions, Loading @@ -66,11 +67,11 @@ final class RootsMonitor<T extends Activity & CommonAddons> { } void start() { mResolver.registerContentObserver(RootsAccess.NOTIFICATION_URI, false, mObserver); mManager.registerReceiver(mReceiver, new IntentFilter(RootsAccess.BROADCAST_ACTION)); } void stop() { mResolver.unregisterContentObserver(mObserver); mManager.unregisterReceiver(mReceiver); } private static class HandleRootsChangedTask<T extends Activity & CommonAddons> Loading src/com/android/documentsui/roots/RootsAccess.java +1 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.documentsui.roots; import static com.android.documentsui.base.Shared.DEBUG; import static com.android.documentsui.base.Shared.VERBOSE; import android.net.Uri; import android.util.Log; import com.android.documentsui.base.MimeTypes; Loading @@ -36,7 +35,7 @@ import java.util.List; */ public interface RootsAccess { Uri NOTIFICATION_URI = Uri.parse("content://com.android.documentsui.roots/"); String BROADCAST_ACTION = "com.android.documentsui.action.ROOT_CHANGED"; /** * Return the requested {@link RootInfo}, but only loading the roots for the Loading src/com/android/documentsui/roots/RootsCache.java +2 −2 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.os.Handler; import android.os.SystemClock; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import com.android.documentsui.DocumentsApplication; Loading Loading @@ -411,7 +412,6 @@ public class RootsCache implements RootsAccess { mTaskRoots.put(mRecentsRoot.authority, mRecentsRoot); final ContentResolver resolver = mContext.getContentResolver(); final PackageManager pm = mContext.getPackageManager(); // Pick up provider with action string Loading @@ -434,7 +434,7 @@ public class RootsCache implements RootsAccess { mStoppedAuthorities = mTaskStoppedAuthorities; } mFirstLoad.countDown(); resolver.notifyChange(NOTIFICATION_URI, null, false); LocalBroadcastManager.getInstance(mContext).sendBroadcast(new Intent(BROADCAST_ACTION)); return null; } Loading src/com/android/documentsui/roots/RootsLoader.java +13 −4 Original line number Diff line number Diff line Loading @@ -17,7 +17,11 @@ package com.android.documentsui.roots; import android.content.AsyncTaskLoader; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.support.v4.content.LocalBroadcastManager; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; Loading @@ -25,7 +29,12 @@ import com.android.documentsui.base.State; import java.util.Collection; public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> { private final ForceLoadContentObserver mObserver = new ForceLoadContentObserver(); private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { onContentChanged(); } }; private final RootsCache mRoots; private final State mState; Loading @@ -37,8 +46,8 @@ public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> { mRoots = roots; mState = state; context.getContentResolver().registerContentObserver( RootsAccess.NOTIFICATION_URI, false, mObserver); LocalBroadcastManager.getInstance(context).registerReceiver( mReceiver, new IntentFilter(RootsAccess.BROADCAST_ACTION)); } @Override Loading Loading @@ -83,6 +92,6 @@ public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> { mResult = null; getContext().getContentResolver().unregisterContentObserver(mObserver); LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mReceiver); } } Loading
src/com/android/documentsui/RootsMonitor.java +12 −11 Original line number Diff line number Diff line Loading @@ -17,11 +17,12 @@ package com.android.documentsui; import android.app.Activity; import android.content.ContentResolver; import android.database.ContentObserver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.support.v4.content.LocalBroadcastManager; import com.android.documentsui.AbstractActionHandler.CommonAddons; import com.android.documentsui.base.DocumentInfo; Loading @@ -39,8 +40,8 @@ import java.util.Collection; */ final class RootsMonitor<T extends Activity & CommonAddons> { private final ContentResolver mResolver; private final ContentObserver mObserver; private final LocalBroadcastManager mManager; private final BroadcastReceiver mReceiver; RootsMonitor( final T activity, Loading @@ -49,11 +50,11 @@ final class RootsMonitor<T extends Activity & CommonAddons> { final DocumentsAccess docs, final State state, final SearchViewManager searchMgr) { mResolver = activity.getContentResolver(); mManager = LocalBroadcastManager.getInstance(activity); mObserver = new ContentObserver(new Handler(Looper.getMainLooper())) { mReceiver = new BroadcastReceiver() { @Override public void onChange(boolean selfChange) { public void onReceive(Context context, Intent intent) { new HandleRootsChangedTask<T>( activity, actions, Loading @@ -66,11 +67,11 @@ final class RootsMonitor<T extends Activity & CommonAddons> { } void start() { mResolver.registerContentObserver(RootsAccess.NOTIFICATION_URI, false, mObserver); mManager.registerReceiver(mReceiver, new IntentFilter(RootsAccess.BROADCAST_ACTION)); } void stop() { mResolver.unregisterContentObserver(mObserver); mManager.unregisterReceiver(mReceiver); } private static class HandleRootsChangedTask<T extends Activity & CommonAddons> Loading
src/com/android/documentsui/roots/RootsAccess.java +1 −2 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ package com.android.documentsui.roots; import static com.android.documentsui.base.Shared.DEBUG; import static com.android.documentsui.base.Shared.VERBOSE; import android.net.Uri; import android.util.Log; import com.android.documentsui.base.MimeTypes; Loading @@ -36,7 +35,7 @@ import java.util.List; */ public interface RootsAccess { Uri NOTIFICATION_URI = Uri.parse("content://com.android.documentsui.roots/"); String BROADCAST_ACTION = "com.android.documentsui.action.ROOT_CHANGED"; /** * Return the requested {@link RootInfo}, but only loading the roots for the Loading
src/com/android/documentsui/roots/RootsCache.java +2 −2 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.os.Handler; import android.os.SystemClock; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Root; import android.support.v4.content.LocalBroadcastManager; import android.util.Log; import com.android.documentsui.DocumentsApplication; Loading Loading @@ -411,7 +412,6 @@ public class RootsCache implements RootsAccess { mTaskRoots.put(mRecentsRoot.authority, mRecentsRoot); final ContentResolver resolver = mContext.getContentResolver(); final PackageManager pm = mContext.getPackageManager(); // Pick up provider with action string Loading @@ -434,7 +434,7 @@ public class RootsCache implements RootsAccess { mStoppedAuthorities = mTaskStoppedAuthorities; } mFirstLoad.countDown(); resolver.notifyChange(NOTIFICATION_URI, null, false); LocalBroadcastManager.getInstance(mContext).sendBroadcast(new Intent(BROADCAST_ACTION)); return null; } Loading
src/com/android/documentsui/roots/RootsLoader.java +13 −4 Original line number Diff line number Diff line Loading @@ -17,7 +17,11 @@ package com.android.documentsui.roots; import android.content.AsyncTaskLoader; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.support.v4.content.LocalBroadcastManager; import com.android.documentsui.base.RootInfo; import com.android.documentsui.base.State; Loading @@ -25,7 +29,12 @@ import com.android.documentsui.base.State; import java.util.Collection; public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> { private final ForceLoadContentObserver mObserver = new ForceLoadContentObserver(); private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { onContentChanged(); } }; private final RootsCache mRoots; private final State mState; Loading @@ -37,8 +46,8 @@ public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> { mRoots = roots; mState = state; context.getContentResolver().registerContentObserver( RootsAccess.NOTIFICATION_URI, false, mObserver); LocalBroadcastManager.getInstance(context).registerReceiver( mReceiver, new IntentFilter(RootsAccess.BROADCAST_ACTION)); } @Override Loading Loading @@ -83,6 +92,6 @@ public class RootsLoader extends AsyncTaskLoader<Collection<RootInfo>> { mResult = null; getContext().getContentResolver().unregisterContentObserver(mObserver); LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mReceiver); } }