Merge "Stop current root reloading when it is clicked again"
diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
index 497eb0e..d77fc14 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
@@ -201,6 +201,11 @@
void onStackRestored(boolean restored, boolean external) {}
void onRootPicked(RootInfo root) {
+ // Skip refreshing if root didn't change
+ if(root.equals(getCurrentRoot())) {
+ return;
+ }
+
mState.derivedMode = LocalPreferences.getViewMode(this, root, MODE_GRID);
// Clear entire backstack and start in new root
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
index c64953d..26bda312 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RootsFragment.java
@@ -180,9 +180,9 @@
Item item = mAdapter.getItem(position);
if (item instanceof RootItem) {
BaseActivity activity = BaseActivity.get(RootsFragment.this);
- RootInfo info = ((RootItem) item).root;
- Metrics.logRootVisited(getActivity(), info);
- activity.onRootPicked(info);
+ RootInfo newRoot = ((RootItem) item).root;
+ Metrics.logRootVisited(getActivity(), newRoot);
+ activity.onRootPicked(newRoot);
} else if (item instanceof AppItem) {
DocumentsActivity activity = DocumentsActivity.get(RootsFragment.this);
ResolveInfo info = ((AppItem) item).info;