summaryrefslogtreecommitdiff
path: root/src/com/android/launcher3/pageindicators
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2018-01-08 14:19:34 -0800
committerSunny Goyal <sunnygoyal@google.com>2018-01-10 15:13:25 -0800
commit07b6929cd94e6d55fb660f85baf1df840de48f46 (patch)
tree1a36a8f59b943d5440d72efa12d5ce2a2a027188 /src/com/android/launcher3/pageindicators
parent228153d92ae68c82efd3fcad4ad3df6af7fc24a2 (diff)
downloadLauncher3-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.java30
-rw-r--r--src/com/android/launcher3/pageindicators/PageIndicatorLine.java19
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);
+ }
}