Merge "Set audio attrs on volume + home button vibrations" into pi-dev
am: 9b449b75d2
Change-Id: Ic604bf52c559deadaaeed318713bcdeb2a208e10
This commit is contained in:
@@ -18,6 +18,7 @@ package com.android.systemui.statusbar;
|
||||
|
||||
import android.content.Context;
|
||||
import android.database.ContentObserver;
|
||||
import android.media.AudioAttributes;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Handler;
|
||||
import android.os.UserHandle;
|
||||
@@ -30,6 +31,11 @@ public class VibratorHelper {
|
||||
private final Vibrator mVibrator;
|
||||
private final Context mContext;
|
||||
private boolean mHapticFeedbackEnabled;
|
||||
private static final AudioAttributes STATUS_BAR_VIBRATION_ATTRIBUTES =
|
||||
new AudioAttributes.Builder()
|
||||
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
|
||||
.build();
|
||||
|
||||
final private ContentObserver mVibrationObserver = new ContentObserver(Handler.getMain()) {
|
||||
@Override
|
||||
@@ -51,7 +57,8 @@ public class VibratorHelper {
|
||||
public void vibrate(final int effectId) {
|
||||
if (mHapticFeedbackEnabled) {
|
||||
AsyncTask.execute(() ->
|
||||
mVibrator.vibrate(VibrationEffect.get(effectId, false /* fallback */)));
|
||||
mVibrator.vibrate(VibrationEffect.get(effectId, false /* fallback */),
|
||||
STATUS_BAR_VIBRATION_ATTRIBUTES));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,8 +26,7 @@ import android.content.pm.ApplicationInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.PackageManager.NameNotFoundException;
|
||||
import android.database.ContentObserver;
|
||||
import android.media.AudioDeviceCallback;
|
||||
import android.media.AudioDeviceInfo;
|
||||
import android.media.AudioAttributes;
|
||||
import android.media.AudioManager;
|
||||
import android.media.AudioSystem;
|
||||
import android.media.IVolumeController;
|
||||
@@ -40,6 +39,7 @@ import android.os.HandlerThread;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.os.VibrationEffect;
|
||||
import android.os.Vibrator;
|
||||
import android.provider.Settings;
|
||||
import android.service.notification.Condition;
|
||||
@@ -59,9 +59,7 @@ import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -77,6 +75,11 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa
|
||||
|
||||
private static final int DYNAMIC_STREAM_START_INDEX = 100;
|
||||
private static final int VIBRATE_HINT_DURATION = 50;
|
||||
private static final AudioAttributes SONFICIATION_VIBRATION_ATTRIBUTES =
|
||||
new AudioAttributes.Builder()
|
||||
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
|
||||
.setUsage(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION)
|
||||
.build();
|
||||
|
||||
static final ArrayMap<Integer, Integer> STREAMS = new ArrayMap<>();
|
||||
static {
|
||||
@@ -299,7 +302,8 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa
|
||||
|
||||
public void vibrate() {
|
||||
if (mHasVibrator) {
|
||||
mVibrator.vibrate(VIBRATE_HINT_DURATION);
|
||||
mVibrator.vibrate(VibrationEffect.createOneShot(VIBRATE_HINT_DURATION,
|
||||
VibrationEffect.DEFAULT_AMPLITUDE), SONFICIATION_VIBRATION_ATTRIBUTES);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -308,7 +312,7 @@ public class VolumeDialogControllerImpl implements VolumeDialogController, Dumpa
|
||||
}
|
||||
|
||||
private void onNotifyVisibleW(boolean visible) {
|
||||
if (mDestroyed) return;
|
||||
if (mDestroyed) return;
|
||||
mAudio.notifyVolumeControllerVisible(mVolumeController, visible);
|
||||
if (!visible) {
|
||||
if (updateActiveStreamW(-1)) {
|
||||
|
||||
Reference in New Issue
Block a user