summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/PieControl.java16
-rw-r--r--src/com/android/browser/TitleBarXLarge.java14
-rw-r--r--src/com/android/browser/UrlInputView.java6
-rw-r--r--src/com/android/browser/XLargeUi.java17
-rw-r--r--src/com/android/browser/view/PieMenu.java70
5 files changed, 93 insertions, 30 deletions
diff --git a/src/com/android/browser/PieControl.java b/src/com/android/browser/PieControl.java
index 23dcced69..2e2eba433 100644
--- a/src/com/android/browser/PieControl.java
+++ b/src/com/android/browser/PieControl.java
@@ -64,22 +64,22 @@ public class PieControl implements OnClickListener, PieMenu.PieController {
LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
mPie.setLayoutParams(lp);
- mForward = makeMenuView(R.drawable.ic_pie_forward);
- mPie.addItem(mForward);
- mRefresh = makeMenuView(R.drawable.ic_pie_refresh);
- mPie.addItem(mRefresh);
+ mNewTab = makeMenuView(R.drawable.ic_pie_new_tab);
+ mPie.addItem(mNewTab);
mBack = makeMenuView(R.drawable.ic_pie_back);
mPie.addItem(mBack);
mUrl = makeMenuView(R.drawable.ic_pie_web);
mPie.addItem(mUrl);
mBookmarks = makeMenuView(R.drawable.ic_pie_bookmarks);
mPie.addItem(mBookmarks);
- mNewTab = makeMenuView(R.drawable.ic_pie_new_tab);
- mPie.addItem(mNewTab);
mOptions = makeMenuView(R.drawable.ic_pie_more);
mPie.addItem(mOptions);
- setClickListener(mBack, mForward, mRefresh, mUrl, mOptions,
- mBookmarks, mNewTab);
+ setClickListener(mBack,
+ mUrl,
+ mOptions,
+ mBookmarks,
+ mNewTab
+ );
mPie.setController(this);
}
container.addView(mPie);
diff --git a/src/com/android/browser/TitleBarXLarge.java b/src/com/android/browser/TitleBarXLarge.java
index 14e7c7207..d5a6f9735 100644
--- a/src/com/android/browser/TitleBarXLarge.java
+++ b/src/com/android/browser/TitleBarXLarge.java
@@ -170,17 +170,6 @@ public class TitleBarXLarge extends TitleBarBase
mUseQuickControls = useQuickControls;
mUrlInput.setUseQuickControls(mUseQuickControls);
setLayoutParams(makeLayoutParams());
- if (mUseQuickControls) {
- mBackButton.setVisibility(View.GONE);
- mForwardButton.setVisibility(View.GONE);
- mStopButton.setVisibility(View.GONE);
- mAllButton.setVisibility(View.GONE);
- } else {
- mBackButton.setVisibility(View.VISIBLE);
- mForwardButton.setVisibility(View.VISIBLE);
- mStopButton.setVisibility(View.VISIBLE);
- mAllButton.setVisibility(View.VISIBLE);
- }
}
void setShowProgressOnly(boolean progress) {
@@ -207,6 +196,9 @@ public class TitleBarXLarge extends TitleBarBase
} else if (!mUrlInput.needsUpdate()) {
mUrlInput.dismissDropDown();
mUrlInput.hideIME();
+ if (mUseQuickControls) {
+ mUi.hideTitleBar();
+ }
}
mUrlInput.clearNeedsUpdate();
}
diff --git a/src/com/android/browser/UrlInputView.java b/src/com/android/browser/UrlInputView.java
index 2ec21111b..c9f4c6a9d 100644
--- a/src/com/android/browser/UrlInputView.java
+++ b/src/com/android/browser/UrlInputView.java
@@ -57,7 +57,6 @@ public class UrlInputView extends AutoCompleteTextView
private View mContainer;
private boolean mLandscape;
private boolean mIncognitoMode;
- private int mVOffset;
private boolean mNeedsUpdate;
public UrlInputView(Context context, AttributeSet attrs, int defStyle) {
@@ -84,7 +83,6 @@ public class UrlInputView extends AutoCompleteTextView
onConfigurationChanged(ctx.getResources().getConfiguration());
setThreshold(1);
setOnItemClickListener(this);
- mVOffset = 0;
mNeedsUpdate = false;
}
@@ -109,9 +107,6 @@ public class UrlInputView extends AutoCompleteTextView
}
void setUseQuickControls(boolean useQuickControls) {
- mVOffset = (useQuickControls
- ? (int) getResources().getDimension(R.dimen.dropdown_offset)
- : 0);
mAdapter.setReverseResults(useQuickControls);
}
@@ -159,7 +154,6 @@ public class UrlInputView extends AutoCompleteTextView
if (getLeft() != -getDropDownHorizontalOffset()) {
setDropDownHorizontalOffset(-getLeft());
}
- setDropDownVerticalOffset(mVOffset);
}
@Override
diff --git a/src/com/android/browser/XLargeUi.java b/src/com/android/browser/XLargeUi.java
index 8c7756b62..d3f83f9ad 100644
--- a/src/com/android/browser/XLargeUi.java
+++ b/src/com/android/browser/XLargeUi.java
@@ -32,6 +32,7 @@ import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebChromeClient.CustomViewCallback;
import android.webkit.WebView;
+import android.widget.FrameLayout;
import java.util.List;
@@ -333,7 +334,6 @@ public class XLargeUi extends BaseUi implements ScrollListener {
protected void showTitleBar() {
if (canShowTitleBar()) {
if (mUseQuickControls) {
- setTitleGravity(Gravity.BOTTOM);
mContentView.addView(mTitleBar);
} else {
setTitleGravity(Gravity.TOP);
@@ -347,9 +347,10 @@ public class XLargeUi extends BaseUi implements ScrollListener {
protected void hideTitleBar() {
if (isTitleBarShowing()) {
mTabBar.onHideTitleBar();
- setTitleGravity(Gravity.NO_GRAVITY);
if (mUseQuickControls) {
mContentView.removeView(mTitleBar);
+ } else {
+ setTitleGravity(Gravity.NO_GRAVITY);
}
super.hideTitleBar();
}
@@ -364,6 +365,18 @@ public class XLargeUi extends BaseUi implements ScrollListener {
return mTitleBar;
}
+ @Override
+ protected void setTitleGravity(int gravity) {
+ if (mUseQuickControls) {
+ FrameLayout.LayoutParams lp =
+ (FrameLayout.LayoutParams) mTitleBar.getLayoutParams();
+ lp.gravity = gravity;
+ mTitleBar.setLayoutParams(lp);
+ } else {
+ super.setTitleGravity(gravity);
+ }
+ }
+
// action mode callbacks
@Override
diff --git a/src/com/android/browser/view/PieMenu.java b/src/com/android/browser/view/PieMenu.java
index 5185adbbf..080c2579a 100644
--- a/src/com/android/browser/view/PieMenu.java
+++ b/src/com/android/browser/view/PieMenu.java
@@ -20,15 +20,21 @@ import com.android.browser.R;
import android.content.Context;
import android.content.res.Resources;
+import android.graphics.Bitmap;
+import android.graphics.BitmapShader;
import android.graphics.Canvas;
+import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Point;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
+import android.graphics.Shader;
+import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
+import android.view.SoundEffectConstants;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
@@ -64,6 +70,17 @@ public class PieMenu extends FrameLayout {
private boolean mDirty;
+ private Drawable mActiveDrawable;
+ private Drawable mInactiveDrawable;
+ private final Paint mActiveShaderPaint = new Paint();
+ private final Paint mInactiveShaderPaint = new Paint();
+ private final Matrix mActiveMatrix = new Matrix();
+ private final Matrix mInactiveMatrix = new Matrix();
+
+ private BitmapShader mActiveShader;
+ private BitmapShader mInactiveShader;
+
+
/**
* @param context
* @param attrs
@@ -111,6 +128,37 @@ public class PieMenu extends FrameLayout {
setDrawingCacheEnabled(false);
mCenter = new Point(0,0);
mDirty = true;
+ mActiveShaderPaint.setStyle(Paint.Style.FILL);
+ mActiveShaderPaint.setAntiAlias(true);
+
+ mInactiveShaderPaint.setStyle(Paint.Style.FILL);
+ mInactiveShaderPaint.setAntiAlias(true);
+ mActiveDrawable = res.getDrawable(R.drawable.qc_background_selected);
+ mInactiveDrawable = res.getDrawable(R.drawable.qc_background_normal);
+
+ Bitmap activeTexture = getDrawableAsBitmap(mActiveDrawable,
+ mActiveDrawable.getIntrinsicWidth(),
+ mActiveDrawable.getIntrinsicHeight());
+ Bitmap inactiveTexture = getDrawableAsBitmap(mInactiveDrawable,
+ mInactiveDrawable.getIntrinsicWidth(),
+ mInactiveDrawable.getIntrinsicHeight());
+
+ mActiveShader = new BitmapShader(activeTexture,
+ Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
+ mActiveShaderPaint.setShader(mActiveShader);
+
+ mInactiveShader = new BitmapShader(inactiveTexture,
+ Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
+ mInactiveShaderPaint.setShader(mInactiveShader);
+
+ }
+
+ private static Bitmap getDrawableAsBitmap(Drawable drawable, int width, int height) {
+ Bitmap b = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ Canvas c = new Canvas(b);
+ drawable.setBounds(0, 0, width, height);
+ drawable.draw(c);
+ return b;
}
public void setController(PieController ctl) {
@@ -268,10 +316,15 @@ public class PieMenu extends FrameLayout {
tag.sweep = sweep;
tag.inner = inner;
tag.outer = outer;
-
- Paint p = item.isPressed() ? mSelectedPaint : mPaint;
- canvas.drawPath(slice, p);
int state = canvas.save();
+ int[] topLeft = new int[2];
+ getLocationInWindow(topLeft);
+ topLeft[0] = mCenter.x - outer;
+ topLeft[1] = mCenter.y - outer;
+ Paint paint = item.isPressed() ? mActiveShaderPaint : mInactiveShaderPaint;
+ drawClipped(canvas, paint, slice, topLeft, item.isPressed());
+ canvas.restoreToCount(state);
+ state = canvas.save();
if (onTheLeft()) {
canvas.scale(-1, 1);
}
@@ -287,6 +340,16 @@ public class PieMenu extends FrameLayout {
return newanchor;
}
+ private void drawClipped(Canvas canvas, Paint paint, Path clipPath, int[] pos,
+ boolean selected) {
+ // TODO: We should change the matrix/shader only when needed
+ final Matrix matrix = selected ? mActiveMatrix : mInactiveMatrix;
+ matrix.setTranslate(pos[0], pos[1]);
+ (selected ? mActiveShader : mInactiveShader).setLocalMatrix(matrix);
+ canvas.drawPath(clipPath, paint);
+ }
+
+
/**
* converts a
* @param angle from 0..PI to Android degrees (clockwise starting at 3 o'clock)
@@ -391,6 +454,7 @@ public class PieMenu extends FrameLayout {
}
if (view != null) {
// clear up stack
+ playSoundEffect(SoundEffectConstants.CLICK);
MenuTag tag = (MenuTag) view.getTag();
int i = mStack.size() - 1;
while (i > 0) {