Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9bd4099e authored by Jon Mann's avatar Jon Mann
Browse files

Refactor RootsCache+RootsAccess to ProvdersCache+ProvdersAccess

Test: verified success
Bug: 34219584
Change-Id: I16d5e7d70240626efc9020bd11b13c778fc2d95e
parent 0ef07d92
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ import com.android.documentsui.files.LauncherActivity;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.roots.GetRootDocumentTask;
import com.android.documentsui.roots.LoadRootTask;
import com.android.documentsui.roots.RootsAccess;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.selection.Selection;
import com.android.documentsui.selection.SelectionManager;
import com.android.documentsui.sidebar.EjectRootTask;
@@ -80,7 +80,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>

    protected final T mActivity;
    protected final State mState;
    protected final RootsAccess mRoots;
    protected final ProvidersAccess mProviders;
    protected final DocumentsAccess mDocs;
    protected final FocusHandler mFocusHandler;
    protected final SelectionManager mSelectionMgr;
@@ -108,7 +108,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>
    public AbstractActionHandler(
            T activity,
            State state,
            RootsAccess roots,
            ProvidersAccess providers,
            DocumentsAccess docs,
            SearchViewManager searchMgr,
            Lookup<String, Executor> executors,
@@ -116,14 +116,14 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>

        assert(activity != null);
        assert(state != null);
        assert(roots != null);
        assert(providers != null);
        assert(searchMgr != null);
        assert(docs != null);
        assert(injector != null);

        mActivity = activity;
        mState = state;
        mRoots = roots;
        mProviders = providers;
        mDocs = docs;
        mFocusHandler = injector.focusManager;
        mSelectionMgr = injector.selectionMgr;
@@ -373,7 +373,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>
    protected final void loadDocument(Uri uri, LoadDocStackCallback callback) {
        new LoadDocStackTask(
                mActivity,
                mRoots,
                mProviders,
                mDocs,
                callback
                ).executeOnExecutor(mExecutors.lookup(uri.getAuthority()), uri);
@@ -381,7 +381,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>

    @Override
    public final void loadRoot(Uri uri) {
        new LoadRootTask<>(mActivity, mRoots, mState, uri)
        new LoadRootTask<>(mActivity, mProviders, mState, uri)
                .executeOnExecutor(mExecutors.lookup(uri.getAuthority()));
    }

@@ -456,7 +456,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>
            if (mState.stack.isRecents()) {

                if (DEBUG) Log.d(TAG, "Creating new loader recents.");
                return new RecentsLoader(context, mRoots, mState, mInjector.features);
                return new RecentsLoader(context, mProviders, mState, mInjector.features);

            } else {

+7 −10
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.MessageQueue.IdleHandler;
import android.preference.PreferenceManager;
@@ -58,8 +57,7 @@ import com.android.documentsui.prefs.ScopedPreferences;
import com.android.documentsui.queries.CommandInterceptor;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.queries.SearchViewManager.SearchManagerListener;
import com.android.documentsui.roots.GetRootDocumentTask;
import com.android.documentsui.roots.RootsCache;
import com.android.documentsui.roots.ProvidersCache;
import com.android.documentsui.selection.Selection;
import com.android.documentsui.sidebar.RootsFragment;
import com.android.documentsui.sorting.SortController;
@@ -68,7 +66,6 @@ import com.android.documentsui.sorting.SortModel;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.Executor;

import javax.annotation.Nullable;

@@ -84,7 +81,7 @@ public abstract class BaseActivity
    protected Injector<?> mInjector;

    protected @Nullable RetainedState mRetainedState;
    protected RootsCache mRoots;
    protected ProvidersCache mProviders;
    protected DocumentsAccess mDocs;
    protected DrawerController mDrawer;

@@ -138,7 +135,7 @@ public abstract class BaseActivity
        // DirectoryFragment. So we do a little code yoga to extend
        // support to that fragment.
        mRetainedState = (RetainedState) getLastNonConfigurationInstance();
        mRoots = DocumentsApplication.getRootsCache(this);
        mProviders = DocumentsApplication.getProvidersCache(this);
        mDocs = DocumentsAccess.create(this);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
@@ -214,7 +211,7 @@ public abstract class BaseActivity
        mRootsMonitor = new RootsMonitor<>(
                this,
                mInjector.actions,
                mRoots,
                mProviders,
                mDocs,
                mState,
                mSearchManager);
@@ -307,7 +304,7 @@ public abstract class BaseActivity
        // Recents is always in memory, so we just load it directly.
        // Otherwise we delegate loading data from disk to a task
        // to ensure a responsive ui.
        if (mRoots.isRecentsRoot(root)) {
        if (mProviders.isRecentsRoot(root)) {
            refreshCurrentRootAndDirectory(AnimationView.ANIM_NONE);
        } else {
            mInjector.actions.getRootDocument(
@@ -408,7 +405,7 @@ public abstract class BaseActivity
        mNavigator.update();
        // Causes talkback to announce the activity's new title
        if (mState.stack.isRecents()) {
            setTitle(mRoots.getRecentsRoot().title);
            setTitle(mProviders.getRecentsRoot().title);
        } else {
            setTitle(mState.stack.getTitle());
        }
@@ -537,7 +534,7 @@ public abstract class BaseActivity
        if (root != null) {
            return root;
        } else {
            return mRoots.getRecentsRoot();
            return mProviders.getRecentsRoot();
        }
    }

+8 −8
Original line number Diff line number Diff line
@@ -31,18 +31,18 @@ import android.text.format.DateUtils;
import com.android.documentsui.clipping.ClipStorage;
import com.android.documentsui.clipping.ClipStore;
import com.android.documentsui.clipping.DocumentClipper;
import com.android.documentsui.roots.RootsCache;
import com.android.documentsui.roots.ProvidersCache;

public class DocumentsApplication extends Application {
    private static final long PROVIDER_ANR_TIMEOUT = 20 * DateUtils.SECOND_IN_MILLIS;

    private RootsCache mRoots;
    private ProvidersCache mProviders;
    private ThumbnailCache mThumbnailCache;
    private ClipStorage mClipStore;
    private DocumentClipper mClipper;

    public static RootsCache getRootsCache(Context context) {
        return ((DocumentsApplication) context.getApplicationContext()).mRoots;
    public static ProvidersCache getProvidersCache(Context context) {
        return ((DocumentsApplication) context.getApplicationContext()).mProviders;
    }

    public static ThumbnailCache getThumbnailCache(Context context) {
@@ -76,8 +76,8 @@ public class DocumentsApplication extends Application {
        final ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
        final int memoryClassBytes = am.getMemoryClass() * 1024 * 1024;

        mRoots = new RootsCache(this);
        mRoots.updateAsync(false);
        mProviders = new ProvidersCache(this);
        mProviders.updateAsync(false);

        mThumbnailCache = new ThumbnailCache(memoryClassBytes / 4);

@@ -112,9 +112,9 @@ public class DocumentsApplication extends Application {
            final Uri data = intent.getData();
            if (data != null) {
                final String packageName = data.getSchemeSpecificPart();
                mRoots.updatePackageAsync(packageName);
                mProviders.updatePackageAsync(packageName);
            } else {
                mRoots.updateAsync(true);
                mProviders.updateAsync(true);
            }
        }
    };
+5 −6
Original line number Diff line number Diff line
@@ -25,10 +25,9 @@ import android.util.Log;

import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.DocumentStack;
import com.android.documentsui.base.Features;
import com.android.documentsui.base.PairedTask;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.roots.RootsAccess;
import com.android.documentsui.roots.ProvidersAccess;

import java.util.List;

@@ -44,17 +43,17 @@ import java.util.List;
public class LoadDocStackTask extends PairedTask<Activity, Uri, DocumentStack> {
    private static final String TAG = "LoadDocStackTask";

    private final RootsAccess mRoots;
    private final ProvidersAccess mProviders;
    private final DocumentsAccess mDocs;
    private final LoadDocStackCallback mCallback;

    public LoadDocStackTask(
            Activity activity,
            RootsAccess roots,
            ProvidersAccess providers,
            DocumentsAccess docs,
            LoadDocStackCallback callback) {
        super(activity);
        mRoots = roots;
        mProviders = providers;
        mDocs = docs;
        mCallback = callback;
    }
@@ -99,7 +98,7 @@ public class LoadDocStackTask extends PairedTask<Activity, Uri, DocumentStack> {
            throw new IllegalStateException("Provider doesn't provider root id.");
        }

        RootInfo root = mRoots.getRootOneshot(authority, path.getRootId());
        RootInfo root = mProviders.getRootOneshot(authority, path.getRootId());
        if (root == null) {
            throw new IllegalStateException("Failed to load root for authority: " + authority +
                    " and root ID: " + path.getRootId() + ".");
+3 −3
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
import com.android.documentsui.base.State.ActionType;
import com.android.documentsui.files.LauncherActivity;
import com.android.documentsui.roots.RootsAccess;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.services.FileOperationService;
import com.android.documentsui.services.FileOperationService.OpType;
import com.android.internal.logging.MetricsLogger;
@@ -797,8 +797,8 @@ public final class Metrics {
                context.getContentResolver(), Providers.AUTHORITY_STORAGE)) {
            final Path path = DocumentsContract.findDocumentPath(client, docUri);

            final RootsAccess roots = DocumentsApplication.getRootsCache(context);
            final RootInfo root = roots.getRootOneshot(
            final ProvidersAccess providers = DocumentsApplication.getProvidersCache(context);
            final RootInfo root = providers.getRootOneshot(
                    Providers.AUTHORITY_STORAGE, path.getRootId());
            isInternal = !root.supportsEject();
        } catch (RemoteException | RuntimeException e) {
Loading