Merge "Play CLICK sound effect when compound buttons are clicked" into lmp-mr1-dev

automerge: e5d27a2

* commit 'e5d27a22a6908026d346e86389cf414b5badeab6':
  Play CLICK sound effect when compound buttons are clicked
This commit is contained in:
Alan Viverette
2014-10-28 01:56:59 +00:00
committed by android-build-merger
2 changed files with 18 additions and 10 deletions

View File

@@ -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

View File

@@ -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);
} }