diff options
| author | 2016-04-04 23:14:05 +0000 | |
|---|---|---|
| committer | 2016-04-04 23:14:07 +0000 | |
| commit | e9301ed60d3b013e17f157dae6920c414df1e60f (patch) | |
| tree | fea9d67292cd6d8015eb5917c874308f79f1e22f | |
| parent | 13af9845d4d6598dd64c4c8c99af93f92e7b56af (diff) | |
| parent | 4666cbd5069a3c07a8a2994ba9982ffea332c98d (diff) | |
Merge "Fix showing gear behind notification when RTL language selected" into nyc-dev
2 files changed, 17 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSettingsIconRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSettingsIconRow.java index a3e78c165b2f..88aafe0e61bb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSettingsIconRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationSettingsIconRow.java @@ -92,7 +92,7 @@ public class NotificationSettingsIconRow extends FrameLayout implements View.OnC mAnimating = false; mSnapping = false; mDismissing = false; - setIconLocation(true /* on left */); + setIconLocation(true /* on left */, true /* force */); if (mListener != null) { mListener.onSettingsIconRowReset(this); } @@ -104,6 +104,7 @@ public class NotificationSettingsIconRow extends FrameLayout implements View.OnC public void setNotificationRowParent(ExpandableNotificationRow parent) { mParent = parent; + setIconLocation(mOnLeft, true /* force */); } public void setAppName(String appName) { @@ -183,7 +184,7 @@ public class NotificationSettingsIconRow extends FrameLayout implements View.OnC if (isIconLocationChange(transX)) { setGearAlpha(0f); } - setIconLocation(transX > 0 /* fromLeft */); + setIconLocation(transX > 0 /* fromLeft */, false /* force */); mFadeAnimator = ValueAnimator.ofFloat(mGearIcon.getAlpha(), 1); mFadeAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { @Override @@ -220,12 +221,20 @@ public class NotificationSettingsIconRow extends FrameLayout implements View.OnC mFadeAnimator.start(); } - public void setIconLocation(boolean onLeft) { - if (onLeft == mOnLeft || mSnapping) { - // Same side? Do nothing. + @Override + public void onRtlPropertiesChanged(int layoutDirection) { + setIconLocation(mOnLeft, true /* force */); + } + + public void setIconLocation(boolean onLeft, boolean force) { + if ((!force && onLeft == mOnLeft) || mSnapping || mParent == null) { + // Do nothing return; } - setTranslationX(onLeft ? 0 : (mParent.getWidth() - mHorizSpaceForGear)); + final boolean isRtl = mParent.isLayoutRtl(); + final float left = isRtl ? -(mParent.getWidth() - mHorizSpaceForGear) : 0; + final float right = isRtl ? 0 : (mParent.getWidth() - mHorizSpaceForGear); + setTranslationX(onLeft ? left : right); mOnLeft = onLeft; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java index b5030e66e9c5..373c0e1e2384 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLayout.java @@ -3532,7 +3532,8 @@ public class NotificationStackScrollLayout extends ViewGroup } else { // Check scheduled, reset alpha and update location; check will fade it in mCurrIconRow.setGearAlpha(0f); - mCurrIconRow.setIconLocation(translation > 0 /* onLeft */); + mCurrIconRow.setIconLocation(translation > 0 /* onLeft */, + false /* force */); } } } |