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

Commit 74c59c4a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Additional tidy up after Features." into arc-apps

parents a05773a8 710248d5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -440,6 +440,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>
        return mSelectionMgr.getSelection(new Selection());
    }

    @Override
    public ActionHandler reset(DirectoryReloadLock reloadLock) {
        mDirectoryReloadLock = reloadLock;
        mActivity.getLoaderManager().destroyLoader(LOADER_ID);
@@ -477,6 +478,7 @@ public abstract class AbstractActionHandler<T extends Activity & CommonAddons>
                                + DocumentInfo.debugString(mState.stack.peek()));

                return new DirectoryLoader(
                        mInjector.features,
                        context,
                        mState.stack.getRoot(),
                        mState.stack.peek(),
+8 −3
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.util.Log;
import com.android.documentsui.archives.ArchivesProvider;
import com.android.documentsui.base.DebugFlags;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Features;
import com.android.documentsui.base.FilteringCursorWrapper;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.roots.RootCursorWrapper;
@@ -61,7 +62,10 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
    private CancellationSignal mSignal;
    private DirectoryResult mResult;

    private Features mFeatures;

    public DirectoryLoader(
            Features freatures,
            Context context,
            RootInfo root,
            DocumentInfo doc,
@@ -71,6 +75,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
            boolean inSearchMode) {

        super(context, ProviderExecutor.forAuthority(root.authority));
        mFeatures = freatures;
        mRoot = root;
        mUri = uri;
        mModel = model;
@@ -104,7 +109,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
            result.client = client;

            Resources resources = getContext().getResources();
            if (resources.getBoolean(R.bool.feature_content_paging)) {
            if (mFeatures.isContentPagingEnabled()) {
                Bundle queryArgs = new Bundle();
                mModel.addQuerySortArgs(queryArgs);

@@ -126,14 +131,14 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {

            cursor = new RootCursorWrapper(mUri.getAuthority(), mRoot.rootId, cursor, -1);

            if (mSearchMode && !resources.getBoolean(R.bool.feature_folders_in_search_results)) {
            if (mSearchMode && !mFeatures.isFoldersInSearchResultsEnabled()) {
                // There is no findDocumentPath API. Enable filtering on folders in search mode.
                cursor = new FilteringCursorWrapper(cursor, null, SEARCH_REJECT_MIMES);
            }

            // TODO: When API tweaks have landed, use ContentResolver.EXTRA_HONORED_ARGS
            // instead of checking directly for ContentResolver.QUERY_ARG_SORT_COLUMNS (won't work)
            if (resources.getBoolean(R.bool.feature_content_paging)
            if (mFeatures.isContentPagingEnabled()
                        && cursor.getExtras().containsKey(ContentResolver.QUERY_ARG_SORT_COLUMNS)) {
                if (VERBOSE) Log.d(TAG, "Skipping sort of pre-sorted cursor. Booya!");
            } else {
+2 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons
                getColor(R.color.accent_dark));

        mInjector.menuManager = new MenuManager(
                mInjector.prefs,
                mInjector.features,
                mSearchManager,
                mState,
                new DirectoryDetails(this) {
@@ -286,6 +286,7 @@ public class FilesActivity extends BaseActivity implements ActionHandler.Addons
     * @deprecated use {@link ActionHandler#onDocumentPicked(DocumentInfo)}
     * @param doc
     */
    @Deprecated
    @Override
    public void onDocumentPicked(DocumentInfo doc) {
        mInjector.actions.onDocumentPicked(doc);
+6 −6
Original line number Diff line number Diff line
@@ -27,25 +27,25 @@ import android.view.View;

import com.android.documentsui.R;
import com.android.documentsui.base.DocumentInfo;
import com.android.documentsui.base.Features;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.Shared;
import com.android.documentsui.base.State;
import com.android.documentsui.prefs.ScopedPreferences;
import com.android.documentsui.queries.SearchViewManager;

import java.util.List;
import java.util.function.IntFunction;

public final class MenuManager extends com.android.documentsui.MenuManager {
    private final ScopedPreferences mPreferences;

    private final Features mFeatures;

    public MenuManager(
            ScopedPreferences preferences,
            Features features,
            SearchViewManager searchManager,
            State displayState,
            DirectoryDetails dirDetails) {
        super(searchManager, displayState, dirDetails);
        mPreferences = preferences;
        mFeatures = features;
    }

    @Override
@@ -185,7 +185,7 @@ public final class MenuManager extends com.android.documentsui.MenuManager {
    @Override
    protected void updateCompress(MenuItem compress, SelectionDetails selectionDetails) {
        final boolean readOnly = !mDirDetails.canCreateDoc();
        compress.setVisible(mPreferences.getEnableArchiveCreation());
        compress.setVisible(mFeatures.isArchiveCreationEnabled());
        compress.setEnabled(!readOnly && !selectionDetails.containsPartialFiles() &&
                !selectionDetails.canExtract());
    }
+2 −22
Original line number Diff line number Diff line
@@ -17,12 +17,9 @@ package com.android.documentsui.prefs;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.preference.PreferenceManager;
import android.text.TextUtils;

import com.android.documentsui.R;

/**
 * Provides an interface (and runtime implementation) for preferences that are
 * scoped (presumably to an activity). This eliminates the need to pass
@@ -37,29 +34,23 @@ public interface ScopedPreferences {
    boolean getShowDeviceRoot();
    void setShowDeviceRoot(boolean display);

    boolean getEnableArchiveCreation();
    void setEnableArchiveCreation(boolean enabled);

    /**
     * @param scope An arbitrary string representitive of the scope
     *        for prefs that are set using this object.
     */
    public static ScopedPreferences create(Context context, String scope) {
        return new RuntimeScopedPreferences(context.getResources(),
        return new RuntimeScopedPreferences(
                PreferenceManager.getDefaultSharedPreferences(context), scope);
    }

    static final class RuntimeScopedPreferences implements ScopedPreferences {

        private Resources mResources;
        private SharedPreferences mSharedPrefs;
        private String mScope;

        private RuntimeScopedPreferences(Resources resources, SharedPreferences sharedPrefs,
                String scope)  {
        private RuntimeScopedPreferences(SharedPreferences sharedPrefs, String scope)  {
            assert(!TextUtils.isEmpty(scope));

            mResources = resources;
            mSharedPrefs = sharedPrefs;
            mScope = scope;
        }
@@ -73,17 +64,6 @@ public interface ScopedPreferences {
        public void setShowDeviceRoot(boolean display) {
            mSharedPrefs.edit().putBoolean(INCLUDE_DEVICE_ROOT, display).apply();
        }

        @Override
        public boolean getEnableArchiveCreation() {
            final boolean defaultValue = mResources.getBoolean(R.bool.feature_archive_creation);
            return mSharedPrefs.getBoolean(ENABLE_ARCHIVE_CREATION + mScope, defaultValue);
        }

        @Override
        public void setEnableArchiveCreation(boolean enabled) {
            mSharedPrefs.edit().putBoolean(ENABLE_ARCHIVE_CREATION + mScope, enabled).apply();
        }
    }

    static boolean shouldBackup(String s) {
Loading