Loading core/java/com/android/internal/widget/SlidingTab.java +29 −15 Original line number Diff line number Diff line Loading @@ -17,10 +17,8 @@ package com.android.internal.widget; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Vibrator; Loading @@ -38,6 +36,7 @@ import android.view.animation.Animation.AnimationListener; import android.widget.ImageView; import android.widget.TextView; import android.widget.ImageView.ScaleType; import com.android.internal.R; /** Loading Loading @@ -69,21 +68,21 @@ public class SlidingTab extends ViewGroup { private int mGrabbedState = OnTriggerListener.NO_HANDLE; private boolean mTriggered = false; private Vibrator mVibrator; private float mDensity; // used to scale dimensions for bitmaps. private final float mDensity; // used to scale dimensions for bitmaps. /** * Either {@link #HORIZONTAL} or {@link #VERTICAL}. */ private int mOrientation; private final int mOrientation; private Slider mLeftSlider; private Slider mRightSlider; private final Slider mLeftSlider; private final Slider mRightSlider; private Slider mCurrentSlider; private boolean mTracking; private float mThreshold; private Slider mOtherSlider; private boolean mAnimating; private Rect mTmpRect; private final Rect mTmpRect; /** * Listener used to reset the view when the current animation completes. Loading Loading @@ -608,6 +607,15 @@ public class SlidingTab extends ViewGroup { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: cancelGrab(); break; } } return mTracking || super.onTouchEvent(event); } private void cancelGrab() { mTracking = false; mTriggered = false; mOtherSlider.show(true); Loading @@ -616,11 +624,6 @@ public class SlidingTab extends ViewGroup { mCurrentSlider = null; mOtherSlider = null; setGrabbedState(OnTriggerListener.NO_HANDLE); break; } } return mTracking || super.onTouchEvent(event); } void startAnimating(final boolean holdAfter) { Loading Loading @@ -832,6 +835,17 @@ public class SlidingTab extends ViewGroup { } } @Override protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); // When visibility changes and the user has a tab selected, unselect it and // make sure their callback gets called. if (changedView == this && visibility != VISIBLE && mGrabbedState != OnTriggerListener.NO_HANDLE) { cancelGrab(); } } /** * Sets the current grabbed state, and dispatches a grabbed state change * event to our listener. Loading Loading
core/java/com/android/internal/widget/SlidingTab.java +29 −15 Original line number Diff line number Diff line Loading @@ -17,10 +17,8 @@ package com.android.internal.widget; import android.content.Context; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.os.Vibrator; Loading @@ -38,6 +36,7 @@ import android.view.animation.Animation.AnimationListener; import android.widget.ImageView; import android.widget.TextView; import android.widget.ImageView.ScaleType; import com.android.internal.R; /** Loading Loading @@ -69,21 +68,21 @@ public class SlidingTab extends ViewGroup { private int mGrabbedState = OnTriggerListener.NO_HANDLE; private boolean mTriggered = false; private Vibrator mVibrator; private float mDensity; // used to scale dimensions for bitmaps. private final float mDensity; // used to scale dimensions for bitmaps. /** * Either {@link #HORIZONTAL} or {@link #VERTICAL}. */ private int mOrientation; private final int mOrientation; private Slider mLeftSlider; private Slider mRightSlider; private final Slider mLeftSlider; private final Slider mRightSlider; private Slider mCurrentSlider; private boolean mTracking; private float mThreshold; private Slider mOtherSlider; private boolean mAnimating; private Rect mTmpRect; private final Rect mTmpRect; /** * Listener used to reset the view when the current animation completes. Loading Loading @@ -608,6 +607,15 @@ public class SlidingTab extends ViewGroup { case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: cancelGrab(); break; } } return mTracking || super.onTouchEvent(event); } private void cancelGrab() { mTracking = false; mTriggered = false; mOtherSlider.show(true); Loading @@ -616,11 +624,6 @@ public class SlidingTab extends ViewGroup { mCurrentSlider = null; mOtherSlider = null; setGrabbedState(OnTriggerListener.NO_HANDLE); break; } } return mTracking || super.onTouchEvent(event); } void startAnimating(final boolean holdAfter) { Loading Loading @@ -832,6 +835,17 @@ public class SlidingTab extends ViewGroup { } } @Override protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); // When visibility changes and the user has a tab selected, unselect it and // make sure their callback gets called. if (changedView == this && visibility != VISIBLE && mGrabbedState != OnTriggerListener.NO_HANDLE) { cancelGrab(); } } /** * Sets the current grabbed state, and dispatches a grabbed state change * event to our listener. Loading