Loading core/java/android/widget/AbsSeekBar.java +10 −57 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.widget; import android.animation.ObjectAnimator; import android.annotation.Nullable; import android.content.Context; import android.content.res.ColorStateList; Loading Loading @@ -65,9 +64,6 @@ public abstract class AbsSeekBar extends ProgressBar { * progress. */ private int mKeyProgressIncrement = 1; private ObjectAnimator mPositionAnimator; private static final int PROGRESS_ANIMATION_DURATION = 250; private static final int NO_ALPHA = 0xFF; private float mDisabledAlpha; Loading Loading @@ -388,14 +384,15 @@ public abstract class AbsSeekBar extends ProgressBar { void onProgressRefresh(float scale, boolean fromUser) { super.onProgressRefresh(scale, fromUser); if (!isAnimationRunning()) { setThumbPos(scale); } } final Drawable thumb = mThumb; if (thumb != null) { setThumbPos(getWidth(), thumb, scale, Integer.MIN_VALUE); @Override void onAnimatePosition(float scale, boolean fromUser) { setThumbPos(scale); // Since we draw translated, the drawable's bounds that it signals // for invalidation won't be the actual bounds we want invalidated, // so just invalidate this whole view. invalidate(); } } @Override Loading Loading @@ -440,18 +437,6 @@ public abstract class AbsSeekBar extends ProgressBar { return max > 0 ? getProgress() / (float) max : 0; } private void setThumbPos(float scale) { final Drawable thumb = mThumb; if (thumb != null) { setThumbPos(getWidth(), thumb, scale, Integer.MIN_VALUE); // Since we draw translated, the drawable's bounds that it signals // for invalidation won't be the actual bounds we want invalidated, // so just invalidate this whole view. invalidate(); } } /** * Updates the thumb drawable bounds. * Loading Loading @@ -714,13 +699,13 @@ public abstract class AbsSeekBar extends ProgressBar { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: if (progress <= 0) break; animateSetProgress(progress - mKeyProgressIncrement); setProgress(progress - mKeyProgressIncrement, true); onKeyChange(); return true; case KeyEvent.KEYCODE_DPAD_RIGHT: if (progress >= getMax()) break; animateSetProgress(progress + mKeyProgressIncrement); setProgress(progress + mKeyProgressIncrement, true); onKeyChange(); return true; } Loading @@ -729,38 +714,6 @@ public abstract class AbsSeekBar extends ProgressBar { return super.onKeyDown(keyCode, event); } boolean isAnimationRunning() { return mPositionAnimator != null && mPositionAnimator.isRunning(); } /** * @hide */ @Override public void setProgress(int progress, boolean fromUser) { if (isAnimationRunning()) { mPositionAnimator.cancel(); } super.setProgress(progress, fromUser); } void animateSetProgress(int progress) { float curProgress = isAnimationRunning() ? getAnimationPosition() : getProgress(); if (progress < 0) { progress = 0; } else if (progress > getMax()) { progress = getMax(); } setProgressValueOnly(progress); mPositionAnimator = ObjectAnimator.ofFloat(this, "animationPosition", curProgress, progress); mPositionAnimator.setDuration(PROGRESS_ANIMATION_DURATION); mPositionAnimator.setAutoCancel(true); mPositionAnimator.start(); } @Override public void onInitializeAccessibilityEvent(AccessibilityEvent event) { super.onInitializeAccessibilityEvent(event); Loading core/java/android/widget/ProgressBar.java +52 −105 Original line number Diff line number Diff line Loading @@ -227,8 +227,6 @@ public class ProgressBar extends View { private long mUiThreadId; private boolean mShouldStartAnimationDrawable; private float mAnimationPosition; private boolean mInDrawing; private boolean mAttached; private boolean mRefreshIsPosted; Loading Loading @@ -1188,7 +1186,7 @@ public class ProgressBar extends View { final int count = mRefreshData.size(); for (int i = 0; i < count; i++) { final RefreshData rd = mRefreshData.get(i); doRefreshProgress(rd.id, rd.progress, rd.fromUser, true, rd.animate); doRefreshProgress(rd.id, rd.progress, rd.fromUser, true); rd.recycle(); } mRefreshData.clear(); Loading @@ -1203,12 +1201,10 @@ public class ProgressBar extends View { new SynchronizedPool<RefreshData>(POOL_MAX); public int id; public float progress; public int progress; public boolean fromUser; public boolean animate; public static RefreshData obtain(int id, float progress, boolean fromUser, boolean animate) { public static RefreshData obtain(int id, int progress, boolean fromUser) { RefreshData rd = sPool.acquire(); if (rd == null) { rd = new RefreshData(); Loading @@ -1216,7 +1212,6 @@ public class ProgressBar extends View { rd.id = id; rd.progress = progress; rd.fromUser = fromUser; rd.animate = animate; return rd; } Loading @@ -1243,19 +1238,9 @@ public class ProgressBar extends View { layer.setTintMode(tintMode); } private float getScale(float progress) { return mMax > 0 ? progress / (float) mMax : 0; } private synchronized void doRefreshProgress(int id, float progress, boolean fromUser, private synchronized void doRefreshProgress(int id, int progress, boolean fromUser, boolean callBackToApp) { doRefreshProgress(id, progress, fromUser, callBackToApp, false); } private synchronized void doRefreshProgress(int id, float progress, boolean fromUser, boolean callBackToApp, boolean animate) { float scale = getScale(progress); float scale = mMax > 0 ? (float) progress / (float) mMax : 0; final Drawable d = mCurrentDrawable; if (d != null) { Drawable progressDrawable = null; Loading @@ -1273,43 +1258,10 @@ public class ProgressBar extends View { invalidate(); } if (id == R.id.progress) { if (animate) { onAnimatePosition(scale, fromUser); } else if (callBackToApp) { if (callBackToApp && id == R.id.progress) { onProgressRefresh(scale, fromUser); } } } /** * Called when a ProgressBar is animating its position. * * @param scale Current position/progress between 0 and 1. * @param fromUser True if the progress change was initiated by the user. */ void onAnimatePosition(float scale, boolean fromUser) { } /** * Sets the progress value without going through the entire refresh process. * * @see #setProgress(int, boolean) * @param progress The new progress, between 0 and {@link #getMax()} */ void setProgressValueOnly(int progress) { mProgress = progress; onProgressRefresh(getScale(progress), true); } void setAnimationPosition(float position) { mAnimationPosition = position; refreshProgress(R.id.progress, position, true, true); } float getAnimationPosition() { return mAnimationPosition; } void onProgressRefresh(float scale, boolean fromUser) { if (AccessibilityManager.getInstance(mContext).isEnabled()) { Loading @@ -1317,20 +1269,15 @@ public class ProgressBar extends View { } } private synchronized void refreshProgress(int id, float progress, boolean fromUser) { refreshProgress(id, progress, fromUser, false); } private synchronized void refreshProgress(int id, float progress, boolean fromUser, boolean animate) { private synchronized void refreshProgress(int id, int progress, boolean fromUser) { if (mUiThreadId == Thread.currentThread().getId()) { doRefreshProgress(id, progress, fromUser, true, animate); doRefreshProgress(id, progress, fromUser, true); } else { if (mRefreshProgressRunnable == null) { mRefreshProgressRunnable = new RefreshProgressRunnable(); } final RefreshData rd = RefreshData.obtain(id, progress, fromUser, animate); final RefreshData rd = RefreshData.obtain(id, progress, fromUser); mRefreshData.add(rd); if (mAttached && !mRefreshIsPosted) { post(mRefreshProgressRunnable); Loading Loading @@ -1849,7 +1796,7 @@ public class ProgressBar extends View { final int count = mRefreshData.size(); for (int i = 0; i < count; i++) { final RefreshData rd = mRefreshData.get(i); doRefreshProgress(rd.id, rd.progress, rd.fromUser, rd.animate); doRefreshProgress(rd.id, rd.progress, rd.fromUser, true); rd.recycle(); } mRefreshData.clear(); Loading core/java/android/widget/RatingBar.java +0 −4 Original line number Diff line number Diff line Loading @@ -314,10 +314,6 @@ public class RatingBar extends AbsSeekBar { dispatchRatingChange(true); } @Override void animateSetProgress(int progress) { } void dispatchRatingChange(boolean fromUser) { if (mOnRatingBarChangeListener != null) { mOnRatingBarChangeListener.onRatingChanged(this, getRating(), Loading Loading
core/java/android/widget/AbsSeekBar.java +10 −57 Original line number Diff line number Diff line Loading @@ -16,7 +16,6 @@ package android.widget; import android.animation.ObjectAnimator; import android.annotation.Nullable; import android.content.Context; import android.content.res.ColorStateList; Loading Loading @@ -65,9 +64,6 @@ public abstract class AbsSeekBar extends ProgressBar { * progress. */ private int mKeyProgressIncrement = 1; private ObjectAnimator mPositionAnimator; private static final int PROGRESS_ANIMATION_DURATION = 250; private static final int NO_ALPHA = 0xFF; private float mDisabledAlpha; Loading Loading @@ -388,14 +384,15 @@ public abstract class AbsSeekBar extends ProgressBar { void onProgressRefresh(float scale, boolean fromUser) { super.onProgressRefresh(scale, fromUser); if (!isAnimationRunning()) { setThumbPos(scale); } } final Drawable thumb = mThumb; if (thumb != null) { setThumbPos(getWidth(), thumb, scale, Integer.MIN_VALUE); @Override void onAnimatePosition(float scale, boolean fromUser) { setThumbPos(scale); // Since we draw translated, the drawable's bounds that it signals // for invalidation won't be the actual bounds we want invalidated, // so just invalidate this whole view. invalidate(); } } @Override Loading Loading @@ -440,18 +437,6 @@ public abstract class AbsSeekBar extends ProgressBar { return max > 0 ? getProgress() / (float) max : 0; } private void setThumbPos(float scale) { final Drawable thumb = mThumb; if (thumb != null) { setThumbPos(getWidth(), thumb, scale, Integer.MIN_VALUE); // Since we draw translated, the drawable's bounds that it signals // for invalidation won't be the actual bounds we want invalidated, // so just invalidate this whole view. invalidate(); } } /** * Updates the thumb drawable bounds. * Loading Loading @@ -714,13 +699,13 @@ public abstract class AbsSeekBar extends ProgressBar { switch (keyCode) { case KeyEvent.KEYCODE_DPAD_LEFT: if (progress <= 0) break; animateSetProgress(progress - mKeyProgressIncrement); setProgress(progress - mKeyProgressIncrement, true); onKeyChange(); return true; case KeyEvent.KEYCODE_DPAD_RIGHT: if (progress >= getMax()) break; animateSetProgress(progress + mKeyProgressIncrement); setProgress(progress + mKeyProgressIncrement, true); onKeyChange(); return true; } Loading @@ -729,38 +714,6 @@ public abstract class AbsSeekBar extends ProgressBar { return super.onKeyDown(keyCode, event); } boolean isAnimationRunning() { return mPositionAnimator != null && mPositionAnimator.isRunning(); } /** * @hide */ @Override public void setProgress(int progress, boolean fromUser) { if (isAnimationRunning()) { mPositionAnimator.cancel(); } super.setProgress(progress, fromUser); } void animateSetProgress(int progress) { float curProgress = isAnimationRunning() ? getAnimationPosition() : getProgress(); if (progress < 0) { progress = 0; } else if (progress > getMax()) { progress = getMax(); } setProgressValueOnly(progress); mPositionAnimator = ObjectAnimator.ofFloat(this, "animationPosition", curProgress, progress); mPositionAnimator.setDuration(PROGRESS_ANIMATION_DURATION); mPositionAnimator.setAutoCancel(true); mPositionAnimator.start(); } @Override public void onInitializeAccessibilityEvent(AccessibilityEvent event) { super.onInitializeAccessibilityEvent(event); Loading
core/java/android/widget/ProgressBar.java +52 −105 Original line number Diff line number Diff line Loading @@ -227,8 +227,6 @@ public class ProgressBar extends View { private long mUiThreadId; private boolean mShouldStartAnimationDrawable; private float mAnimationPosition; private boolean mInDrawing; private boolean mAttached; private boolean mRefreshIsPosted; Loading Loading @@ -1188,7 +1186,7 @@ public class ProgressBar extends View { final int count = mRefreshData.size(); for (int i = 0; i < count; i++) { final RefreshData rd = mRefreshData.get(i); doRefreshProgress(rd.id, rd.progress, rd.fromUser, true, rd.animate); doRefreshProgress(rd.id, rd.progress, rd.fromUser, true); rd.recycle(); } mRefreshData.clear(); Loading @@ -1203,12 +1201,10 @@ public class ProgressBar extends View { new SynchronizedPool<RefreshData>(POOL_MAX); public int id; public float progress; public int progress; public boolean fromUser; public boolean animate; public static RefreshData obtain(int id, float progress, boolean fromUser, boolean animate) { public static RefreshData obtain(int id, int progress, boolean fromUser) { RefreshData rd = sPool.acquire(); if (rd == null) { rd = new RefreshData(); Loading @@ -1216,7 +1212,6 @@ public class ProgressBar extends View { rd.id = id; rd.progress = progress; rd.fromUser = fromUser; rd.animate = animate; return rd; } Loading @@ -1243,19 +1238,9 @@ public class ProgressBar extends View { layer.setTintMode(tintMode); } private float getScale(float progress) { return mMax > 0 ? progress / (float) mMax : 0; } private synchronized void doRefreshProgress(int id, float progress, boolean fromUser, private synchronized void doRefreshProgress(int id, int progress, boolean fromUser, boolean callBackToApp) { doRefreshProgress(id, progress, fromUser, callBackToApp, false); } private synchronized void doRefreshProgress(int id, float progress, boolean fromUser, boolean callBackToApp, boolean animate) { float scale = getScale(progress); float scale = mMax > 0 ? (float) progress / (float) mMax : 0; final Drawable d = mCurrentDrawable; if (d != null) { Drawable progressDrawable = null; Loading @@ -1273,43 +1258,10 @@ public class ProgressBar extends View { invalidate(); } if (id == R.id.progress) { if (animate) { onAnimatePosition(scale, fromUser); } else if (callBackToApp) { if (callBackToApp && id == R.id.progress) { onProgressRefresh(scale, fromUser); } } } /** * Called when a ProgressBar is animating its position. * * @param scale Current position/progress between 0 and 1. * @param fromUser True if the progress change was initiated by the user. */ void onAnimatePosition(float scale, boolean fromUser) { } /** * Sets the progress value without going through the entire refresh process. * * @see #setProgress(int, boolean) * @param progress The new progress, between 0 and {@link #getMax()} */ void setProgressValueOnly(int progress) { mProgress = progress; onProgressRefresh(getScale(progress), true); } void setAnimationPosition(float position) { mAnimationPosition = position; refreshProgress(R.id.progress, position, true, true); } float getAnimationPosition() { return mAnimationPosition; } void onProgressRefresh(float scale, boolean fromUser) { if (AccessibilityManager.getInstance(mContext).isEnabled()) { Loading @@ -1317,20 +1269,15 @@ public class ProgressBar extends View { } } private synchronized void refreshProgress(int id, float progress, boolean fromUser) { refreshProgress(id, progress, fromUser, false); } private synchronized void refreshProgress(int id, float progress, boolean fromUser, boolean animate) { private synchronized void refreshProgress(int id, int progress, boolean fromUser) { if (mUiThreadId == Thread.currentThread().getId()) { doRefreshProgress(id, progress, fromUser, true, animate); doRefreshProgress(id, progress, fromUser, true); } else { if (mRefreshProgressRunnable == null) { mRefreshProgressRunnable = new RefreshProgressRunnable(); } final RefreshData rd = RefreshData.obtain(id, progress, fromUser, animate); final RefreshData rd = RefreshData.obtain(id, progress, fromUser); mRefreshData.add(rd); if (mAttached && !mRefreshIsPosted) { post(mRefreshProgressRunnable); Loading Loading @@ -1849,7 +1796,7 @@ public class ProgressBar extends View { final int count = mRefreshData.size(); for (int i = 0; i < count; i++) { final RefreshData rd = mRefreshData.get(i); doRefreshProgress(rd.id, rd.progress, rd.fromUser, rd.animate); doRefreshProgress(rd.id, rd.progress, rd.fromUser, true); rd.recycle(); } mRefreshData.clear(); Loading
core/java/android/widget/RatingBar.java +0 −4 Original line number Diff line number Diff line Loading @@ -314,10 +314,6 @@ public class RatingBar extends AbsSeekBar { dispatchRatingChange(true); } @Override void animateSetProgress(int progress) { } void dispatchRatingChange(boolean fromUser) { if (mOnRatingBarChangeListener != null) { mOnRatingBarChangeListener.onRatingChanged(this, getRating(), Loading