From ca0080d919d71aaa9905811cf10fcc60f727ea1c Mon Sep 17 00:00:00 2001 From: Hyundo Moon Date: Wed, 26 Dec 2018 16:16:55 +0900 Subject: [PATCH] Change the value of AudioManager#FLAG_FROM_KEY As suggested by API review, this CL changes the value of FLAG_FROM_KEY from 1 << 12 to 1 << 16. Also expands Javadoc of the flag as suggested. Bug: 121325822 Test: make update-api -j / make -j Change-Id: Ie40c609c717c68a97b01d88f68ce8ff465e3a89e --- api/system-current.txt | 2 +- media/java/android/media/AudioManager.java | 44 ++++++++++++---------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/api/system-current.txt b/api/system-current.txt index 734ac82a261a0..2b093338e5ee7 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -3000,7 +3000,7 @@ package android.media { field public static final int AUDIOFOCUS_FLAG_DELAY_OK = 1; // 0x1 field public static final int AUDIOFOCUS_FLAG_LOCK = 4; // 0x4 field public static final int AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS = 2; // 0x2 - field public static final int FLAG_FROM_KEY = 4096; // 0x1000 + field public static final int FLAG_FROM_KEY = 65536; // 0x10000 } public static abstract class AudioManager.AudioServerStateCallback { diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java index da52a268e3845..63eefe04c1d15 100644 --- a/media/java/android/media/AudioManager.java +++ b/media/java/android/media/AudioManager.java @@ -67,6 +67,7 @@ import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.Executor; @@ -539,37 +540,42 @@ public class AudioManager { /** * Adjusting the volume due to a hardware key press. + * This flag can be used in the places in order to denote (or check) that a volume adjustment + * request is from a hardware key press. (e.g. {@link MediaController}). * @hide */ @SystemApi - public static final int FLAG_FROM_KEY = 1 << 12; + public static final int FLAG_FROM_KEY = 1 << 16; - private static final String[] FLAG_NAMES = { - "FLAG_SHOW_UI", - "FLAG_ALLOW_RINGER_MODES", - "FLAG_PLAY_SOUND", - "FLAG_REMOVE_SOUND_AND_VIBRATE", - "FLAG_VIBRATE", - "FLAG_FIXED_VOLUME", - "FLAG_BLUETOOTH_ABS_VOLUME", - "FLAG_SHOW_SILENT_HINT", - "FLAG_HDMI_SYSTEM_AUDIO_VOLUME", - "FLAG_ACTIVE_MEDIA_ONLY", - "FLAG_SHOW_UI_WARNINGS", - "FLAG_SHOW_VIBRATE_HINT", - "FLAG_FROM_KEY", - }; + // The iterator of TreeMap#entrySet() returns the entries in ascending key order. + private static final TreeMap FLAG_NAMES = new TreeMap<>(); + + static { + FLAG_NAMES.put(FLAG_SHOW_UI, "FLAG_SHOW_UI"); + FLAG_NAMES.put(FLAG_ALLOW_RINGER_MODES, "FLAG_ALLOW_RINGER_MODES"); + FLAG_NAMES.put(FLAG_PLAY_SOUND, "FLAG_PLAY_SOUND"); + FLAG_NAMES.put(FLAG_REMOVE_SOUND_AND_VIBRATE, "FLAG_REMOVE_SOUND_AND_VIBRATE"); + FLAG_NAMES.put(FLAG_VIBRATE, "FLAG_VIBRATE"); + FLAG_NAMES.put(FLAG_FIXED_VOLUME, "FLAG_FIXED_VOLUME"); + FLAG_NAMES.put(FLAG_BLUETOOTH_ABS_VOLUME, "FLAG_BLUETOOTH_ABS_VOLUME"); + FLAG_NAMES.put(FLAG_SHOW_SILENT_HINT, "FLAG_SHOW_SILENT_HINT"); + FLAG_NAMES.put(FLAG_HDMI_SYSTEM_AUDIO_VOLUME, "FLAG_HDMI_SYSTEM_AUDIO_VOLUME"); + FLAG_NAMES.put(FLAG_ACTIVE_MEDIA_ONLY, "FLAG_ACTIVE_MEDIA_ONLY"); + FLAG_NAMES.put(FLAG_SHOW_UI_WARNINGS, "FLAG_SHOW_UI_WARNINGS"); + FLAG_NAMES.put(FLAG_SHOW_VIBRATE_HINT, "FLAG_SHOW_VIBRATE_HINT"); + FLAG_NAMES.put(FLAG_FROM_KEY, "FLAG_FROM_KEY"); + } /** @hide */ public static String flagsToString(int flags) { final StringBuilder sb = new StringBuilder(); - for (int i = 0; i < FLAG_NAMES.length; i++) { - final int flag = 1 << i; + for (Map.Entry entry : FLAG_NAMES.entrySet()) { + final int flag = entry.getKey(); if ((flags & flag) != 0) { if (sb.length() > 0) { sb.append(','); } - sb.append(FLAG_NAMES[i]); + sb.append(entry.getValue()); flags &= ~flag; } }