Loading core/java/android/provider/DocumentsContract.java +15 −1 Original line number Original line Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; } } /** /** Loading packages/DocumentsUI/AndroidManifest.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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> Loading packages/DocumentsUI/res/menu/activity.xml +4 −0 Original line number Original line Diff line number Diff line Loading @@ -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> packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; } } Loading Loading @@ -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); } } Loading packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading Loading
core/java/android/provider/DocumentsContract.java +15 −1 Original line number Original line Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; } } /** /** Loading
packages/DocumentsUI/AndroidManifest.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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> Loading
packages/DocumentsUI/res/menu/activity.xml +4 −0 Original line number Original line Diff line number Diff line Loading @@ -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>
packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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; } } Loading Loading @@ -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); } } Loading
packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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); Loading