Merge "Play CLICK sound effect when compound buttons are clicked" into lmp-mr1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e5d27a22a6
@@ -29,6 +29,7 @@ import android.os.Parcel;
|
|||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
|
import android.view.SoundEffectConstants;
|
||||||
import android.view.ViewDebug;
|
import android.view.ViewDebug;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
@@ -114,15 +115,16 @@ public abstract class CompoundButton extends Button implements Checkable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean performClick() {
|
public boolean performClick() {
|
||||||
/*
|
|
||||||
* XXX: These are tiny, need some surrounding 'expanded touch area',
|
|
||||||
* which will need to be implemented in Button if we only override
|
|
||||||
* performClick()
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* When clicked, toggle the state */
|
|
||||||
toggle();
|
toggle();
|
||||||
return super.performClick();
|
|
||||||
|
final boolean handled = super.performClick();
|
||||||
|
if (!handled) {
|
||||||
|
// View only makes a sound effect if the onClickListener was
|
||||||
|
// called, so we'll need to make one here instead.
|
||||||
|
playSoundEffect(SoundEffectConstants.CLICK);
|
||||||
|
}
|
||||||
|
|
||||||
|
return handled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ViewDebug.ExportedProperty
|
@ViewDebug.ExportedProperty
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ import android.util.FloatProperty;
|
|||||||
import android.util.MathUtils;
|
import android.util.MathUtils;
|
||||||
import android.view.Gravity;
|
import android.view.Gravity;
|
||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
|
import android.view.SoundEffectConstants;
|
||||||
import android.view.VelocityTracker;
|
import android.view.VelocityTracker;
|
||||||
import android.view.ViewConfiguration;
|
import android.view.ViewConfiguration;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
@@ -797,6 +798,7 @@ public class Switch extends CompoundButton {
|
|||||||
// Commit the change if the event is up and not canceled and the switch
|
// Commit the change if the event is up and not canceled and the switch
|
||||||
// has not been disabled during the drag.
|
// has not been disabled during the drag.
|
||||||
final boolean commitChange = ev.getAction() == MotionEvent.ACTION_UP && isEnabled();
|
final boolean commitChange = ev.getAction() == MotionEvent.ACTION_UP && isEnabled();
|
||||||
|
final boolean oldState = isChecked();
|
||||||
final boolean newState;
|
final boolean newState;
|
||||||
if (commitChange) {
|
if (commitChange) {
|
||||||
mVelocityTracker.computeCurrentVelocity(1000);
|
mVelocityTracker.computeCurrentVelocity(1000);
|
||||||
@@ -807,10 +809,14 @@ public class Switch extends CompoundButton {
|
|||||||
newState = getTargetCheckedState();
|
newState = getTargetCheckedState();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
newState = isChecked();
|
newState = oldState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (newState != oldState) {
|
||||||
|
playSoundEffect(SoundEffectConstants.CLICK);
|
||||||
setChecked(newState);
|
setChecked(newState);
|
||||||
|
}
|
||||||
|
|
||||||
cancelSuperTouch(ev);
|
cancelSuperTouch(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user