diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2018-01-08 14:19:34 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2018-01-10 15:13:25 -0800 |
commit | 07b6929cd94e6d55fb660f85baf1df840de48f46 (patch) | |
tree | 1a36a8f59b943d5440d72efa12d5ce2a2a027188 /src/com/android/launcher3/pageindicators | |
parent | 228153d92ae68c82efd3fcad4ad3df6af7fc24a2 (diff) | |
download | Launcher3-07b6929cd94e6d55fb660f85baf1df840de48f46.tar.gz |
Removing layout handling in DeviceProfile and moving it to
individual views
Bug: 71709920
Change-Id: I8300fa7a84b31898bdb135d774cca576d2928525
Diffstat (limited to 'src/com/android/launcher3/pageindicators')
-rw-r--r-- | src/com/android/launcher3/pageindicators/PageIndicatorLandscape.java | 30 | ||||
-rw-r--r-- | src/com/android/launcher3/pageindicators/PageIndicatorLine.java | 19 |
2 files changed, 45 insertions, 4 deletions
diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLandscape.java b/src/com/android/launcher3/pageindicators/PageIndicatorLandscape.java index 2d5a4a9385..d76998a43a 100644 --- a/src/com/android/launcher3/pageindicators/PageIndicatorLandscape.java +++ b/src/com/android/launcher3/pageindicators/PageIndicatorLandscape.java @@ -18,10 +18,16 @@ package com.android.launcher3.pageindicators; import static com.android.launcher3.LauncherState.ALL_APPS; import android.content.Context; +import android.graphics.Rect; import android.util.AttributeSet; +import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; +import android.view.ViewGroup.MarginLayoutParams; +import android.widget.FrameLayout; +import com.android.launcher3.DeviceProfile; +import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; import com.android.launcher3.userevent.nano.LauncherLogProto.Action; import com.android.launcher3.userevent.nano.LauncherLogProto.ControlType; @@ -31,9 +37,11 @@ import com.android.launcher3.userevent.nano.LauncherLogProto.ControlType; * a view with as large an area as we want (for touching) while maintaining a caret of size * all_apps_caret_size. Used only for the landscape layout. */ -public class PageIndicatorLandscape extends PageIndicator implements OnClickListener { +public class PageIndicatorLandscape extends PageIndicator implements OnClickListener, Insettable { // all apps pull up handle drawable. + private final Launcher mLauncher; + public PageIndicatorLandscape(Context context) { this(context, null); } @@ -45,7 +53,8 @@ public class PageIndicatorLandscape extends PageIndicator implements OnClickList public PageIndicatorLandscape(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setOnClickListener(this); - setOnFocusChangeListener(Launcher.getLauncher(context).mFocusHandler); + mLauncher = Launcher.getLauncher(context); + setOnFocusChangeListener(mLauncher.mFocusHandler); } @Override @@ -57,4 +66,21 @@ public class PageIndicatorLandscape extends PageIndicator implements OnClickList l.getStateManager().goToState(ALL_APPS); } } + + @Override + public void setInsets(Rect insets) { + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); + DeviceProfile grid = mLauncher.getDeviceProfile(); + if (insets.left > insets.right) { + lp.leftMargin = grid.hotseatBarSidePaddingPx; + lp.rightMargin = insets.right; + lp.gravity = Gravity.RIGHT | Gravity.BOTTOM; + } else { + lp.leftMargin = insets.left; + lp.rightMargin = grid.hotseatBarSidePaddingPx; + lp.gravity = Gravity.LEFT | Gravity.BOTTOM; + } + lp.bottomMargin = grid.workspacePadding.bottom; + setLayoutParams(lp); + } } diff --git a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java index 6c4b89820f..8c9642ccdd 100644 --- a/src/com/android/launcher3/pageindicators/PageIndicatorLine.java +++ b/src/com/android/launcher3/pageindicators/PageIndicatorLine.java @@ -9,12 +9,17 @@ import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; +import android.graphics.Rect; import android.os.Handler; import android.os.Looper; import android.util.AttributeSet; import android.util.Property; +import android.view.Gravity; import android.view.ViewConfiguration; +import android.widget.FrameLayout; +import com.android.launcher3.DeviceProfile; +import com.android.launcher3.Insettable; import com.android.launcher3.Launcher; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -25,7 +30,7 @@ import com.android.launcher3.dynamicui.WallpaperColorInfo; * * The fraction is 1 / number of pages and the position is based on the progress of the page scroll. */ -public class PageIndicatorLine extends PageIndicator { +public class PageIndicatorLine extends PageIndicator implements Insettable { private static final int LINE_ANIMATE_DURATION = ViewConfiguration.getScrollBarFadeDuration(); private static final int LINE_FADE_DELAY = ViewConfiguration.getScrollDefaultDelay(); @@ -39,6 +44,7 @@ public class PageIndicatorLine extends PageIndicator { private ValueAnimator[] mAnimators = new ValueAnimator[3]; private final Handler mDelayedLineFadeHandler = new Handler(Looper.getMainLooper()); + private final Launcher mLauncher; private boolean mShouldAutoHide = true; @@ -51,7 +57,6 @@ public class PageIndicatorLine extends PageIndicator { private int mCurrentScroll; private int mTotalScroll; private Paint mLinePaint; - private Launcher mLauncher; private final int mLineHeight; private static final Property<PageIndicatorLine, Integer> PAINT_ALPHA @@ -224,4 +229,14 @@ public class PageIndicatorLine extends PageIndicator { mAnimators[animatorIndex].setDuration(LINE_ANIMATE_DURATION); mAnimators[animatorIndex].start(); } + + @Override + public void setInsets(Rect insets) { + DeviceProfile grid = mLauncher.getDeviceProfile(); + FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) getLayoutParams(); + lp.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM; + lp.height = grid.pageIndicatorSizePx; + lp.bottomMargin = grid.hotseatBarSizePx + insets.bottom; + setLayoutParams(lp); + } } |