Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
| index a21baaee261240b163ab83123410ed7339efb95e..f8e161139336c1c0a1081fd17bf22560244c5967 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkManager.java |
| @@ -25,6 +25,7 @@ import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver; |
| import org.chromium.chrome.browser.UrlConstants; |
| import org.chromium.chrome.browser.favicon.LargeIconBridge; |
| import org.chromium.chrome.browser.ntp.NewTabPageUma; |
| +import org.chromium.chrome.browser.offlinepages.OfflinePageUtils; |
| import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; |
| import org.chromium.chrome.browser.profiles.Profile; |
| import org.chromium.chrome.browser.snackbar.SnackbarManager; |
| @@ -293,7 +294,25 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
| if (!state.isValid(mEnhancedBookmarksModel)) { |
| state = UIState.createAllBookmarksState(mEnhancedBookmarksModel); |
| } |
| - if (!mStateStack.isEmpty()) { |
| + boolean saveUrl = true; |
| + if (mStateStack.isEmpty()) { |
|
Kibeom Kim (inactive)
2015/10/28 22:16:10
I think there is one corner case you want to cover
jianli
2015/10/28 23:22:50
Not sure I understand how to hit this corner case.
Kibeom Kim (inactive)
2015/10/29 00:30:09
Sorry! yeah you're right, I just re-read the code
|
| + // When offline page feature is enabled, show offline filter view if there is offline |
| + // page and there is no network connection. |
| + if (mEnhancedBookmarksModel.getOfflinePageBridge() != null |
| + && !mEnhancedBookmarksModel.getOfflinePageBridge().getAllPages().isEmpty() |
| + && !OfflinePageUtils.isConnected(ApplicationStatus.getApplicationContext())) { |
| + UIState filterState = UIState.createFilterState( |
| + EnhancedBookmarkFilter.OFFLINE_PAGES, mEnhancedBookmarksModel); |
| + if (state.mState != UIState.STATE_LOADING) { |
| + state = filterState; |
| + } else { |
| + state.mUrl = filterState.mUrl; |
| + } |
| + // Showing offline filter view is just a temporary thing and it will not be saved |
| + // to the preference. |
| + saveUrl = false; |
| + } |
| + } else { |
| if (mStateStack.peek().equals(state)) return; |
| if (mStateStack.peek().mState == UIState.STATE_LOADING) { |
| mStateStack.pop(); |
| @@ -302,7 +321,7 @@ public class EnhancedBookmarkManager implements EnhancedBookmarkDelegate { |
| mStateStack.push(state); |
| if (state.mState != UIState.STATE_LOADING) { |
| // Loading state may be pushed to the stack but should never be stored in preferences. |
| - saveUrlToPreference(state.mUrl); |
| + if (saveUrl) saveUrlToPreference(state.mUrl); |
| // If a loading state is replaced by another loading state, do not notify this change. |
| if (mUrlChangeListener != null) mUrlChangeListener.onBookmarkUIStateChange(state.mUrl); |
| } |