Merge "Add vibration preview" into pi-dev am: 1ec06d4623
am: 6a090b46cf
Change-Id: Ia326faa0639ae6357df23d70f570eb7f3cd0d9e6
This commit is contained in:
@@ -15,7 +15,9 @@
|
|||||||
*/
|
*/
|
||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
|
import android.media.AudioAttributes;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
|
import android.os.VibrationEffect;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
@@ -43,6 +45,11 @@ public class NotificationVibrationPreferenceFragment extends VibrationPreference
|
|||||||
return Settings.System.NOTIFICATION_VIBRATION_INTENSITY;
|
return Settings.System.NOTIFICATION_VIBRATION_INTENSITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getPreviewVibrationAudioAttributesUsage() {
|
||||||
|
return AudioAttributes.USAGE_NOTIFICATION;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected int getDefaultVibrationIntensity() {
|
protected int getDefaultVibrationIntensity() {
|
||||||
Vibrator vibrator = getContext().getSystemService(Vibrator.class);
|
Vibrator vibrator = getContext().getSystemService(Vibrator.class);
|
||||||
|
@@ -16,7 +16,9 @@
|
|||||||
package com.android.settings.accessibility;
|
package com.android.settings.accessibility;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.media.AudioAttributes;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
|
import android.os.VibrationEffect;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
|
||||||
@@ -50,6 +52,11 @@ public class TouchVibrationPreferenceFragment extends VibrationPreferenceFragmen
|
|||||||
return vibrator.getDefaultHapticFeedbackIntensity();
|
return vibrator.getDefaultHapticFeedbackIntensity();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected int getPreviewVibrationAudioAttributesUsage() {
|
||||||
|
return AudioAttributes.USAGE_ASSISTANCE_SONIFICATION;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onVibrationIntensitySelected(int intensity) {
|
public void onVibrationIntensitySelected(int intensity) {
|
||||||
// We want to keep HAPTIC_FEEDBACK_ENABLED consistent with this setting since some
|
// We want to keep HAPTIC_FEEDBACK_ENABLED consistent with this setting since some
|
||||||
|
@@ -21,8 +21,10 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.database.ContentObserver;
|
import android.database.ContentObserver;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
|
import android.media.AudioAttributes;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.os.VibrationEffect;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.util.ArrayMap;
|
import android.util.ArrayMap;
|
||||||
@@ -105,6 +107,24 @@ public abstract class VibrationPreferenceFragment extends RadioButtonPickerFragm
|
|||||||
*/
|
*/
|
||||||
protected void onVibrationIntensitySelected(int intensity) { }
|
protected void onVibrationIntensitySelected(int intensity) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Play a vibration effect with intensity just selected by user
|
||||||
|
*/
|
||||||
|
protected void playVibrationPreview() {
|
||||||
|
Vibrator vibrator = getContext().getSystemService(Vibrator.class);
|
||||||
|
VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK);
|
||||||
|
AudioAttributes.Builder builder = new AudioAttributes.Builder();
|
||||||
|
builder.setUsage(getPreviewVibrationAudioAttributesUsage());
|
||||||
|
vibrator.vibrate(effect, builder.build());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the AudioAttributes usage for vibration preview.
|
||||||
|
*/
|
||||||
|
protected int getPreviewVibrationAudioAttributesUsage() {
|
||||||
|
return AudioAttributes.USAGE_UNKNOWN;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<? extends CandidateInfo> getCandidates() {
|
protected List<? extends CandidateInfo> getCandidates() {
|
||||||
List<VibrationIntensityCandidateInfo> candidates = new ArrayList<>(mCandidates.values());
|
List<VibrationIntensityCandidateInfo> candidates = new ArrayList<>(mCandidates.values());
|
||||||
@@ -189,6 +209,7 @@ public abstract class VibrationPreferenceFragment extends RadioButtonPickerFragm
|
|||||||
@Override
|
@Override
|
||||||
public void onChange(boolean selfChange, Uri uri) {
|
public void onChange(boolean selfChange, Uri uri) {
|
||||||
updateCandidates();
|
updateCandidates();
|
||||||
|
playVibrationPreview();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user