diff options
Diffstat (limited to 'src')
-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 |
7 files changed, 53 insertions, 32 deletions
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(); |