diff options
-rw-r--r-- | res/layout/snapshots.xml | 4 | ||||
-rw-r--r-- | res/menu/snapshots_context.xml | 2 | ||||
-rw-r--r-- | res/values/strings.xml | 4 | ||||
-rw-r--r-- | src/com/android/browser/BaseUi.java | 6 | ||||
-rw-r--r-- | src/com/android/browser/Controller.java | 8 | ||||
-rw-r--r-- | src/com/android/browser/NavScreen.java | 6 | ||||
-rw-r--r-- | src/com/android/browser/NavigationBarPhone.java | 31 | ||||
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 25 | ||||
-rw-r--r-- | src/com/android/browser/PreloadController.java | 14 | ||||
-rw-r--r-- | src/com/android/browser/TabControl.java | 14 | ||||
-rw-r--r-- | src/com/android/browser/UI.java | 3 |
11 files changed, 65 insertions, 52 deletions
diff --git a/res/layout/snapshots.xml b/res/layout/snapshots.xml index 48d2883..54d4e01 100644 --- a/res/layout/snapshots.xml +++ b/res/layout/snapshots.xml @@ -33,8 +33,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" - android:textAppearance="?android:attr/textAppearanceLarge" - android:text="@string/empty_bookmarks_folder" + android:textAppearance="?android:attr/textAppearanceMedium" + android:text="@string/empty_snapshots_folder" android:visibility="gone" /> </FrameLayout> diff --git a/res/menu/snapshots_context.xml b/res/menu/snapshots_context.xml index 01880dd..af7a776 100644 --- a/res/menu/snapshots_context.xml +++ b/res/menu/snapshots_context.xml @@ -18,6 +18,6 @@ <group android:id="@+id/CONTEXT_MENU"> <item android:id="@+id/delete_context_menu_id" - android:title="@string/remove_bookmark"/> + android:title="@string/remove_snapshot"/> </group> </menu> diff --git a/res/values/strings.xml b/res/values/strings.xml index 39cd1a7..a33670a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1004,4 +1004,8 @@ <string name="ua_switcher_desktop">Desktop</string> <!-- Preload permission label [CHAR LIMIT=40] --> <string name="permission_preload_label">Preload results</string> + <!-- Empty text for the "saved pages" tab that is shown when no saved pages exist. [CHAR LIMIT=None] --> + <string name="empty_snapshots_folder">There are no saved pages.</string> + <!-- Menu option to delete the currently selected saved page [CHAR LIMIT=50] --> + <string name="remove_snapshot">Delete saved page</string> </resources> diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index d1445d8..b270dea 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -35,6 +35,7 @@ import android.util.Log; import android.view.Gravity; import android.view.LayoutInflater; import android.view.Menu; +import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; @@ -653,6 +654,11 @@ public abstract class BaseUi implements UI, OnTouchListener { } @Override + public boolean onOptionsItemSelected(MenuItem item) { + return false; + } + + @Override public void onOptionsMenuClosed(boolean inLoad) { } diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index 9b81870..8a4433e 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -1512,6 +1512,10 @@ public class Controller // won't get onKeyUp for MENU. So it is important to reset it here. mMenuIsDown = false; } + if (mUi.onOptionsItemSelected(item)) { + // ui callback handled it + return true; + } switch (item.getItemId()) { // -- Main menu case R.id.new_tab_menu_id: @@ -2462,10 +2466,6 @@ public class Controller boolean noModifiers = event.hasNoModifiers(); // Even if MENU is already held down, we need to call to super to open // the IME on long press. - if (KeyEvent.KEYCODE_MENU == keyCode) { - event.startTracking(); - return true; - } if (!noModifiers && ((KeyEvent.KEYCODE_MENU == keyCode) || (KeyEvent.KEYCODE_CTRL_LEFT == keyCode) diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java index 23317b5..ee20535 100644 --- a/src/com/android/browser/NavScreen.java +++ b/src/com/android/browser/NavScreen.java @@ -23,6 +23,7 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.view.ViewConfiguration; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.webkit.WebView; @@ -59,6 +60,7 @@ public class NavScreen extends RelativeLayout NavTabGallery mScroller; TabAdapter mAdapter; int mOrientation; + boolean mNeedsMenu; public NavScreen(Activity activity, UiController ctl, PhoneUi ui) { super(activity); @@ -122,6 +124,10 @@ public class NavScreen extends RelativeLayout ? LinearLayout.HORIZONTAL : LinearLayout.VERTICAL); // update state for active tab mScroller.setSelection(mUiController.getTabControl().getTabPosition(mUi.getActiveTab())); + mNeedsMenu = !ViewConfiguration.get(getContext()).hasPermanentMenuKey(); + if (!mNeedsMenu) { + mMore.setVisibility(View.GONE); + } } @Override diff --git a/src/com/android/browser/NavigationBarPhone.java b/src/com/android/browser/NavigationBarPhone.java index 2030169..400b695 100644 --- a/src/com/android/browser/NavigationBarPhone.java +++ b/src/com/android/browser/NavigationBarPhone.java @@ -167,30 +167,6 @@ public class NavigationBarPhone extends NavigationBarBase implements return mMenuShowing; } - void showMenu() { - // called from menu key, use tab switcher as anchor - mMenuShowing = true; - if (isEditingUrl()) { - stopEditingUrl(); - post(new Runnable() { - @Override - public void run() { - showMenu(); - } - }); - } else { - mBaseUi.getTitleBar().setSkipTitleBarAnimations(true); - mBaseUi.showTitleBar(); - mBaseUi.getTitleBar().setSkipTitleBarAnimations(false); - post(new Runnable() { - @Override - public void run() { - showMenu(mTabSwitcher); - } - }); - } - } - void showMenu(View anchor) { mMenuShowing = true; mPopupMenu = new PopupMenu(mContext, anchor); @@ -202,13 +178,6 @@ public class NavigationBarPhone extends NavigationBarBase implements mPopupMenu.show(); } - void dismissMenu() { - if (mPopupMenu != null) { - mPopupMenu.dismiss(); - mBaseUi.suggestHideTitleBar(); - } - } - @Override public void onDismiss(PopupMenu menu) { onMenuHidden(); diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index 9e3310b..28db6f0 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -23,6 +23,7 @@ import android.view.ActionMode; import android.view.Gravity; import android.view.KeyEvent; import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.webkit.WebView; import android.widget.FrameLayout; @@ -78,16 +79,6 @@ public class PhoneUi extends BaseUi { } @Override - public boolean onMenuKey() { - if (mNavigationBar.isMenuShowing()) { - mNavigationBar.dismissMenu(); - } else { - mNavigationBar.showMenu(); - } - return true; - } - - @Override public boolean dispatchKey(int code, KeyEvent event) { return false; } @@ -169,6 +160,20 @@ public class PhoneUi extends BaseUi { // menu handling callbacks @Override + public boolean onPrepareOptionsMenu(Menu menu) { + menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null)); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (mNavScreen != null) { + hideNavScreen(false); + } + return false; + } + + @Override public void onContextMenuCreated(Menu menu) { hideTitleBar(); } diff --git a/src/com/android/browser/PreloadController.java b/src/com/android/browser/PreloadController.java index 11586ea..652ea8e 100644 --- a/src/com/android/browser/PreloadController.java +++ b/src/com/android/browser/PreloadController.java @@ -81,11 +81,25 @@ public class PreloadController implements WebViewController { @Override public void onPageStarted(Tab tab, WebView view, Bitmap favicon) { if (LOGD_ENABLED) Log.d(LOGTAG, "onPageStarted()"); + if (view != null) { + // Clear history of all previously visited pages. When the + // user visits a preloaded tab, the only item in the history + // list should the currently viewed page. + view.clearHistory(); + } } @Override public void onPageFinished(Tab tab) { if (LOGD_ENABLED) Log.d(LOGTAG, "onPageFinished()"); + if (tab != null) { + final WebView view = tab.getWebView(); + if (view != null) { + // Clear history of all previously visited pages. When the + // user visits a preloaded tab. + view.clearHistory(); + } + } } @Override diff --git a/src/com/android/browser/TabControl.java b/src/com/android/browser/TabControl.java index 1be2016..6473c88 100644 --- a/src/com/android/browser/TabControl.java +++ b/src/com/android/browser/TabControl.java @@ -389,6 +389,11 @@ class TabControl { // ignore tab } else if (id == currentId || restoreAll) { Tab t = createNewTab(); + if (t == null) { + // We could "break" at this point, but we want + // sNextId to be set correctly. + continue; + } tabMap.put(id, t); // Me must set the current tab before restoring the state // so that all the client classes are set. @@ -416,11 +421,12 @@ class TabControl { // added the tab to the front as they are not current mTabQueue.add(0, t); } - // make sure that there is no id overlap between the restored - // and new tabs - sNextId = maxId + 1; - } + + // make sure that there is no id overlap between the restored + // and new tabs + sNextId = maxId + 1; + if (mCurrentTab == -1) { if (getTabCount() > 0) { setCurrentTab(getTab(0)); diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java index 4b58872..23897f7 100644 --- a/src/com/android/browser/UI.java +++ b/src/com/android/browser/UI.java @@ -22,6 +22,7 @@ import android.os.Bundle; import android.view.ActionMode; import android.view.KeyEvent; import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.webkit.WebChromeClient.CustomViewCallback; import android.webkit.WebView; @@ -102,6 +103,8 @@ public interface UI { public void onExtendedMenuOpened(); + public boolean onOptionsItemSelected(MenuItem item); + public void onOptionsMenuClosed(boolean inLoad); public void onExtendedMenuClosed(boolean inLoad); |