merge in ics-mr0-release history after reset to ics-mr0
diff --git a/res/menu/browser.xml b/res/menu/browser.xml
index 2b651c3..bf95574 100644
--- a/res/menu/browser.xml
+++ b/res/menu/browser.xml
@@ -44,12 +44,6 @@
android:icon="@drawable/ic_bookmark_on_holo_dark"
android:alphabeticShortcut="d"
android:visible="@bool/menu_show_bookmarks" />
- <item
- android:id="@+id/bookmarks_menu_id"
- android:title="@string/bookmarks"
- android:icon="@drawable/ic_bookmarks_history_holo_dark"
- android:alphabeticShortcut="b"
- android:visible="@bool/menu_show_bookmarks" />
<group
android:id="@+id/LIVE_MENU">
<item
@@ -74,6 +68,16 @@
android:id="@+id/snapshot_go_live"
android:title="@string/snapshot_go_live" />
</group>
+ <group
+ android:id="@+id/COMBO_MENU">
+ <item
+ android:id="@+id/history_menu_id"
+ android:title="@string/tab_history"
+ android:alphabeticShortcut="h" />
+ <item
+ android:id="@+id/snapshots_menu_id"
+ android:title="@string/tab_snapshots" />
+ </group>
<item
android:id="@+id/page_info_menu_id"
android:title="@string/page_info" />
@@ -97,8 +101,6 @@
android:alphabeticShortcut="j" />
<item android:id="@+id/homepage_menu_id"
android:alphabeticShortcut=" " />
- <item android:id="@+id/classic_history_menu_id"
- android:alphabeticShortcut="h" />
<item android:id="@+id/zoom_in_menu_id"
android:alphabeticShortcut="i" />
<item android:id="@+id/zoom_out_menu_id"
@@ -128,6 +130,8 @@
android:alphabeticShortcut="f" />
<item android:id="@+id/page_info_menu_id"
android:alphabeticShortcut="g" />
+ <item android:id="@+id/bookmarks_menu_id"
+ android:alphabeticShortcut="b" />
</group>
<!-- these items are toggled in and out of @+id/stop_reload_menu_id -->
<item android:id="@+id/stop_menu_id"
diff --git a/res/xml/accessibility_preferences.xml b/res/xml/accessibility_preferences.xml
index ac96e6e..8eca917 100644
--- a/res/xml/accessibility_preferences.xml
+++ b/res/xml/accessibility_preferences.xml
@@ -33,6 +33,12 @@
android:max="30" />
<com.android.browser.preferences.SeekBarSummaryPreference
+ android:key="double_tap_zoom"
+ android:title="@string/pref_zoom_on_double_tap"
+ android:defaultValue="5"
+ android:max="10" />
+
+ <com.android.browser.preferences.SeekBarSummaryPreference
android:key="min_font_size"
android:title="@string/pref_min_font_size"
android:defaultValue="0"
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 145178b..f92e53b 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -95,6 +95,11 @@
private static final int TEXT_ZOOM_START_VAL = 10;
// The size of a single step in the text zoom range, in percent
private static final int TEXT_ZOOM_STEP = 5;
+ // The initial value in the double tap zoom range
+ // This is what represents 100% in the SeekBarPreference range
+ private static final int DOUBLE_TAP_ZOOM_START_VAL = 5;
+ // The size of a single step in the double tap zoom range, in percent
+ private static final int DOUBLE_TAP_ZOOM_STEP = 5;
private static BrowserSettings sInstance;
@@ -248,6 +253,7 @@
settings.setForceUserScalable(forceEnableUserScalable());
settings.setPluginState(getPluginState());
settings.setTextZoom(getTextZoom());
+ settings.setDoubleTapZoom(getDoubleTapZoom());
settings.setAutoFillEnabled(isAutofillEnabled());
settings.setLayoutAlgorithm(getLayoutAlgorithm());
settings.setJavaScriptCanOpenWindowsAutomatically(!blockPopupWindows());
@@ -546,6 +552,15 @@
return (percent - 100) / TEXT_ZOOM_STEP + TEXT_ZOOM_START_VAL;
}
+ public int getAdjustedDoubleTapZoom(int rawValue) {
+ rawValue = (rawValue - DOUBLE_TAP_ZOOM_START_VAL) * DOUBLE_TAP_ZOOM_STEP;
+ return (int) ((rawValue + 100) * mFontSizeMult);
+ }
+
+ static int getRawDoubleTapZoom(int percent) {
+ return (percent - 100) / DOUBLE_TAP_ZOOM_STEP + DOUBLE_TAP_ZOOM_START_VAL;
+ }
+
public SharedPreferences getPreferences() {
return mPrefs;
}
@@ -579,6 +594,16 @@
mPrefs.edit().putInt(PREF_TEXT_ZOOM, getRawTextZoom(percent)).apply();
}
+ public int getDoubleTapZoom() {
+ requireInitialization();
+ int doubleTapZoom = mPrefs.getInt(PREF_DOUBLE_TAP_ZOOM, 5);
+ return getAdjustedDoubleTapZoom(doubleTapZoom);
+ }
+
+ public void setDoubleTapZoom(int percent) {
+ mPrefs.edit().putInt(PREF_DOUBLE_TAP_ZOOM, getRawDoubleTapZoom(percent)).apply();
+ }
+
// -----------------------------
// getter/setters for advanced_preferences.xml
// -----------------------------
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 0fc9b8a..9710669 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -357,7 +357,7 @@
getCurrentWebView().setJsFlags(jsFlags);
}
if (BrowserActivity.ACTION_SHOW_BOOKMARKS.equals(intent.getAction())) {
- bookmarksOrHistoryPicker(false);
+ bookmarksOrHistoryPicker(ComboViews.Bookmarks);
}
}
@@ -474,7 +474,7 @@
public void handleMessage(Message msg) {
switch (msg.what) {
case OPEN_BOOKMARKS:
- bookmarksOrHistoryPicker(false);
+ bookmarksOrHistoryPicker(ComboViews.Bookmarks);
break;
case FOCUS_NODE_HREF:
{
@@ -1204,7 +1204,7 @@
* Otherwise, start with the bookmarks tab.
*/
@Override
- public void bookmarksOrHistoryPicker(boolean startWithHistory) {
+ public void bookmarksOrHistoryPicker(ComboViews startView) {
if (mTabControl.getCurrentWebView() == null) {
return;
}
@@ -1216,8 +1216,7 @@
// Disable opening in a new window if we have maxed out the windows
extras.putBoolean(BrowserBookmarksPage.EXTRA_DISABLE_WINDOW,
!mTabControl.canCreateNewTab());
- mUi.showComboView(startWithHistory
- ? ComboViews.History : ComboViews.Bookmarks, extras);
+ mUi.showComboView(startView, extras);
}
// combo view callbacks
@@ -1520,6 +1519,7 @@
uaSwitcher.setChecked(isDesktopUa);
menu.setGroupVisible(R.id.LIVE_MENU, isLive);
menu.setGroupVisible(R.id.SNAPSHOT_MENU, !isLive);
+ menu.setGroupVisible(R.id.COMBO_MENU, false);
mUi.updateMenuState(tab, menu);
}
@@ -1554,7 +1554,15 @@
break;
case R.id.bookmarks_menu_id:
- bookmarksOrHistoryPicker(false);
+ bookmarksOrHistoryPicker(ComboViews.Bookmarks);
+ break;
+
+ case R.id.history_menu_id:
+ bookmarksOrHistoryPicker(ComboViews.History);
+ break;
+
+ case R.id.snapshots_menu_id:
+ bookmarksOrHistoryPicker(ComboViews.Snapshots);
break;
case R.id.add_bookmark_menu_id:
@@ -1634,17 +1642,13 @@
break;
case R.id.page_info_menu_id:
- mPageDialogsHandler.showPageInfo(mTabControl.getCurrentTab(), false, null);
+ showPageInfo();
break;
case R.id.snapshot_go_live:
goLive();
return true;
- case R.id.classic_history_menu_id:
- bookmarksOrHistoryPicker(true);
- break;
-
case R.id.share_page_menu_id:
Tab currentTab = mTabControl.getCurrentTab();
if (null == currentTab) {
@@ -1713,6 +1717,11 @@
t.loadUrl(t.getUrl(), null);
}
+ @Override
+ public void showPageInfo() {
+ mPageDialogsHandler.showPageInfo(mTabControl.getCurrentTab(), false, null);
+ }
+
public boolean onContextItemSelected(MenuItem item) {
// Let the History and Bookmark fragments handle menus they created.
if (item.getGroupId() == R.id.CONTEXT_MENU) {
@@ -2685,7 +2694,7 @@
switch(keyCode) {
case KeyEvent.KEYCODE_BACK:
if (mUi.isWebShowing()) {
- bookmarksOrHistoryPicker(true);
+ bookmarksOrHistoryPicker(ComboViews.History);
return true;
}
break;
diff --git a/src/com/android/browser/CrashRecoveryHandler.java b/src/com/android/browser/CrashRecoveryHandler.java
index 396985a..3202016 100644
--- a/src/com/android/browser/CrashRecoveryHandler.java
+++ b/src/com/android/browser/CrashRecoveryHandler.java
@@ -200,12 +200,13 @@
parcel.unmarshall(data, 0, data.length);
parcel.setDataPosition(0);
state = parcel.readBundle();
+ if (state != null && !state.isEmpty()) {
+ return state;
+ }
} catch (FileNotFoundException e) {
// No state to recover
- state = null;
} catch (Throwable e) {
Log.w(LOGTAG, "Failed to recover state!", e);
- state = null;
} finally {
parcel.recycle();
if (fin != null) {
@@ -214,9 +215,6 @@
} catch (IOException e) { }
}
}
- if (state != null && !state.isEmpty()) {
- return state;
- }
return null;
}
diff --git a/src/com/android/browser/IntentHandler.java b/src/com/android/browser/IntentHandler.java
index c76197d..e5ddb47 100644
--- a/src/com/android/browser/IntentHandler.java
+++ b/src/com/android/browser/IntentHandler.java
@@ -32,6 +32,7 @@
import android.text.TextUtils;
import android.util.Patterns;
+import com.android.browser.UI.ComboViews;
import com.android.browser.search.SearchEngine;
import com.android.common.Search;
import com.android.common.speech.LoggingEvents;
@@ -85,7 +86,7 @@
return;
}
if (BrowserActivity.ACTION_SHOW_BOOKMARKS.equals(action)) {
- mController.bookmarksOrHistoryPicker(false);
+ mController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
return;
}
diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java
index 14b1e84..d5b4347 100644
--- a/src/com/android/browser/NavScreen.java
+++ b/src/com/android/browser/NavScreen.java
@@ -26,7 +26,6 @@
import android.view.View.OnClickListener;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
-import android.webkit.WebView;
import android.widget.BaseAdapter;
import android.widget.FrameLayout;
import android.widget.ImageButton;
@@ -40,6 +39,7 @@
import com.android.browser.NavTabScroller.OnLayoutListener;
import com.android.browser.NavTabScroller.OnRemoveListener;
import com.android.browser.TabControl.OnThumbnailUpdatedListener;
+import com.android.browser.UI.ComboViews;
import java.util.HashMap;
@@ -89,7 +89,6 @@
@Override
public boolean onMenuItemClick(MenuItem item) {
- mUi.hideNavScreen(mUiController.getTabControl().getCurrentPosition(), false);
return mUiController.onOptionsItemSelected(item);
}
@@ -148,7 +147,7 @@
@Override
public void onClick(View v) {
if (mBookmarks == v) {
- mUiController.bookmarksOrHistoryPicker(false);
+ mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
} else if (mNewTab == v) {
openNewTab();
} else if (mMore == v) {
diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java
index a1e778d..2e206fb 100644
--- a/src/com/android/browser/NavigationBarPhone.java
+++ b/src/com/android/browser/NavigationBarPhone.java
@@ -80,6 +80,7 @@
mMore = findViewById(R.id.more);
mMore.setOnClickListener(this);
mComboIcon = findViewById(R.id.iconcombo);
+ mComboIcon.setOnClickListener(this);
mTitleContainer = findViewById(R.id.title_bg);
setFocusState(false);
Resources res = getContext().getResources();
@@ -164,6 +165,8 @@
showMenu(mMore);
} else if (mClearButton == v) {
mUrlInput.setText("");
+ } else if (mComboIcon == v) {
+ mUiController.showPageInfo();
} else {
super.onClick(v);
}
diff --git a/src/com/android/browser/NavigationBarTablet.java b/src/com/android/browser/NavigationBarTablet.java
index be3a9ab..ef29a49 100644
--- a/src/com/android/browser/NavigationBarTablet.java
+++ b/src/com/android/browser/NavigationBarTablet.java
@@ -31,6 +31,8 @@
import android.widget.ImageButton;
import android.widget.ImageView;
+import com.android.browser.UI.ComboViews;
+
import java.util.List;
public class NavigationBarTablet extends NavigationBarBase {
@@ -173,7 +175,7 @@
getContext().startActivity(intent);
}
} else if (mAllButton == v) {
- mUiController.bookmarksOrHistoryPicker(false);
+ mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
} else if (mSearchButton == v) {
mBaseUi.editUrl(true);
} else if (mStopButton == v) {
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index b0f3d74..ffcaaf8 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -194,34 +194,35 @@
@Override
public void updateMenuState(Tab tab, Menu menu) {
- MenuItem bm = menu.findItem(R.id.bookmarks_menu_id);
- if (bm != null) {
- boolean isDataUrl = false;
- if (tab != null) {
- String url = tab.getUrl();
- isDataUrl = DataUri.isDataUri(url);
- }
- bm.setVisible(!showingNavScreen() && !isDataUrl);
- }
- MenuItem nt = menu.findItem(R.id.new_tab_menu_id);
- if (nt != null) {
- nt.setVisible(!showingNavScreen());
- }
MenuItem abm = menu.findItem(R.id.add_bookmark_menu_id);
if (abm != null) {
abm.setVisible((tab != null) && !tab.isSnapshot() && !showingNavScreen());
}
+ MenuItem info = menu.findItem(R.id.page_info_menu_id);
+ if (info != null) {
+ info.setVisible(false);
+ }
+ MenuItem newtab = menu.findItem(R.id.new_tab_menu_id);
+ if (newtab != null && !mUseQuickControls) {
+ newtab.setVisible(false);
+ }
+ MenuItem incognito = menu.findItem(R.id.incognito_menu_id);
+ if (incognito != null) {
+ incognito.setVisible(showingNavScreen() || mUseQuickControls);
+ }
if (showingNavScreen()) {
menu.setGroupVisible(R.id.LIVE_MENU, false);
menu.setGroupVisible(R.id.SNAPSHOT_MENU, false);
- menu.findItem(R.id.page_info_menu_id).setVisible(false);
menu.setGroupVisible(R.id.NAV_MENU, false);
+ menu.setGroupVisible(R.id.COMBO_MENU, true);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
- if (showingNavScreen()) {
+ if (showingNavScreen()
+ && (item.getItemId() != R.id.history_menu_id)
+ && (item.getItemId() != R.id.snapshots_menu_id)) {
hideNavScreen(mUiController.getTabControl().getCurrentPosition(), false);
}
return false;
@@ -521,6 +522,9 @@
}
public void set(TitleBar tbar, WebView web) {
+ if (tbar == null || web == null) {
+ return;
+ }
if (tbar.getWidth() > 0 && tbar.getEmbeddedHeight() > 0) {
if (mTitleBarBitmap == null
|| mTitleBarBitmap.getWidth() != tbar.getWidth()
diff --git a/src/com/android/browser/PieControlXLarge.java b/src/com/android/browser/PieControlXLarge.java
index 0072aea..fcc8840 100644
--- a/src/com/android/browser/PieControlXLarge.java
+++ b/src/com/android/browser/PieControlXLarge.java
@@ -30,6 +30,7 @@
import android.widget.FrameLayout;
import android.widget.TextView;
+import com.android.browser.UI.ComboViews;
import com.android.browser.view.PieItem;
import com.android.browser.view.PieListView;
import com.android.browser.view.PieMenu.PieView.OnLayoutListener;
@@ -148,7 +149,7 @@
} else if (mUrl.getView() == v) {
mUi.editUrl(false);
} else if (mBookmarks.getView() == v) {
- mUiController.bookmarksOrHistoryPicker(false);
+ mUiController.bookmarksOrHistoryPicker(ComboViews.Bookmarks);
} else if (mNewTab.getView() == v) {
mUiController.openTabToHomePage();
mUi.editUrl(false);
diff --git a/src/com/android/browser/PreferenceKeys.java b/src/com/android/browser/PreferenceKeys.java
index 89fcbfc..15ccfe5 100644
--- a/src/com/android/browser/PreferenceKeys.java
+++ b/src/com/android/browser/PreferenceKeys.java
@@ -27,6 +27,7 @@
static final String PREF_MIN_FONT_SIZE = "min_font_size";
static final String PREF_TEXT_SIZE = "text_size";
static final String PREF_TEXT_ZOOM = "text_zoom";
+ static final String PREF_DOUBLE_TAP_ZOOM = "double_tap_zoom";
static final String PREF_FORCE_USERSCALABLE = "force_userscalable";
static final String PREF_INVERTED = "inverted";
static final String PREF_INVERTED_CONTRAST = "inverted_contrast";
diff --git a/src/com/android/browser/SnapshotBar.java b/src/com/android/browser/SnapshotBar.java
index 2fb90d2..51e1226 100644
--- a/src/com/android/browser/SnapshotBar.java
+++ b/src/com/android/browser/SnapshotBar.java
@@ -31,6 +31,8 @@
import android.widget.PopupMenu.OnMenuItemClickListener;
import android.widget.TextView;
+import com.android.browser.UI.ComboViews;
+
import java.text.DateFormat;
import java.util.Date;
@@ -164,7 +166,7 @@
@Override
public void onClick(View v) {
if (mBookmarks == v) {
- mTitleBar.getUiController().bookmarksOrHistoryPicker(false);
+ mTitleBar.getUiController().bookmarksOrHistoryPicker(ComboViews.Bookmarks);
} else if (mTabSwitcher == v) {
((PhoneUi) mTitleBar.getUi()).toggleNavScreen();
} else if (mOverflowMenu == v) {
diff --git a/src/com/android/browser/UiController.java b/src/com/android/browser/UiController.java
index 97e99a9..9b48c46 100644
--- a/src/com/android/browser/UiController.java
+++ b/src/com/android/browser/UiController.java
@@ -22,6 +22,7 @@
import android.view.MenuItem;
import android.webkit.WebView;
+import com.android.browser.UI.ComboViews;
import com.android.browser.UI.DropdownChangeListener;
import java.util.List;
@@ -63,7 +64,7 @@
Intent createBookmarkCurrentPageIntent(boolean canBeAnEdit);
- void bookmarksOrHistoryPicker(boolean openHistory);
+ void bookmarksOrHistoryPicker(ComboViews startView);
void startVoiceSearch();
@@ -103,4 +104,6 @@
Activity getActivity();
+ void showPageInfo();
+
}
diff --git a/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java b/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
index 6adfd23..c07c184 100644
--- a/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
+++ b/src/com/android/browser/preferences/AccessibilityPreferencesFragment.java
@@ -45,6 +45,9 @@
e = findPreference(PreferenceKeys.PREF_TEXT_ZOOM);
e.setOnPreferenceChangeListener(this);
updateTextZoomSummary(e, settings.getTextZoom());
+ e = findPreference(PreferenceKeys.PREF_DOUBLE_TAP_ZOOM);
+ e.setOnPreferenceChangeListener(this);
+ updateDoubleTapZoomSummary(e, settings.getDoubleTapZoom());
e = findPreference(PreferenceKeys.PREF_INVERTED_CONTRAST);
e.setOnPreferenceChangeListener(this);
updateInvertedContrastSummary(e, (int) (settings.getInvertedContrast() * 100));
@@ -59,6 +62,10 @@
pref.setSummary(mFormat.format(textZoom / 100.0));
}
+ void updateDoubleTapZoomSummary(Preference pref, int doubleTapZoom) {
+ pref.setSummary(mFormat.format(doubleTapZoom / 100.0));
+ }
+
void updateInvertedContrastSummary(Preference pref, int contrast) {
pref.setSummary(mFormat.format(contrast / 100.0));
}
@@ -80,6 +87,11 @@
updateTextZoomSummary(pref, settings
.getAdjustedTextZoom((Integer) objValue));
}
+ if (PreferenceKeys.PREF_DOUBLE_TAP_ZOOM.equals(pref.getKey())) {
+ BrowserSettings settings = BrowserSettings.getInstance();
+ updateDoubleTapZoomSummary(pref, settings
+ .getAdjustedDoubleTapZoom((Integer) objValue));
+ }
if (PreferenceKeys.PREF_INVERTED_CONTRAST.equals(pref.getKey())) {
updateInvertedContrastSummary(pref,
(int) ((10 + (Integer) objValue) * 10));
diff --git a/src/com/android/browser/provider/SnapshotProvider.java b/src/com/android/browser/provider/SnapshotProvider.java
index c0aad23..437a867 100644
--- a/src/com/android/browser/provider/SnapshotProvider.java
+++ b/src/com/android/browser/provider/SnapshotProvider.java
@@ -72,7 +72,7 @@
final static class SnapshotDatabaseHelper extends SQLiteOpenHelper {
static final String DATABASE_NAME = "snapshots.db";
- static final int DATABASE_VERSION = 1;
+ static final int DATABASE_VERSION = 2;
public SnapshotDatabaseHelper(Context context) {
super(context, getFullDatabaseName(context), null, DATABASE_VERSION);
@@ -99,7 +99,10 @@
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // Not needed yet
+ if (oldVersion < 2) {
+ db.execSQL("DROP TABLE " + TABLE_SNAPSHOTS);
+ onCreate(db);
+ }
}
}