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); |
} |