diff options
-rw-r--r-- | res/layout-land/nav_screen.xml | 18 | ||||
-rw-r--r-- | res/layout/nav_screen.xml | 18 | ||||
-rw-r--r-- | res/menu/browser.xml | 8 | ||||
-rw-r--r-- | res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/com/android/browser/BaseUi.java | 4 | ||||
-rw-r--r-- | src/com/android/browser/Controller.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/NavScreen.java | 6 | ||||
-rw-r--r-- | src/com/android/browser/NavTabGallery.java | 4 | ||||
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 23 | ||||
-rw-r--r-- | src/com/android/browser/UI.java | 2 | ||||
-rw-r--r-- | src/com/android/browser/view/Gallery.java | 44 |
11 files changed, 67 insertions, 64 deletions
diff --git a/res/layout-land/nav_screen.xml b/res/layout-land/nav_screen.xml index 8e10f02..5a3a037 100644 --- a/res/layout-land/nav_screen.xml +++ b/res/layout-land/nav_screen.xml @@ -32,28 +32,14 @@ android:id="@+id/newtab" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" style="@style/HoloButton" android:gravity="center_vertical" android:contentDescription="@string/accessibility_button_newtab" android:src="@drawable/ic_new_window_holo_dark" /> <ImageButton - android:id="@+id/newincognito" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" - style="@style/HoloButton" - android:gravity="center_vertical" - android:contentDescription="@string/accessibility_button_newincognitotab" - android:src="@drawable/ic_new_incognito_holo_dark" /> - <ImageButton android:id="@+id/bookmarks" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" android:contentDescription="@string/accessibility_button_bookmarks" android:src="@drawable/ic_bookmarks_history_holo_dark" style="@style/HoloButton" /> @@ -61,8 +47,8 @@ android:id="@+id/more" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" + android:paddingLeft="8dip" + android:paddingRight="8dip" style="@style/HoloButton" android:gravity="center_vertical" android:contentDescription="@string/accessibility_button_more" diff --git a/res/layout/nav_screen.xml b/res/layout/nav_screen.xml index 8ff4be3..4e00fa3 100644 --- a/res/layout/nav_screen.xml +++ b/res/layout/nav_screen.xml @@ -37,28 +37,14 @@ android:id="@+id/newtab" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" style="@style/HoloButton" android:gravity="center_vertical" android:contentDescription="@string/accessibility_button_newtab" android:src="@drawable/ic_new_window_holo_dark" /> <ImageButton - android:id="@+id/newincognito" - android:layout_width="wrap_content" - android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" - style="@style/HoloButton" - android:gravity="center_vertical" - android:contentDescription="@string/accessibility_button_newincognitotab" - android:src="@drawable/ic_new_incognito_holo_dark" /> - <ImageButton android:id="@+id/bookmarks" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" android:contentDescription="@string/accessibility_button_bookmarks" android:src="@drawable/ic_bookmarks_history_holo_dark" style="@style/HoloButton" /> @@ -66,8 +52,8 @@ android:id="@+id/more" android:layout_width="wrap_content" android:layout_height="match_parent" - android:paddingLeft="16dip" - android:paddingRight="16dip" + android:paddingLeft="8dip" + android:paddingRight="8dip" style="@style/HoloButton" android:gravity="center_vertical" android:contentDescription="@string/accessibility_button_more" diff --git a/res/menu/browser.xml b/res/menu/browser.xml index 0b46db6..1de97f7 100644 --- a/res/menu/browser.xml +++ b/res/menu/browser.xml @@ -28,10 +28,18 @@ android:icon="@*android:drawable/ic_menu_forward" /> </group> <item + android:id="@+id/new_tab_menu_id" + android:title="@string/menu_new_tab" + android:icon="@drawable/ic_new_window_holo_dark" /> + <item android:id="@+id/incognito_menu_id" android:title="@string/incognito_tab" android:icon="@drawable/ic_new_incognito_holo_dark" /> <item + android:id="@+id/bookmarks_menu_id" + android:title="@string/bookmarks" + android:icon="@drawable/ic_bookmarks_history_holo_dark" /> + <item android:id="@+id/add_bookmark_menu_id" android:title="@string/save_to_bookmarks" android:icon="@drawable/ic_bookmark_on_holo_dark" diff --git a/res/values/strings.xml b/res/values/strings.xml index 4ed6c21..d9667bc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -197,6 +197,8 @@ <string name="open_all_in_new_window">Open all in new windows</string> <!-- Menu item to open a dialog which allows the user to enter a url or do search--> <string name="goto_dot">Go</string> + <!-- Menu item that opens up a new tab. [CHAR LIMIT=30] --> + <string name="menu_new_tab">Open new tab</string> <!-- Menu item that opens up a new incognito tab. [CHAR LIMIT=30] --> <string name="incognito_tab">Open new incognito tab</string> <!-- Menu item to switch to text selection mode for copy and paste. --> diff --git a/src/com/android/browser/BaseUi.java b/src/com/android/browser/BaseUi.java index 091126c..372f2a9 100644 --- a/src/com/android/browser/BaseUi.java +++ b/src/com/android/browser/BaseUi.java @@ -646,6 +646,10 @@ public abstract class BaseUi implements UI, OnTouchListener { } @Override + public void updateMenuState(Tab tab, Menu menu) { + } + + @Override public void onOptionsMenuOpened() { } diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java index fc4c35c..f20968b 100644 --- a/src/com/android/browser/Controller.java +++ b/src/com/android/browser/Controller.java @@ -1520,6 +1520,7 @@ public class Controller MenuItem saveSnapshot = menu.findItem(R.id.save_snapshot_menu_id); saveSnapshot.setVisible(tab != null && !tab.isSnapshot()); + mUi.updateMenuState(tab, menu); } public boolean onOptionsItemSelected(MenuItem item) { @@ -2301,6 +2302,7 @@ public class Controller public void closeCurrentTab() { if (mTabControl.getTabCount() == 1) { mCrashRecoveryHandler.clearState(); + mTabControl.removeTab(getCurrentTab()); mActivity.finish(); return; } diff --git a/src/com/android/browser/NavScreen.java b/src/com/android/browser/NavScreen.java index 9c12ccf..face39e 100644 --- a/src/com/android/browser/NavScreen.java +++ b/src/com/android/browser/NavScreen.java @@ -52,7 +52,6 @@ public class NavScreen extends RelativeLayout ImageButton mBookmarks; ImageButton mMore; ImageButton mNewTab; - ImageButton mNewIncognito; FrameLayout mHolder; TextView mTitle; @@ -115,11 +114,9 @@ public class NavScreen extends RelativeLayout R.string.accessibility_transition_navscreen)); mBookmarks = (ImageButton) findViewById(R.id.bookmarks); mNewTab = (ImageButton) findViewById(R.id.newtab); - mNewIncognito = (ImageButton) findViewById(R.id.newincognito); mMore = (ImageButton) findViewById(R.id.more); mBookmarks.setOnClickListener(this); mNewTab.setOnClickListener(this); - mNewIncognito.setOnClickListener(this); mMore.setOnClickListener(this); mScroller = (NavTabGallery) findViewById(R.id.scroller); mAdapter = new TabAdapter(mContext, mUiController.getTabControl()); @@ -160,9 +157,6 @@ public class NavScreen extends RelativeLayout openNewTab(); } else if (mMore == v) { showMenu(); - } else if (mNewIncognito == v) { - mUi.hideNavScreen(true); - mUiController.openIncognitoTab(); } else if (mTitle == v) { mUi.getTitleBar().setSkipTitleBarAnimations(true); close(false); diff --git a/src/com/android/browser/NavTabGallery.java b/src/com/android/browser/NavTabGallery.java index 8247a5d..af02e8d 100644 --- a/src/com/android/browser/NavTabGallery.java +++ b/src/com/android/browser/NavTabGallery.java @@ -127,7 +127,7 @@ public class NavTabGallery extends Gallery { } private void animateOut(final View v, float velocity) { - if (mAnimator != null) return; + if ((v == null) || (mAnimator != null)) return; final int position = mFirstPosition + indexOfChild(v); int target = 0; if (velocity < 0) { @@ -151,7 +151,7 @@ public class NavTabGallery extends Gallery { setGapPosition(position, mHorizontal ? v.getWidth() : v.getHeight()); } mRemoveListener.onRemovePosition(position); - if (!needsGap && position > 0) { + if (!needsGap && (position > 0) && (mAdapter.getCount() > 0)) { scrollToChild(position - 1); } mAnimator = null; diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index 853d935..901f5bd 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -164,11 +164,32 @@ public class PhoneUi extends BaseUi { @Override public boolean onPrepareOptionsMenu(Menu menu) { - menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null)); + updateMenuState(mActiveTab, menu); return true; } @Override + public void updateMenuState(Tab tab, Menu menu) { + menu.setGroupVisible(R.id.NAV_MENU, (mNavScreen == null)); + MenuItem bm = menu.findItem(R.id.bookmarks_menu_id); + if (bm != null) { + bm.setVisible(mNavScreen == null); + } + MenuItem nt = menu.findItem(R.id.new_tab_menu_id); + if (nt != null) { + nt.setVisible(mNavScreen == null); + } + MenuItem find = menu.findItem(R.id.find_menu_id); + if (find != null) { + find.setVisible(((tab != null) && !tab.isSnapshot())); + } + MenuItem abm = menu.findItem(R.id.add_bookmark_menu_id); + if (abm != null) { + abm.setVisible((tab != null) && !tab.isSnapshot()); + } + } + + @Override public boolean onOptionsItemSelected(MenuItem item) { if (mNavScreen != null) { hideNavScreen(false); diff --git a/src/com/android/browser/UI.java b/src/com/android/browser/UI.java index 2984d5c..bc4c0cf 100644 --- a/src/com/android/browser/UI.java +++ b/src/com/android/browser/UI.java @@ -99,6 +99,8 @@ public interface UI { public boolean onPrepareOptionsMenu(Menu menu); + public void updateMenuState(Tab tab, Menu menu); + public void onOptionsMenuOpened(); public void onExtendedMenuOpened(); diff --git a/src/com/android/browser/view/Gallery.java b/src/com/android/browser/view/Gallery.java index 59e710d..78d4bc6 100644 --- a/src/com/android/browser/view/Gallery.java +++ b/src/com/android/browser/view/Gallery.java @@ -254,29 +254,27 @@ public class Gallery extends ViewGroup implements resetList(); mItemCount = mAdapter.getCount(); // checkFocus(); - int position = mItemCount > 0 ? 0 : INVALID_POSITION; - if (mSelectedPosition >= 0) { - position = Math.min(mItemCount - 1, mSelectedPosition); - } - setSelectedPositionInt(position); - if (mItemCount == 0) { - // Nothing selected - checkSelectionChanged(); - } - if (mGapPosition > INVALID_POSITION) { - mGapAnimator = ObjectAnimator.ofInt(this, "gap", mGap, 0); - mGapAnimator.setDuration(250); - mGapAnimator.addListener(new AnimatorListenerAdapter() { - @Override - public void onAnimationEnd(Animator a) { - mGapPosition = INVALID_POSITION; - mGap = 0; - mGapAnimator = null; - } - }); - mGapAnimator.start(); - } else { - layout(0, false); + if (mItemCount > 0) { + int position = 0; + if (mSelectedPosition >= 0) { + position = Math.min(mItemCount - 1, mSelectedPosition); + } + setSelectedPositionInt(position); + if (mGapPosition > INVALID_POSITION) { + mGapAnimator = ObjectAnimator.ofInt(this, "gap", mGap, 0); + mGapAnimator.setDuration(250); + mGapAnimator.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(Animator a) { + mGapPosition = INVALID_POSITION; + mGap = 0; + mGapAnimator = null; + } + }); + mGapAnimator.start(); + } else { + layout(0, false); + } } } else { // checkFocus(); |