diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2015-04-07 09:27:07 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2015-04-07 12:52:37 -0700 |
commit | 3b0883fcda88dd192549055a387fb41e1c2c17ad (patch) | |
tree | 29cf23c47c4febd8e4c7d1c6d1b6918a22da5038 /src/com/android/launcher3/Folder.java | |
parent | 50062408bfa63fda4485807aa6a4f93ed1e0eac8 (diff) | |
download | android_packages_apps_Trebuchet-3b0883fcda88dd192549055a387fb41e1c2c17ad.tar.gz android_packages_apps_Trebuchet-3b0883fcda88dd192549055a387fb41e1c2c17ad.tar.bz2 android_packages_apps_Trebuchet-3b0883fcda88dd192549055a387fb41e1c2c17ad.zip |
Fixing some RTL issues with scrollable folder
> folder name alingment
> scroll hint direction
> Fake animation direction for icons changing pages
Change-Id: Ia17ab2861a6d72c876806427e2de1682976b7671
Diffstat (limited to 'src/com/android/launcher3/Folder.java')
-rw-r--r-- | src/com/android/launcher3/Folder.java | 67 |
1 files changed, 28 insertions, 39 deletions
diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java index 4529a9459..1e1d1eeb4 100644 --- a/src/com/android/launcher3/Folder.java +++ b/src/com/android/launcher3/Folder.java @@ -77,11 +77,6 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList static final int STATE_OPEN = 2; /** - * Fraction of the width to scroll when showing the next page hint. - */ - private static final float SCROLL_HINT_FRACTION = 0.07f; - - /** * Time for which the scroll hint is shown before automatically changing page. */ public static final int SCROLL_HINT_DURATION = DragController.SCROLL_DELAY; @@ -656,42 +651,17 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList float x = r[0]; int currentPage = mPagedView.getNextPage(); - int cellWidth = mPagedView.getCurrentCellLayout().getCellWidth(); - if (currentPage > 0 && x < cellWidth * ICON_OVERSCROLL_WIDTH_FACTOR) { - // Show scroll hint on the left - if (mScrollHintDir != DragController.SCROLL_LEFT) { - mPagedView.showScrollHint(-SCROLL_HINT_FRACTION); - mScrollHintDir = DragController.SCROLL_LEFT; - } - - // Set alarm for when the hint is complete - if (!mOnScrollHintAlarm.alarmPending() || mCurrentScrollDir != DragController.SCROLL_LEFT) { - mCurrentScrollDir = DragController.SCROLL_LEFT; - mOnScrollHintAlarm.cancelAlarm(); - mOnScrollHintAlarm.setOnAlarmListener(new OnScrollHintListener(d)); - mOnScrollHintAlarm.setAlarm(SCROLL_HINT_DURATION); - mReorderAlarm.cancelAlarm(); - mTargetRank = mEmptyCellRank; - } - } else if (currentPage < (mPagedView.getPageCount() - 1) && - (x > (getWidth() - cellWidth * ICON_OVERSCROLL_WIDTH_FACTOR))) { - // Show scroll hint on the right - if (mScrollHintDir != DragController.SCROLL_RIGHT) { - mPagedView.showScrollHint(SCROLL_HINT_FRACTION); - mScrollHintDir = DragController.SCROLL_RIGHT; - } - - // Set alarm for when the hint is complete - if (!mOnScrollHintAlarm.alarmPending() || mCurrentScrollDir != DragController.SCROLL_RIGHT) { - mCurrentScrollDir = DragController.SCROLL_RIGHT; - mOnScrollHintAlarm.cancelAlarm(); - mOnScrollHintAlarm.setOnAlarmListener(new OnScrollHintListener(d)); - mOnScrollHintAlarm.setAlarm(SCROLL_HINT_DURATION); + float cellOverlap = mPagedView.getCurrentCellLayout().getCellWidth() + * ICON_OVERSCROLL_WIDTH_FACTOR; + boolean isOutsideLeftEdge = x < cellOverlap; + boolean isOutsideRightEdge = x > (getWidth() - cellOverlap); - mReorderAlarm.cancelAlarm(); - mTargetRank = mEmptyCellRank; - } + if (currentPage > 0 && (mPagedView.rtlLayout ? isOutsideRightEdge : isOutsideLeftEdge)) { + showScrollHint(DragController.SCROLL_LEFT, d); + } else if (currentPage < (mPagedView.getPageCount() - 1) + && (mPagedView.rtlLayout ? isOutsideLeftEdge : isOutsideRightEdge)) { + showScrollHint(DragController.SCROLL_RIGHT, d); } else { mOnScrollHintAlarm.cancelAlarm(); if (mScrollHintDir != DragController.SCROLL_NONE) { @@ -701,6 +671,25 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList } } + private void showScrollHint(int direction, DragObject d) { + // Show scroll hint on the right + if (mScrollHintDir != direction) { + mPagedView.showScrollHint(direction); + mScrollHintDir = direction; + } + + // Set alarm for when the hint is complete + if (!mOnScrollHintAlarm.alarmPending() || mCurrentScrollDir != direction) { + mCurrentScrollDir = direction; + mOnScrollHintAlarm.cancelAlarm(); + mOnScrollHintAlarm.setOnAlarmListener(new OnScrollHintListener(d)); + mOnScrollHintAlarm.setAlarm(SCROLL_HINT_DURATION); + + mReorderAlarm.cancelAlarm(); + mTargetRank = mEmptyCellRank; + } + } + OnAlarmListener mOnExitAlarmListener = new OnAlarmListener() { public void onAlarm(Alarm alarm) { completeDragExit(); |