diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java index 3b300d0d74f18..e68ed13d78556 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java @@ -438,6 +438,17 @@ public abstract class BaseActivity extends Activity return mState; } + /* + * Get the default directory to be presented after starting the activity. + * Method can be overridden if the change of the behavior of the the child activity is needed. + */ + public Uri getDefaultRoot() { + return Shared.isHomeRootHidden(this) + ? DocumentsContract.buildRootUri("com.android.providers.downloads.documents", + "downloads") + : DocumentsContract.buildHomeUri(); + } + void setDisplayFileSize(boolean display) { LocalPreferences.setDisplayFileSize(this, display); mState.showSize = display; diff --git a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java index 770e35d631ba1..a94b40c86083e 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java @@ -108,9 +108,7 @@ public class DocumentsActivity extends BaseActivity { // we restore the stack as last used from that app. if (mState.action == ACTION_PICK_COPY_DESTINATION) { if (DEBUG) Log.d(TAG, "Launching directly into Home directory."); - Uri homeUri = DocumentsContract.buildHomeUri(); - new LoadRootTask(this, homeUri).executeOnExecutor( - ProviderExecutor.forAuthority(homeUri.getAuthority())); + loadRoot(getDefaultRoot()); } else { if (DEBUG) Log.d(TAG, "Attempting to load last used stack for calling package."); new LoadLastUsedStackTask(this).execute(); diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java index fe2dc8ee2e480..d3888e8494fa9 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java +++ b/packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java @@ -109,9 +109,7 @@ public class FilesActivity extends BaseActivity { loadRoot(uri); } else { if (DEBUG) Log.d(TAG, "All other means skipped. Launching into default directory."); - Uri defaultUri = DocumentsContract.buildRootUri( - "com.android.providers.downloads.documents", "downloads"); - loadRoot(defaultUri); + loadRoot(getDefaultRoot()); } final @DialogType int dialogType = intent.getIntExtra( diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java index 1864431e38a06..35da8cc6357b8 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java +++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java @@ -318,9 +318,9 @@ public class RootsFragment extends Fragment { for (final RootInfo root : roots) { final RootItem item = new RootItem(root); - if (root.isHome() && isHomeRootHidden(context)) { + if (root.isHome() && Shared.isHomeRootHidden(context)) { continue; - } else if (root.isAdvanced() && areAdvancedRootsHidden(context)) { + } else if (root.isAdvanced() && Shared.areAdvancedRootsHidden(context)) { continue; } else if (root.isLibrary()) { if (DEBUG) Log.d(TAG, "Adding " + root + " as library."); @@ -372,20 +372,6 @@ public class RootsFragment extends Fragment { } } - /* - * Indicates if the home directory should be hidden in the roots list. - */ - private boolean isHomeRootHidden(Context context) { - return context.getResources().getBoolean(R.bool.home_root_hidden); - } - - /* - * Indicates if the advanced roots should be hidden. - */ - private boolean areAdvancedRootsHidden(Context context) { - return context.getResources().getBoolean(R.bool.advanced_roots_hidden); - } - @Override public View getView(int position, View convertView, ViewGroup parent) { final Item item = getItem(position); diff --git a/packages/DocumentsUI/src/com/android/documentsui/Shared.java b/packages/DocumentsUI/src/com/android/documentsui/Shared.java index 6f1863e313c5c..e0d36d67aaeaf 100644 --- a/packages/DocumentsUI/src/com/android/documentsui/Shared.java +++ b/packages/DocumentsUI/src/com/android/documentsui/Shared.java @@ -169,4 +169,18 @@ public final class Shared { } } + /* + * Indicates if the home directory should be hidden in the roots list. + */ + public static boolean isHomeRootHidden(Context context) { + return context.getResources().getBoolean(R.bool.home_root_hidden); + } + + /* + * Indicates if the advanced roots should be hidden. + */ + public static boolean areAdvancedRootsHidden(Context context) { + return context.getResources().getBoolean(R.bool.advanced_roots_hidden); + } + }