Make APIs that dispatch KeyEvent as system service @SystemApi
Bug: 160577019
Test: m update-api
Change-Id: Iea6096d68ede324006e939495dcff2a01c9c21a6
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt
index f53ac8c..3b9fc89 100644
--- a/api/module-lib-current.txt
+++ b/api/module-lib-current.txt
@@ -45,6 +45,13 @@
field public static final int FLAG_EXCLUSIVE_GLOBAL_PRIORITY = 65536; // 0x10000
}
+ public final class MediaSessionManager {
+ method public void dispatchMediaKeyEventAsSystemService(@NonNull android.view.KeyEvent);
+ method public boolean dispatchMediaKeyEventAsSystemService(@NonNull android.media.session.MediaSession.Token, @NonNull android.view.KeyEvent);
+ method public void dispatchVolumeKeyEventAsSystemService(@NonNull android.view.KeyEvent, int);
+ method public void dispatchVolumeKeyEventAsSystemService(@NonNull android.media.session.MediaSession.Token, @NonNull android.view.KeyEvent);
+ }
+
}
package android.net {
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 6976a35..2000693 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -523,7 +523,8 @@
* @param keyEvent The KeyEvent to send.
* @hide
*/
- public void dispatchMediaKeyEventAsSystemService(KeyEvent keyEvent) {
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
+ public void dispatchMediaKeyEventAsSystemService(@NonNull KeyEvent keyEvent) {
dispatchMediaKeyEventInternal(true, keyEvent, false);
}
@@ -548,6 +549,7 @@
* @return {@code true} if the event was sent to the session, {@code false} otherwise
* @hide
*/
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public boolean dispatchMediaKeyEventAsSystemService(@NonNull MediaSession.Token sessionToken,
@NonNull KeyEvent keyEvent) {
if (sessionToken == null) {
@@ -586,10 +588,15 @@
* Should be only called by the {@link com.android.internal.policy.PhoneWindow} or
* {@link android.view.FallbackEventHandler} when the foreground activity didn't consume the key
* from the hardware devices.
+ * <p>
+ * Valid stream types include {@link AudioManager.PublicStreamTypes} and
+ * {@link AudioManager#USE_DEFAULT_STREAM_TYPE}.
*
- * @param keyEvent The KeyEvent to send.
+ * @param keyEvent volume key event
+ * @param streamType type of stream
* @hide
*/
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public void dispatchVolumeKeyEventAsSystemService(@NonNull KeyEvent keyEvent, int streamType) {
dispatchVolumeKeyEventInternal(true, keyEvent, streamType, false);
}
@@ -614,6 +621,7 @@
* @param keyEvent volume key event
* @hide
*/
+ @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES)
public void dispatchVolumeKeyEventAsSystemService(@NonNull MediaSession.Token sessionToken,
@NonNull KeyEvent keyEvent) {
if (sessionToken == null) {
diff --git a/non-updatable-api/module-lib-current.txt b/non-updatable-api/module-lib-current.txt
index 86ac3e4..883fe77 100644
--- a/non-updatable-api/module-lib-current.txt
+++ b/non-updatable-api/module-lib-current.txt
@@ -45,6 +45,13 @@
field public static final int FLAG_EXCLUSIVE_GLOBAL_PRIORITY = 65536; // 0x10000
}
+ public final class MediaSessionManager {
+ method public void dispatchMediaKeyEventAsSystemService(@NonNull android.view.KeyEvent);
+ method public boolean dispatchMediaKeyEventAsSystemService(@NonNull android.media.session.MediaSession.Token, @NonNull android.view.KeyEvent);
+ method public void dispatchVolumeKeyEventAsSystemService(@NonNull android.view.KeyEvent, int);
+ method public void dispatchVolumeKeyEventAsSystemService(@NonNull android.media.session.MediaSession.Token, @NonNull android.view.KeyEvent);
+ }
+
}
package android.os {