Command line flag to disable edge navigation
Added ui-low-power-mode command line flag. If present, it
disables the edge navigation feature in SWE browser. In
future this flag can be used to disable other features
that need high CPU utilization.
Change-Id: I2e987be7edc4afa87ea138c9b602c3208fa88515
diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java
index c12b581..cd1388f 100644
--- a/src/com/android/browser/BaseUi.java
+++ b/src/com/android/browser/BaseUi.java
@@ -51,6 +51,7 @@
import com.android.browser.Tab.SecurityState;
+import org.codeaurora.swe.BrowserCommandLine;
import org.codeaurora.swe.WebView;
import java.util.List;
@@ -460,6 +461,10 @@
}
public void refreshEdgeSwipeController(View container) {
+ if (BrowserCommandLine.hasSwitch("ui-low-power-mode")) {
+ return;
+ }
+
if (mEdgeSwipeController != null) {
mEdgeSwipeController.cleanup();
}
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index a7157d0..64be289 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -64,6 +64,7 @@
import com.android.browser.provider.MyNavigationProvider;
import com.android.browser.provider.SnapshotProvider.Snapshots;
+import org.codeaurora.swe.BrowserCommandLine;
import org.codeaurora.swe.BrowserDownloadListener;
import org.codeaurora.swe.ClientCertRequestHandler;
import org.codeaurora.swe.HttpAuthHandler;
@@ -633,6 +634,10 @@
@Override
public void beforeNavigation(WebView view, String url) {
+ if (BrowserCommandLine.hasSwitch("ui-low-power-mode")) {
+ return;
+ }
+
if (isPrivateBrowsingEnabled()) {
return;
}
@@ -663,6 +668,10 @@
@Override
public void onHistoryItemCommit(WebView view, int index) {
+ if (BrowserCommandLine.hasSwitch("ui-low-power-mode")) {
+ return;
+ }
+
mTabHistoryUpdateObservable.set(index);
final int maxIdx = view.copyBackForwardList().getSize();
final WebView wv = view;
@@ -1382,7 +1391,8 @@
dismissSubWindow();
// save the WebView to call destroy() after detach it from the tab
final WebView webView = mMainView;
- if (!mWebViewDestroyedByMemoryMonitor) {
+ if (!mWebViewDestroyedByMemoryMonitor &&
+ !BrowserCommandLine.hasSwitch("ui-low-power-mode")) {
webView.getSnapshotIds(new ValueCallback<List<Integer>>() {
@Override
public void onReceiveValue(List<Integer> ids) {
diff --git a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
index 3641380..40e0106 100644
--- a/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AdvancedPreferencesFragment.java
@@ -36,6 +36,8 @@
import com.android.browser.PreferenceKeys;
import com.android.browser.R;
+import org.codeaurora.swe.BrowserCommandLine;
+
public class AdvancedPreferencesFragment
implements Preference.OnPreferenceChangeListener, Preference.OnPreferenceClickListener {
@@ -73,15 +75,19 @@
ListPreference edgeSwipePref =
(ListPreference) mFragment.findPreference("edge_swiping_action");
- String[] options = mFragment.getResources().getStringArray(
- R.array.pref_edge_swiping_values);
+ if (BrowserCommandLine.hasSwitch("ui-low-power-mode")) {
+ edgeSwipePref.setEnabled(false);
+ } else {
+ String[] options = mFragment.getResources().getStringArray(
+ R.array.pref_edge_swiping_values);
- String value = BrowserSettings.getInstance().getEdgeSwipeAction();
+ String value = BrowserSettings.getInstance().getEdgeSwipeAction();
- for (int i = 0; i < options.length; i++) {
- if (value.equals(options[i])) {
- edgeSwipePref.setValueIndex(i);
- break;
+ for (int i = 0; i < options.length; i++) {
+ if (value.equals(options[i])) {
+ edgeSwipePref.setValueIndex(i);
+ break;
+ }
}
}
}