When canceling folder selection, go back to showing correct folder.
Bug:3364093
Change-Id: Ia50a601adb22a18570d9f8268c2c64185410bc99
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index a93a518..ee080ca 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -105,7 +105,7 @@
private View mFolderNamerHolder;
private View mAddNewFolder;
private View mAddSeparator;
- private long mCurrentFolder = 0;
+ private long mCurrentFolder;
private FolderAdapter mAdapter;
private BreadCrumbView mCrumbs;
private TextView mFakeTitle;
@@ -218,8 +218,26 @@
if (mSaveToHomeScreen) {
mFolder.setSelectionIgnoringSelectionChange(0);
} else {
- // FIXME: Need to find the actual folder.
- mFolder.setSelectionIgnoringSelectionChange(mEditingFolder ? 0 : 1);
+ if (mCurrentFolder == mRootFolder) {
+ mFolder.setSelectionIgnoringSelectionChange(mEditingFolder ? 0 : 1);
+ } else {
+ Object data = mCrumbs.getTopData();
+ if (data != null && ((Folder) data).Id == mCurrentFolder) {
+ // We are showing the correct folder heirarchy. The
+ // folder selector will say "Other folder..." Change it
+ // to say the name of the folder once again.
+ ((TextView) mFolder.getSelectedView()).setText(((Folder) data).Name);
+ } else {
+ // We are not be showing the correct folder heirarchy.
+ // Clear the Crumbs and find the proper folder
+ mCrumbs.clear();
+ setupTopCrumb();
+ LoaderManager manager = getLoaderManager();
+ manager.restartLoader(LOADER_ID_ALL_FOLDERS, null, this);
+ manager.restartLoader(LOADER_ID_FOLDER_CONTENTS, null, this);
+
+ }
+ }
}
}
}
@@ -709,11 +727,7 @@
if (mCurrentFolder == DEFAULT_FOLDER_ID) {
mCurrentFolder = mRootFolder;
}
- String name = getString(R.string.bookmarks);
- mTopLevelLabel = (TextView) mCrumbs.pushView(name, false,
- new Folder(name, mRootFolder));
- // To better match the other folders.
- mTopLevelLabel.setCompoundDrawablePadding(6);
+ setupTopCrumb();
if (mEditingExisting || TextUtils.isEmpty(mOriginalUrl)) {
onCurrentFolderFound();
} else {
@@ -724,6 +738,14 @@
}
}
+ private void setupTopCrumb() {
+ String name = getString(R.string.bookmarks);
+ mTopLevelLabel = (TextView) mCrumbs.pushView(name, false,
+ new Folder(name, mRootFolder));
+ // To better match the other folders.
+ mTopLevelLabel.setCompoundDrawablePadding(6);
+ }
+
private void onCurrentFolderFound() {
LoaderManager manager = getLoaderManager();
if (mCurrentFolder != mRootFolder) {