Merge "DocumentsUI roots can have settings."

This commit is contained in:
Jeff Sharkey
2015-04-13 05:18:47 +00:00
committed by Android (Google) Code Review
5 changed files with 33 additions and 3 deletions

View File

@@ -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;
}
/**

View File

@@ -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>

View File

@@ -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>

View File

@@ -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);
}

View File

@@ -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);