diff options
author | Ze G Riande <zriand@codeaurora.org> | 2015-06-03 11:15:24 -0700 |
---|---|---|
committer | jrizzoli <joey@cyanogenmoditalia.it> | 2015-08-28 13:15:45 +0200 |
commit | 2a675c288d856073ebe4139d2fad5299e483165d (patch) | |
tree | 90824a9952cff7dd756aede46059570c2638cc99 /src/com/android/browser/Controller.java | |
parent | 21dad566a57084c8c5eae66909f917ff7c1fd222 (diff) | |
download | android_packages_apps_Gello-2a675c288d856073ebe4139d2fad5299e483165d.tar.gz android_packages_apps_Gello-2a675c288d856073ebe4139d2fad5299e483165d.tar.bz2 android_packages_apps_Gello-2a675c288d856073ebe4139d2fad5299e483165d.zip |
Add reader mode option in popup menu
Reader mode use the DOM distiller to load the distilled version of a webpage
Reader mode is disabled by default and will be available only with the use
of the command line flag "reader-mode"
Change-Id: Ide36057cae4e71b94e8118cc767f600cd610b82e
Diffstat (limited to 'src/com/android/browser/Controller.java')
-rw-r--r-- | src/com/android/browser/Controller.java | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index 5563b627..5c6a9b8d 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -1952,6 +1952,11 @@ public class Controller } else { bookmark_icon.setChecked(false); } + + // update reader mode checkbox + MenuItem readerSwitcher = menu.findItem(R.id.reader_mode_menu_id); + readerSwitcher.setVisible(false); + readerSwitcher.setChecked(false); } @Override @@ -1964,6 +1969,9 @@ public class Controller boolean isLiveScheme = false; boolean isPageFinished = false; boolean isSavable = false; + + boolean isDistillable = false; + boolean isDistilled = false; resetMenuItems(menu); if (tab != null) { @@ -1973,6 +1981,9 @@ public class Controller isLiveScheme = UrlUtils.isLiveScheme(tab.getWebView().getUrl()); isPageFinished = (tab.getPageFinishedStatus() || !tab.inPageLoad()); isSavable = tab.getWebView().isSavable(); + + isDistillable = tab.isDistillable(); + isDistilled = tab.isDistilled(); } final MenuItem forward = menu.findItem(R.id.forward_menu_id); @@ -2001,11 +2012,19 @@ public class Controller setMenuItemVisibility(menu, R.id.add_to_homescreen, isLive && isLiveScheme && isPageFinished); setMenuItemVisibility(menu, R.id.save_snapshot_menu_id, - isLive && isLiveScheme && isPageFinished && isSavable); + isLive && ( isLiveScheme || isDistilled ) && isPageFinished && isSavable); // history and snapshots item are the members of COMBO menu group, // so if show history item, only make snapshots item invisible. menu.findItem(R.id.snapshots_menu_id).setVisible(false); + + // update reader mode checkbox + final MenuItem readerSwitcher = menu.findItem(R.id.reader_mode_menu_id); + // The reader mode checkbox is hidden only + // when the current page is neither distillable nor distilled + readerSwitcher.setVisible(isDistillable || isDistilled); + readerSwitcher.setChecked(isDistilled); + mUi.updateMenuState(tab, menu); } @@ -2154,6 +2173,10 @@ public class Controller toggleUserAgent(); break; + case R.id.reader_mode_menu_id: + toggleReaderMode(); + break; + case R.id.window_one_menu_id: case R.id.window_two_menu_id: case R.id.window_three_menu_id: @@ -2294,6 +2317,17 @@ public class Controller mSettings.toggleDesktopUseragent(web); } + // This function calls the method in the webview to enable/disable + // the reader mode through the DOM distiller + public void toggleReaderMode() { + Tab t = mTabControl.getCurrentTab(); + if (t.isDistilled()) { + closeTab(t); + } else if (t.isDistillable()) { + openTab(t.getDistilledUrl(), false, true, false, t); + } + } + @Override public void findOnPage() { getCurrentTopWebView().showFindDialog(null, true); |