Merge "DocumentsUI roots can have settings."
This commit is contained in:
@@ -107,7 +107,12 @@ public final class DocumentsContract {
|
||||
public static final String ACTION_MANAGE_DOCUMENT = "android.provider.action.MANAGE_DOCUMENT";
|
||||
|
||||
/** {@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.
|
||||
@@ -476,6 +481,15 @@ public final class DocumentsContract {
|
||||
* @hide
|
||||
*/
|
||||
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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
<data android:mimeType="vnd.android.document/root" />
|
||||
</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" />
|
||||
<data android:mimeType="vnd.android.document/root" />
|
||||
</intent-filter>
|
||||
|
||||
@@ -60,4 +60,8 @@
|
||||
<item
|
||||
android:id="@+id/menu_file_size"
|
||||
android:showAsAction="never" />
|
||||
<item
|
||||
android:id="@+id/menu_settings"
|
||||
android:title="@string/menu_settings"
|
||||
android:showAsAction="never" />
|
||||
</menu>
|
||||
|
||||
@@ -235,7 +235,7 @@ public class DocumentsActivity extends BaseActivity {
|
||||
mState.action = ACTION_OPEN_TREE;
|
||||
} else if (DocumentsContract.ACTION_MANAGE_ROOT.equals(action)) {
|
||||
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;
|
||||
} else if (ACTION_OPEN_COPY_DESTINATION_STRING.equals(action)) {
|
||||
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 advanced = menu.findItem(R.id.menu_advanced);
|
||||
final MenuItem fileSize = menu.findItem(R.id.menu_file_size);
|
||||
final MenuItem settings = menu.findItem(R.id.menu_settings);
|
||||
|
||||
sort.setVisible(cwd != null);
|
||||
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));
|
||||
fileSize.setVisible(fileSizeVisible);
|
||||
|
||||
settings.setVisible((mState.action == ACTION_MANAGE || mState.action == ACTION_BROWSE)
|
||||
&& (root.flags & Root.FLAG_HAS_SETTINGS) != 0);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -657,6 +661,13 @@ public class DocumentsActivity extends BaseActivity {
|
||||
} else if (id == R.id.menu_file_size) {
|
||||
setDisplayFileSize(!LocalPreferences.getDisplayFileSize(this));
|
||||
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 {
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
@@ -162,6 +162,7 @@ public class ExternalStorageProvider extends DocumentsProvider {
|
||||
} else {
|
||||
root.title = volume.getDescription(getContext());
|
||||
}
|
||||
root.flags |= Root.FLAG_HAS_SETTINGS;
|
||||
}
|
||||
root.docId = getDocIdForFile(path);
|
||||
mRoots.add(root);
|
||||
|
||||
Reference in New Issue
Block a user