diff options
author | John Reck <jreck@google.com> | 2011-02-14 17:51:40 -0800 |
---|---|---|
committer | John Reck <jreck@google.com> | 2011-02-14 18:00:58 -0800 |
commit | d29abdacf608d4b2c38d267ffb619ad12ba7d8c5 (patch) | |
tree | 7f85e084841c02b222ffd895cf80b8cb0209151d /src/com/android/browser/PhoneUi.java | |
parent | 919b205f90b6befbb374ef5e4f8255a571808c86 (diff) | |
download | packages_apps_browser-d29abdacf608d4b2c38d267ffb619ad12ba7d8c5.zip packages_apps_browser-d29abdacf608d4b2c38d267ffb619ad12ba7d8c5.tar.gz packages_apps_browser-d29abdacf608d4b2c38d267ffb619ad12ba7d8c5.tar.bz2 |
Switch to ViewTunnel to handle phone ui
Change-Id: Ic81f39594cb9b9e1f909f671c2237bf02e90103b
Diffstat (limited to 'src/com/android/browser/PhoneUi.java')
-rw-r--r-- | src/com/android/browser/PhoneUi.java | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java index 73c1b99..a9ae25a 100644 --- a/src/com/android/browser/PhoneUi.java +++ b/src/com/android/browser/PhoneUi.java @@ -17,12 +17,17 @@ package com.android.browser; import android.app.Activity; +import android.content.Context; +import android.graphics.PixelFormat; import android.util.Log; import android.view.ActionMode; import android.view.Gravity; import android.view.KeyEvent; import android.view.Menu; +import android.view.MotionEvent; import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; import android.webkit.WebView; /** @@ -34,6 +39,7 @@ public class PhoneUi extends BaseUi { private TitleBar mTitleBar; private ActiveTabsPage mActiveTabsPage; + private TouchProxy mTitleOverlay; boolean mExtendedMenuOpen; boolean mOptionsMenuOpen; @@ -140,7 +146,7 @@ public class PhoneUi extends BaseUi { } @Override - void showTitleBar() { + protected void showTitleBar() { if (canShowTitleBar()) { setTitleGravity(Gravity.TOP); super.showTitleBar(); @@ -191,8 +197,14 @@ public class PhoneUi extends BaseUi { @Override public void onOptionsMenuOpened() { mOptionsMenuOpen = true; - // options menu opened, show fake title bar + // options menu opened, show title bar showTitleBar(); + if (mTitleOverlay == null) { + // This assumes that getTitleBar always returns the same View + mTitleOverlay = new TouchProxy(mActivity, getTitleBar()); + } + mActivity.getWindowManager().addView(mTitleOverlay, + mTitleOverlay.getWindowLayoutParams()); } @Override @@ -206,7 +218,8 @@ public class PhoneUi extends BaseUi { @Override public void onOptionsMenuClosed(boolean inLoad) { mOptionsMenuOpen = false; - if (!inLoad) { + mActivity.getWindowManager().removeView(mTitleOverlay); + if (!inLoad && !getTitleBar().hasFocus()) { hideTitleBar(); } } @@ -241,4 +254,29 @@ public class PhoneUi extends BaseUi { return false; } + static class TouchProxy extends View { + + View mTarget; + + TouchProxy(Context context, View target) { + super(context); + mTarget = target; + } + + @Override + public boolean dispatchTouchEvent(MotionEvent event) { + return mTarget.dispatchTouchEvent(event); + } + + WindowManager.LayoutParams getWindowLayoutParams() { + WindowManager.LayoutParams params = + new WindowManager.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, + ViewGroup.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.TYPE_APPLICATION, + WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, + PixelFormat.TRANSPARENT); + params.gravity = Gravity.TOP; + return params; + } + } } |