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

Commit 834a91dd authored by Jeff Sharkey's avatar Jeff Sharkey Committed by Android (Google) Code Review
Browse files

Merge "DocumentsUI roots can have settings."

parents 0a9bce97 1407d4c7
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -107,7 +107,12 @@ public final class DocumentsContract {
    public static final String ACTION_MANAGE_DOCUMENT = "android.provider.action.MANAGE_DOCUMENT";
    public static final String ACTION_MANAGE_DOCUMENT = "android.provider.action.MANAGE_DOCUMENT";


    /** {@hide} */
    /** {@hide} */
    public static final String ACTION_BROWSE_ROOT = "android.provider.action.BROWSE_ROOT";
    public static final String
            ACTION_BROWSE_DOCUMENT_ROOT = "android.provider.action.BROWSE_DOCUMENT_ROOT";

    /** {@hide} */
    public static final String
            ACTION_DOCUMENT_ROOT_SETTINGS = "android.provider.action.DOCUMENT_ROOT_SETTINGS";


    /**
    /**
     * Buffer is large enough to rewind past any EXIF headers.
     * Buffer is large enough to rewind past any EXIF headers.
@@ -476,6 +481,15 @@ public final class DocumentsContract {
         * @hide
         * @hide
         */
         */
        public static final int FLAG_ADVANCED = 1 << 17;
        public static final int FLAG_ADVANCED = 1 << 17;

        /**
         * Flag indicating that this root has settings.
         *
         * @see #COLUMN_FLAGS
         * @see DocumentsContract#ACTION_DOCUMENT_ROOT_SETTINGS
         * @hide
         */
        public static final int FLAG_HAS_SETTINGS = 1 << 18;
    }
    }


    /**
    /**
+1 −1
Original line number Original line Diff line number Diff line
@@ -41,7 +41,7 @@
                <data android:mimeType="vnd.android.document/root" />
                <data android:mimeType="vnd.android.document/root" />
            </intent-filter>
            </intent-filter>
            <intent-filter>
            <intent-filter>
                <action android:name="android.provider.action.BROWSE_ROOT" />
                <action android:name="android.provider.action.BROWSE_DOCUMENT_ROOT" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.DEFAULT" />
                <data android:mimeType="vnd.android.document/root" />
                <data android:mimeType="vnd.android.document/root" />
            </intent-filter>
            </intent-filter>
+4 −0
Original line number Original line Diff line number Diff line
@@ -60,4 +60,8 @@
    <item
    <item
        android:id="@+id/menu_file_size"
        android:id="@+id/menu_file_size"
        android:showAsAction="never" />
        android:showAsAction="never" />
    <item
        android:id="@+id/menu_settings"
        android:title="@string/menu_settings"
        android:showAsAction="never" />
</menu>
</menu>
+12 −1
Original line number Original line Diff line number Diff line
@@ -235,7 +235,7 @@ public class DocumentsActivity extends BaseActivity {
            mState.action = ACTION_OPEN_TREE;
            mState.action = ACTION_OPEN_TREE;
        } else if (DocumentsContract.ACTION_MANAGE_ROOT.equals(action)) {
        } else if (DocumentsContract.ACTION_MANAGE_ROOT.equals(action)) {
            mState.action = ACTION_MANAGE;
            mState.action = ACTION_MANAGE;
        } else if (DocumentsContract.ACTION_BROWSE_ROOT.equals(action)) {
        } else if (DocumentsContract.ACTION_BROWSE_DOCUMENT_ROOT.equals(action)) {
            mState.action = ACTION_BROWSE;
            mState.action = ACTION_BROWSE;
        } else if (ACTION_OPEN_COPY_DESTINATION_STRING.equals(action)) {
        } else if (ACTION_OPEN_COPY_DESTINATION_STRING.equals(action)) {
            mState.action = ACTION_OPEN_COPY_DESTINATION;
            mState.action = ACTION_OPEN_COPY_DESTINATION;
@@ -557,6 +557,7 @@ public class DocumentsActivity extends BaseActivity {
        final MenuItem list = menu.findItem(R.id.menu_list);
        final MenuItem list = menu.findItem(R.id.menu_list);
        final MenuItem advanced = menu.findItem(R.id.menu_advanced);
        final MenuItem advanced = menu.findItem(R.id.menu_advanced);
        final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
        final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
        final MenuItem settings = menu.findItem(R.id.menu_settings);


        sort.setVisible(cwd != null);
        sort.setVisible(cwd != null);
        grid.setVisible(mState.derivedMode != MODE_GRID);
        grid.setVisible(mState.derivedMode != MODE_GRID);
@@ -618,6 +619,9 @@ public class DocumentsActivity extends BaseActivity {
        advanced.setVisible(!(mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE));
        advanced.setVisible(!(mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE));
        fileSize.setVisible(fileSizeVisible);
        fileSize.setVisible(fileSizeVisible);


        settings.setVisible((mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE)
                && (root.flags & Root.FLAG_HAS_SETTINGS) != 0);

        return true;
        return true;
    }
    }


@@ -657,6 +661,13 @@ public class DocumentsActivity extends BaseActivity {
        } else if (id == R.id.menu_file_size) {
        } else if (id == R.id.menu_file_size) {
            setDisplayFileSize(!LocalPreferences.getDisplayFileSize(this));
            setDisplayFileSize(!LocalPreferences.getDisplayFileSize(this));
            return true;
            return true;
        } else if (id == R.id.menu_settings) {
            final RootInfo root = getCurrentRoot();
            final Intent intent = new Intent(DocumentsContract.ACTION_DOCUMENT_ROOT_SETTINGS);
            intent.setDataAndType(DocumentsContract.buildRootUri(root.authority, root.rootId),
                    DocumentsContract.Root.MIME_TYPE_ITEM);
            startActivity(intent);
            return true;
        } else {
        } else {
            return super.onOptionsItemSelected(item);
            return super.onOptionsItemSelected(item);
        }
        }
+1 −0
Original line number Original line Diff line number Diff line
@@ -162,6 +162,7 @@ public class ExternalStorageProvider extends DocumentsProvider {
                    } else {
                    } else {
                        root.title = volume.getDescription(getContext());
                        root.title = volume.getDescription(getContext());
                    }
                    }
                    root.flags |= Root.FLAG_HAS_SETTINGS;
                }
                }
                root.docId = getDocIdForFile(path);
                root.docId = getDocIdForFile(path);
                mRoots.add(root);
                mRoots.add(root);