Merge "Add RINGTONE" into oc-mr1-dev
diff --git a/car-lib/api/current.txt b/car-lib/api/current.txt
index f5e1a6c..242c337 100644
--- a/car-lib/api/current.txt
+++ b/car-lib/api/current.txt
@@ -284,6 +284,7 @@
field public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3; // 0x3
field public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7; // 0x7
field public static final int CAR_AUDIO_USAGE_RADIO = 2; // 0x2
+ field public static final int CAR_AUDIO_USAGE_RINGTONE = 10; // 0xa
field public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9; // 0x9
field public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8; // 0x8
field public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4; // 0x4
diff --git a/car-lib/api/system-current.txt b/car-lib/api/system-current.txt
index 52c96d2..6f32dd7 100644
--- a/car-lib/api/system-current.txt
+++ b/car-lib/api/system-current.txt
@@ -953,6 +953,7 @@
field public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3; // 0x3
field public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7; // 0x7
field public static final int CAR_AUDIO_USAGE_RADIO = 2; // 0x2
+ field public static final int CAR_AUDIO_USAGE_RINGTONE = 10; // 0xa
field public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9; // 0x9
field public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8; // 0x8
field public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4; // 0x4
diff --git a/car-lib/src/android/car/media/CarAudioManager.java b/car-lib/src/android/car/media/CarAudioManager.java
index 1c1d718..49a7ca4 100644
--- a/car-lib/src/android/car/media/CarAudioManager.java
+++ b/car-lib/src/android/car/media/CarAudioManager.java
@@ -81,10 +81,14 @@
*/
public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9;
/**
+ * Audio usage for the ringing of a phone call.
+ */
+ public static final int CAR_AUDIO_USAGE_RINGTONE = 10;
+ /**
* Audio usage for external audio usage.
* @hide
*/
- public static final int CAR_AUDIO_USAGE_EXTERNAL_AUDIO_SOURCE = 10;
+ public static final int CAR_AUDIO_USAGE_EXTERNAL_AUDIO_SOURCE = 11;
/** @hide */
public static final int CAR_AUDIO_USAGE_MAX = CAR_AUDIO_USAGE_EXTERNAL_AUDIO_SOURCE;
diff --git a/car-lib/src/android/car/settings/CarSettings.java b/car-lib/src/android/car/settings/CarSettings.java
index 1283511..6e2a8f4 100644
--- a/car-lib/src/android/car/settings/CarSettings.java
+++ b/car-lib/src/android/car/settings/CarSettings.java
@@ -74,6 +74,13 @@
*/
public static final String KEY_VOLUME_CALL = "android.car.VOLUME_CALL";
/**
+ * Key for phone ring volume. This is used internally, changing this value will not change
+ * the volume.
+ *
+ * @hide
+ */
+ public static final String KEY_VOLUME_RINGTONE = "android.car.VOLUME_RINGTONE";
+ /**
* Key for alarm volume. This is used internally, changing this value will not change the
* volume.
*
diff --git a/service/src/com/android/car/CarAudioAttributesUtil.java b/service/src/com/android/car/CarAudioAttributesUtil.java
index 54ed2c6..64d2571 100644
--- a/service/src/com/android/car/CarAudioAttributesUtil.java
+++ b/service/src/com/android/car/CarAudioAttributesUtil.java
@@ -55,6 +55,9 @@
case CarAudioManager.CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE:
return createAudioAttributes(AudioAttributes.CONTENT_TYPE_SPEECH,
AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE);
+ case CarAudioManager.CAR_AUDIO_USAGE_RINGTONE:
+ return createAudioAttributes(AudioAttributes.CONTENT_TYPE_SONIFICATION,
+ AudioAttributes.USAGE_NOTIFICATION_RINGTONE);
case CarAudioManager.CAR_AUDIO_USAGE_VOICE_CALL:
return createAudioAttributes(AudioAttributes.CONTENT_TYPE_SPEECH,
AudioAttributes.USAGE_VOICE_COMMUNICATION);
@@ -119,6 +122,8 @@
}
case AudioAttributes.USAGE_VOICE_COMMUNICATION:
return CarAudioManager.CAR_AUDIO_USAGE_VOICE_CALL;
+ case AudioAttributes.USAGE_NOTIFICATION_RINGTONE:
+ return CarAudioManager.CAR_AUDIO_USAGE_RINGTONE;
case AudioAttributes.USAGE_ALARM:
return CarAudioManager.CAR_AUDIO_USAGE_ALARM;
case AudioAttributes.USAGE_NOTIFICATION:
diff --git a/service/src/com/android/car/VolumeUtils.java b/service/src/com/android/car/VolumeUtils.java
index 3164aea..265615b 100644
--- a/service/src/com/android/car/VolumeUtils.java
+++ b/service/src/com/android/car/VolumeUtils.java
@@ -43,6 +43,7 @@
VehicleAudioContextFlag.NAVIGATION_FLAG,
VehicleAudioContextFlag.VOICE_COMMAND_FLAG,
VehicleAudioContextFlag.CALL_FLAG,
+ VehicleAudioContextFlag.RINGTONE_FLAG,
VehicleAudioContextFlag.ALARM_FLAG,
VehicleAudioContextFlag.NOTIFICATION_FLAG,
VehicleAudioContextFlag.UNKNOWN_FLAG,
@@ -67,6 +68,8 @@
CarSettings.Global.KEY_VOLUME_VOICE_COMMAND);
CAR_AUDIO_CONTEXT_SETTINGS.put(VehicleAudioContextFlag.CALL_FLAG,
CarSettings.Global.KEY_VOLUME_CALL);
+ CAR_AUDIO_CONTEXT_SETTINGS.put(VehicleAudioContextFlag.RINGTONE_FLAG,
+ CarSettings.Global.KEY_VOLUME_RINGTONE);
CAR_AUDIO_CONTEXT_SETTINGS.put(VehicleAudioContextFlag.ALARM_FLAG,
CarSettings.Global.KEY_VOLUME_ALARM);
CAR_AUDIO_CONTEXT_SETTINGS.put(
@@ -106,7 +109,7 @@
case AudioManager.STREAM_SYSTEM:
return VehicleAudioContextFlag.SYSTEM_SOUND_FLAG;
case AudioManager.STREAM_RING:
- return VehicleAudioContextFlag.NOTIFICATION_FLAG;
+ return VehicleAudioContextFlag.RINGTONE_FLAG;
case AudioManager.STREAM_MUSIC:
return VehicleAudioContextFlag.MUSIC_FLAG;
case AudioManager.STREAM_ALARM:
@@ -124,6 +127,8 @@
switch (carContext) {
case VehicleAudioContextFlag.CALL_FLAG:
return AudioManager.STREAM_VOICE_CALL;
+ case VehicleAudioContextFlag.RINGTONE_FLAG:
+ return AudioManager.STREAM_RING;
case VehicleAudioContextFlag.SYSTEM_SOUND_FLAG:
return AudioManager.STREAM_SYSTEM;
case VehicleAudioContextFlag.NOTIFICATION_FLAG:
diff --git a/service/src/com/android/car/hal/AudioHalService.java b/service/src/com/android/car/hal/AudioHalService.java
index 14b8319..c74ac8c 100644
--- a/service/src/com/android/car/hal/AudioHalService.java
+++ b/service/src/com/android/car/hal/AudioHalService.java
@@ -131,6 +131,8 @@
VehicleAudioContextFlag.SYSTEM_SOUND_FLAG;
public static final int AUDIO_CONTEXT_EXT_SOURCE_FLAG =
VehicleAudioContextFlag.EXT_SOURCE_FLAG;
+ public static final int AUDIO_CONTEXT_RINGTONE_FLAG =
+ VehicleAudioContextFlag.RINGTONE_FLAG;
public interface AudioHalFocusListener {
/**
@@ -261,6 +263,8 @@
return VehicleAudioContextFlag.RADIO_FLAG;
case CarAudioManager.CAR_AUDIO_USAGE_VOICE_CALL:
return VehicleAudioContextFlag.CALL_FLAG;
+ case CarAudioManager.CAR_AUDIO_USAGE_RINGTONE:
+ return VehicleAudioContextFlag.RINGTONE_FLAG;
case CarAudioManager.CAR_AUDIO_USAGE_MUSIC:
return VehicleAudioContextFlag.MUSIC_FLAG;
case CarAudioManager.CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE:
@@ -281,15 +285,15 @@
if (extType != null) {
switch (extType) {
case CarAudioManager.CAR_EXTERNAL_SOURCE_TYPE_CD_DVD:
- return AudioHalService.AUDIO_CONTEXT_CD_ROM_FLAG;
+ return VehicleAudioContextFlag.CD_ROM_FLAG;
case CarAudioManager.CAR_EXTERNAL_SOURCE_TYPE_AUX_IN0:
case CarAudioManager.CAR_EXTERNAL_SOURCE_TYPE_AUX_IN1:
- return AudioHalService.AUDIO_CONTEXT_AUX_AUDIO_FLAG;
+ return VehicleAudioContextFlag.AUX_AUDIO_FLAG;
default:
if (extType.startsWith("RADIO_")) {
return VehicleAudioContextFlag.RADIO_FLAG;
} else {
- return AudioHalService.AUDIO_CONTEXT_EXT_SOURCE_FLAG;
+ return VehicleAudioContextFlag.EXT_SOURCE_FLAG;
}
}
} else { // no external source specified. fall back to radio
@@ -323,6 +327,8 @@
return CarAudioManager.CAR_AUDIO_USAGE_EXTERNAL_AUDIO_SOURCE;
case VehicleAudioContextFlag.CALL_FLAG:
return CarAudioManager.CAR_AUDIO_USAGE_VOICE_CALL;
+ case VehicleAudioContextFlag.RINGTONE_FLAG:
+ return CarAudioManager.CAR_AUDIO_USAGE_RINGTONE;
case VehicleAudioContextFlag.CD_ROM_FLAG:
return CarAudioManager.CAR_AUDIO_USAGE_EXTERNAL_AUDIO_SOURCE;
case VehicleAudioContextFlag.NOTIFICATION_FLAG:
@@ -476,7 +482,7 @@
VehiclePropValue propValue = mVehicleHal.get(VehicleProperty.AUDIO_FOCUS);
return toIntArray(propValue.value.int32Values);
} catch (PropertyTimeoutException e) {
- Log.e(CarLog.TAG_AUDIO, "VehicleProperty.AUDIO_HW_VARIANT not ready", e);
+ Log.e(CarLog.TAG_AUDIO, "VehicleProperty.AUDIO_FOCUS not ready", e);
return new int[] { VEHICLE_AUDIO_FOCUS_STATE_LOSS, 0x0, 0};
}
}
diff --git a/tests/carservice_test/src/com/android/car/test/AudioRoutingPolicyTest.java b/tests/carservice_test/src/com/android/car/test/AudioRoutingPolicyTest.java
index 6363589..7f4aeac 100644
--- a/tests/carservice_test/src/com/android/car/test/AudioRoutingPolicyTest.java
+++ b/tests/carservice_test/src/com/android/car/test/AudioRoutingPolicyTest.java
@@ -99,6 +99,7 @@
int contexts = v.get(VehicleAudioRoutingPolicyIndex.CONTEXTS);
// check if all contexts are allowed ones.
assertTrue((contexts & ~(
+ VehicleAudioContextFlag.RINGTONE_FLAG |
VehicleAudioContextFlag.ALARM_FLAG |
VehicleAudioContextFlag.CALL_FLAG |
VehicleAudioContextFlag.MUSIC_FLAG |