summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2016-09-07 14:45:09 -0700
committerHyunyoung Song <hyunyoungs@google.com>2016-09-07 21:46:21 +0000
commitda1c17c492d7e253a08a47dd2d79637177c4401d (patch)
treea91f0c054f22271a1a168b95a18dbb3190bc07d7 /src
parent551e5abfe1f308394519637b3a8fd749f3bca634 (diff)
downloadandroid_packages_apps_Trebuchet-da1c17c492d7e253a08a47dd2d79637177c4401d.tar.gz
android_packages_apps_Trebuchet-da1c17c492d7e253a08a47dd2d79637177c4401d.tar.bz2
android_packages_apps_Trebuchet-da1c17c492d7e253a08a47dd2d79637177c4401d.zip
Change all apps caret target bounding box
b/30400751 1) This also fixes the issue of apps drawer sliding up when page is swiped horizontally immediately above the hotseat area. 2) Disclaimer: this should be cp'ed to calgary. Hence, I tried to keep the diff small. Ideally, CaretDrawable animation handling should move to AllAppsHandleImageView via refactoring in follow up CL. Change-Id: I4d808ee2eeca53b40c0b4e4e0e364fef056e26c3 (cherry picked from commit 016eaeea99e163f0b5385cf660297e6c21ff21e5)
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/DeviceProfile.java1
-rw-r--r--src/com/android/launcher3/pageindicators/CaretDrawable.java13
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicator.java5
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java50
4 files changed, 28 insertions, 41 deletions
diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java
index e6802bd27..c9fd85a16 100644
--- a/src/com/android/launcher3/DeviceProfile.java
+++ b/src/com/android/launcher3/DeviceProfile.java
@@ -533,7 +533,6 @@ public class DeviceProfile {
} else {
// Put the page indicators above the hotseat
lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
- lp.width = LayoutParams.WRAP_CONTENT;
lp.height = pageIndicatorHeightPx;
lp.bottomMargin = hotseatBarHeightPx + mInsets.bottom;
}
diff --git a/src/com/android/launcher3/pageindicators/CaretDrawable.java b/src/com/android/launcher3/pageindicators/CaretDrawable.java
index 1451773af..4789f69f5 100644
--- a/src/com/android/launcher3/pageindicators/CaretDrawable.java
+++ b/src/com/android/launcher3/pageindicators/CaretDrawable.java
@@ -37,6 +37,7 @@ public class CaretDrawable extends Drawable {
private Paint mShadowPaint = new Paint();
private Paint mCaretPaint = new Paint();
private Path mPath = new Path();
+ private final int mCaretSizePx;
public CaretDrawable(Context context) {
final Resources res = context.getResources();
@@ -57,6 +58,18 @@ public class CaretDrawable extends Drawable {
mShadowPaint.setStyle(Paint.Style.STROKE);
mShadowPaint.setStrokeCap(Paint.Cap.ROUND);
mShadowPaint.setStrokeJoin(Paint.Join.ROUND);
+
+ mCaretSizePx = res.getDimensionPixelSize(R.dimen.all_apps_caret_size);
+ }
+
+ @Override
+ public int getIntrinsicHeight() {
+ return mCaretSizePx;
+ }
+
+ @Override
+ public int getIntrinsicWidth() {
+ return mCaretSizePx;
}
@Override
diff --git a/src/com/android/launcher3/pageindicators/PageIndicator.java b/src/com/android/launcher3/pageindicators/PageIndicator.java
index b53715d98..47c2ffb38 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicator.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicator.java
@@ -18,20 +18,21 @@ package com.android.launcher3.pageindicators;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
-import android.view.View;
+import android.widget.FrameLayout;
import com.android.launcher3.dynamicui.ExtractedColors;
/**
* Base class for a page indicator.
*/
-public abstract class PageIndicator extends View {
+public abstract class PageIndicator extends FrameLayout {
private CaretDrawable mCaretDrawable;
protected int mNumPages = 1;
public PageIndicator(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
+ setWillNotDraw(false);
}
public void setScroll(int currentScroll, int totalScroll) {}
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java b/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
index 0d771adb7..ca3a2dd09 100644
--- a/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
+++ b/src/com/android/launcher3/pageindicators/PageIndicatorLineCaret.java
@@ -15,14 +15,13 @@ import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
import android.util.Log;
import android.util.Property;
-import android.view.View;
import android.view.ViewConfiguration;
+import android.widget.ImageView;
import com.android.launcher3.Launcher;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.dynamicui.ExtractedColors;
-import com.android.launcher3.util.TransformingTouchDelegate;
/**
* A PageIndicator that briefly shows a fraction of a line when moving between pages.
@@ -60,10 +59,7 @@ public class PageIndicatorLineCaret extends PageIndicator {
private Paint mLinePaint;
private Launcher mLauncher;
private final int mLineHeight;
- private final TransformingTouchDelegate mTouchDelegate;
- private final int mTouchExtensionHeight;
- private final int mCaretSizePx;
- private final int mCaretWorkspaceOffsetPx;
+ private ImageView mAllAppsHandle;
private static final Property<PageIndicatorLineCaret, Integer> PAINT_ALPHA
= new Property<PageIndicatorLineCaret, Integer>(Integer.class, "paint_alpha") {
@@ -128,48 +124,26 @@ public class PageIndicatorLineCaret extends PageIndicator {
Resources res = context.getResources();
mLinePaint = new Paint();
mLinePaint.setAlpha(0);
- mCaretSizePx = res.getDimensionPixelSize(R.dimen.all_apps_caret_size);
- mCaretWorkspaceOffsetPx = res.getDimensionPixelSize(
- R.dimen.all_apps_caret_workspace_offset);
mLauncher = (Launcher) context;
- setOnTouchListener(mLauncher.getHapticFeedbackTouchListener());
- setOnClickListener(mLauncher);
- setOnLongClickListener(mLauncher);
- setOnFocusChangeListener(mLauncher.mFocusHandler);
- setCaretDrawable(new CaretDrawable(context));
mLineHeight = res.getDimensionPixelSize(R.dimen.dynamic_grid_page_indicator_line_height);
- mTouchExtensionHeight = res.getDimensionPixelSize(
- R.dimen.dynamic_grid_page_indicator_extra_touch_height);
- mTouchDelegate = new TransformingTouchDelegate(this);
- }
-
- @Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- mLauncher.getDragLayer().setTouchDelegate(mTouchDelegate);
+ setCaretDrawable(new CaretDrawable(context));
}
@Override
- protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
- super.onLayout(changed, left, top, right, bottom);
- // Top/center align the caret in the page indicator space
- int l = (right - left) / 2 - mCaretSizePx / 2;
- getCaretDrawable().setBounds(l, mCaretWorkspaceOffsetPx, l + mCaretSizePx,
- mCaretWorkspaceOffsetPx + mCaretSizePx);
-
- // The touch area is expanded below this view by #mTouchExtensionHeight
- // which extends to the top of the hotseat.
- View parent = mLauncher.getDragLayer();
- sTempCoords[0] = sTempCoords[1] = 0;
- Utilities.getDescendantCoordRelativeToAncestor(this, parent, sTempCoords, true);
- mTouchDelegate.setBounds(sTempCoords[0], sTempCoords[1], sTempCoords[0] + this.getWidth(),
- sTempCoords[1] + getHeight() + mTouchExtensionHeight);
+ protected void onFinishInflate() {
+ super.onFinishInflate();
+ mAllAppsHandle = (ImageView) findViewById(R.id.all_apps_handle);
+ mAllAppsHandle.setImageDrawable(getCaretDrawable());
+ mAllAppsHandle.setOnTouchListener(mLauncher.getHapticFeedbackTouchListener());
+ mAllAppsHandle.setOnClickListener(mLauncher);
+ mAllAppsHandle.setOnLongClickListener(mLauncher);
+ mAllAppsHandle.setOnFocusChangeListener(mLauncher.mFocusHandler);
+ mLauncher.setAllAppsButton(mAllAppsHandle);
}
@Override
protected void onDraw(Canvas canvas) {
- getCaretDrawable().draw(canvas);
if (mTotalScroll == 0 || mNumPagesFloat == 0) {
return;
}