Finish when browsed root goes away.
If we're browsing a specific root, and that root went away, typically
due to formatting.
Bug: 21831184
Change-Id: Ie07607a81e32a7d82c88ad382658a471d47b905d
diff --git a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
index bba33be..fc46716 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java
@@ -25,7 +25,6 @@
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.concurrent.Executor;
@@ -97,6 +96,22 @@
}
@Override
+ public void onResume() {
+ super.onResume();
+
+ final State state = getDisplayState();
+ final RootInfo root = getCurrentRoot();
+
+ // If we're browsing a specific root, and that root went away, then we
+ // have no reason to hang around
+ if (state.action == State.ACTION_BROWSE && root != null) {
+ if (mRoots.getRootBlocking(root.authority, root.rootId) == null) {
+ finish();
+ }
+ }
+ }
+
+ @Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean showMenu = super.onCreateOptionsMenu(menu);