summaryrefslogtreecommitdiffstats
path: root/src/com/android/browser/Controller.java
diff options
context:
space:
mode:
authorZe G Riande <zriand@codeaurora.org>2015-06-03 11:15:24 -0700
committerjrizzoli <joey@cyanogenmoditalia.it>2015-08-28 13:15:45 +0200
commit2a675c288d856073ebe4139d2fad5299e483165d (patch)
tree90824a9952cff7dd756aede46059570c2638cc99 /src/com/android/browser/Controller.java
parent21dad566a57084c8c5eae66909f917ff7c1fd222 (diff)
downloadandroid_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.java36
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);