From 96c620595bd0585f934b0971b4552c57845e9a78 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 25 Oct 2013 16:30:54 -0700 Subject: [PATCH] Extra to always show advanced devices. Also always lower-case extension to extract MIME type correctly, we may want to fix in MimeUtils at some point. Bug: 11354402 Change-Id: I77d0c06a663cd0c4320c41553ff1980b6f9a7778 --- core/java/android/provider/DocumentsContract.java | 3 +++ .../src/com/android/documentsui/DocumentsActivity.java | 7 ++++++- .../src/com/android/documentsui/RootsFragment.java | 3 ++- .../android/externalstorage/ExternalStorageProvider.java | 4 ++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java index 7f8dca2f42408..09f5fe31ad1d9 100644 --- a/core/java/android/provider/DocumentsContract.java +++ b/core/java/android/provider/DocumentsContract.java @@ -81,6 +81,9 @@ public final class DocumentsContract { /** {@hide} */ public static final String EXTRA_PACKAGE_NAME = "android.content.extra.PACKAGE_NAME"; + /** {@hide} */ + public static final String EXTRA_SHOW_ADVANCED = "android.content.extra.SHOW_ADVANCED"; + /** * Included in {@link AssetFileDescriptor#getExtras()} when returned * thumbnail should be rotated. diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java index a9278d7ec9266..4212e963c9ee3 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java @@ -255,7 +255,9 @@ public class DocumentsActivity extends Activity { } mState.localOnly = intent.getBooleanExtra(Intent.EXTRA_LOCAL_ONLY, false); - mState.showAdvanced = SettingsActivity.getDisplayAdvancedDevices(this); + mState.forceAdvanced = intent.getBooleanExtra(DocumentsContract.EXTRA_SHOW_ADVANCED, false); + mState.showAdvanced = mState.forceAdvanced + | SettingsActivity.getDisplayAdvancedDevices(this); } private class RestoreRootTask extends AsyncTask { @@ -1136,6 +1138,7 @@ public class DocumentsActivity extends Activity { public boolean allowMultiple = false; public boolean showSize = false; public boolean localOnly = false; + public boolean forceAdvanced = false; public boolean showAdvanced = false; public boolean stackTouched = false; public boolean restored = false; @@ -1176,6 +1179,7 @@ public class DocumentsActivity extends Activity { out.writeInt(allowMultiple ? 1 : 0); out.writeInt(showSize ? 1 : 0); out.writeInt(localOnly ? 1 : 0); + out.writeInt(forceAdvanced ? 1 : 0); out.writeInt(showAdvanced ? 1 : 0); out.writeInt(stackTouched ? 1 : 0); out.writeInt(restored ? 1 : 0); @@ -1195,6 +1199,7 @@ public class DocumentsActivity extends Activity { state.allowMultiple = in.readInt() != 0; state.showSize = in.readInt() != 0; state.localOnly = in.readInt() != 0; + state.forceAdvanced = in.readInt() != 0; state.showAdvanced = in.readInt() != 0; state.stackTouched = in.readInt() != 0; state.restored = in.readInt() != 0; diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java index 58c5daf9b1939..931dac9f31b8f 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java @@ -136,7 +136,8 @@ public class RootsFragment extends Fragment { final Context context = getActivity(); final State state = ((DocumentsActivity) context).getDisplayState(); - state.showAdvanced = SettingsActivity.getDisplayAdvancedDevices(context); + state.showAdvanced = state.forceAdvanced + | SettingsActivity.getDisplayAdvancedDevices(context); if (state.action == ACTION_GET_CONTENT) { mList.setOnItemLongClickListener(mItemLongClickListener); diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java index d42354fa5c47b..65e3eeee124d9 100644 --- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java @@ -394,7 +394,7 @@ public class ExternalStorageProvider extends DocumentsProvider { private static String getTypeForName(String name) { final int lastDot = name.lastIndexOf('.'); if (lastDot >= 0) { - final String extension = name.substring(lastDot + 1); + final String extension = name.substring(lastDot + 1).toLowerCase(); final String mime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); if (mime != null) { return mime; @@ -411,7 +411,7 @@ public class ExternalStorageProvider extends DocumentsProvider { private static String removeExtension(String mimeType, String name) { final int lastDot = name.lastIndexOf('.'); if (lastDot >= 0) { - final String extension = name.substring(lastDot + 1); + final String extension = name.substring(lastDot + 1).toLowerCase(); final String nameMime = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); if (mimeType.equals(nameMime)) { return name.substring(0, lastDot);