Phone call vibrate should obey user preference.

Bug: 27353237
Change-Id: I6b52e378c9e664600720025af30596be09aeb19d
This commit is contained in:
Julia Reynolds
2016-04-14 09:37:08 -04:00
parent dbf4481cc3
commit d28967f489
2 changed files with 29 additions and 0 deletions

View File

@@ -454,6 +454,12 @@ public class VibratorService extends IVibratorService.Stub
return;
}
if (vib.mUsageHint == AudioAttributes.USAGE_NOTIFICATION_RINGTONE
&& Settings.System.getInt(
mContext.getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING, 0) == 0) {
return;
}
int mode = mAppOpsService.checkAudioOperation(AppOpsManager.OP_VIBRATE,
vib.mUsageHint, vib.mUid, vib.mOpPkg);
if (mode == AppOpsManager.MODE_ALLOWED) {

View File

@@ -25,6 +25,7 @@ import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.media.AudioAttributes;
import android.os.Bundle;
import android.os.Vibrator;
import android.os.Handler;
@@ -86,6 +87,28 @@ public class NotificationTestList extends TestActivity
}
private Test[] mTests = new Test[] {
new Test("Phone call") {
public void run()
{
Notification n = new Notification.Builder(NotificationTestList.this)
.setSmallIcon(R.drawable.icon2)
.setContentTitle("phone call")
.setLights(0xff0000ff, 1, 0)
.setDefaults(Notification.DEFAULT_LIGHTS|Notification.DEFAULT_VIBRATE)
.setSound(Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" +
getPackageName() + "/raw/ringer"),
new AudioAttributes.Builder().setUsage(
AudioAttributes.USAGE_NOTIFICATION_RINGTONE).build())
.setPriority(Notification.PRIORITY_MAX)
.setVibrate(new long[] {
300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400,
300, 400, 300, 400, 300, 400, 300, 400, 300, 400, 300, 400 })
.setFullScreenIntent(makeIntent2(), true)
.build();
mNM.notify(7001, n);
}
},
new Test("Post a group") {
public void run()
{