public class android.media.AudioManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.AudioManager
  super_class: java.lang.Object
{
  private android.content.Context mOriginalContext;
    descriptor: Landroid/content/Context;
    flags: (0x0002) ACC_PRIVATE

  private android.content.Context mApplicationContext;
    descriptor: Landroid/content/Context;
    flags: (0x0002) ACC_PRIVATE

  private long mVolumeKeyUpTime;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final boolean mUseVolumeKeySounds;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean mUseFixedVolume;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "AudioManager"

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final android.media.AudioPortEventHandler sAudioPortEventHandler;
    descriptor: Landroid/media/AudioPortEventHandler;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final java.lang.String ACTION_AUDIO_BECOMING_NOISY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.AUDIO_BECOMING_NOISY"

  public static final java.lang.String RINGER_MODE_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.RINGER_MODE_CHANGED"

  public static final java.lang.String INTERNAL_RINGER_MODE_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.INTERNAL_RINGER_MODE_CHANGED_ACTION"

  public static final java.lang.String EXTRA_RINGER_MODE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_RINGER_MODE"

  public static final java.lang.String VIBRATE_SETTING_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.VIBRATE_SETTING_CHANGED"

  public static final java.lang.String VOLUME_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.VOLUME_CHANGED_ACTION"

  public static final java.lang.String STREAM_DEVICES_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.STREAM_DEVICES_CHANGED_ACTION"

  public static final java.lang.String STREAM_MUTE_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.STREAM_MUTE_CHANGED_ACTION"

  public static final java.lang.String MASTER_MUTE_CHANGED_ACTION;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.MASTER_MUTE_CHANGED_ACTION"

  public static final java.lang.String EXTRA_VIBRATE_SETTING;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_VIBRATE_SETTING"

  public static final java.lang.String EXTRA_VIBRATE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_VIBRATE_TYPE"

  public static final java.lang.String EXTRA_VOLUME_STREAM_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_VOLUME_STREAM_TYPE"

  public static final java.lang.String EXTRA_VOLUME_STREAM_TYPE_ALIAS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_VOLUME_STREAM_TYPE_ALIAS"

  public static final java.lang.String EXTRA_VOLUME_STREAM_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_VOLUME_STREAM_VALUE"

  public static final java.lang.String EXTRA_PREV_VOLUME_STREAM_VALUE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_PREV_VOLUME_STREAM_VALUE"

  public static final java.lang.String EXTRA_VOLUME_STREAM_DEVICES;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_VOLUME_STREAM_DEVICES"

  public static final java.lang.String EXTRA_PREV_VOLUME_STREAM_DEVICES;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_PREV_VOLUME_STREAM_DEVICES"

  public static final java.lang.String EXTRA_MASTER_VOLUME_MUTED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_MASTER_VOLUME_MUTED"

  public static final java.lang.String EXTRA_STREAM_VOLUME_MUTED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.EXTRA_STREAM_VOLUME_MUTED"

  public static final java.lang.String ACTION_HEADSET_PLUG;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.action.HEADSET_PLUG"

  public static final java.lang.String ACTION_HDMI_AUDIO_PLUG;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.action.HDMI_AUDIO_PLUG"

  public static final java.lang.String EXTRA_AUDIO_PLUG_STATE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.extra.AUDIO_PLUG_STATE"

  public static final java.lang.String EXTRA_MAX_CHANNEL_COUNT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.extra.MAX_CHANNEL_COUNT"

  public static final java.lang.String EXTRA_ENCODINGS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.extra.ENCODINGS"

  public static final int STREAM_VOICE_CALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int STREAM_SYSTEM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int STREAM_RING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int STREAM_MUSIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int STREAM_ALARM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int STREAM_NOTIFICATION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int STREAM_BLUETOOTH_SCO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int STREAM_SYSTEM_ENFORCED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int STREAM_DTMF;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int STREAM_TTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  public static final int STREAM_ACCESSIBILITY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  public static final int NUM_STREAMS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ADJUST_RAISE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int ADJUST_LOWER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int ADJUST_SAME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ADJUST_MUTE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -100

  public static final int ADJUST_UNMUTE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  public static final int ADJUST_TOGGLE_MUTE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 101

  public static final int FLAG_SHOW_UI;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int FLAG_ALLOW_RINGER_MODES;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int FLAG_PLAY_SOUND;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int FLAG_REMOVE_SOUND_AND_VIBRATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int FLAG_VIBRATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int FLAG_FIXED_VOLUME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  public static final int FLAG_BLUETOOTH_ABS_VOLUME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  public static final int FLAG_SHOW_SILENT_HINT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  public static final int FLAG_HDMI_SYSTEM_AUDIO_VOLUME;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  public static final int FLAG_ACTIVE_MEDIA_ONLY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  public static final int FLAG_SHOW_UI_WARNINGS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  public static final int FLAG_SHOW_VIBRATE_HINT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  public static final int FLAG_FROM_KEY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  private static final java.lang.String[] FLAG_NAMES;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int RINGER_MODE_SILENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int RINGER_MODE_VIBRATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int RINGER_MODE_NORMAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int RINGER_MODE_MAX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int VIBRATE_TYPE_RINGER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int VIBRATE_TYPE_NOTIFICATION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int VIBRATE_SETTING_OFF;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int VIBRATE_SETTING_ON;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int VIBRATE_SETTING_ONLY_SILENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int USE_DEFAULT_STREAM_TYPE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483648

  private static android.media.IAudioService sService;
    descriptor: Landroid/media/IAudioService;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final float VOLUME_MIN_DB;
    descriptor: F
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -758.0

  public static final java.lang.String ACTION_SCO_AUDIO_STATE_CHANGED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.SCO_AUDIO_STATE_CHANGED"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String ACTION_SCO_AUDIO_STATE_UPDATED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.ACTION_SCO_AUDIO_STATE_UPDATED"

  public static final java.lang.String EXTRA_SCO_AUDIO_STATE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.extra.SCO_AUDIO_STATE"

  public static final java.lang.String EXTRA_SCO_AUDIO_PREVIOUS_STATE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.extra.SCO_AUDIO_PREVIOUS_STATE"

  public static final int SCO_AUDIO_STATE_DISCONNECTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int SCO_AUDIO_STATE_CONNECTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int SCO_AUDIO_STATE_CONNECTING;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int SCO_AUDIO_STATE_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final java.lang.String ACTION_MICROPHONE_MUTE_CHANGED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.action.MICROPHONE_MUTE_CHANGED"

  public static final int MODE_INVALID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final int MODE_CURRENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int MODE_NORMAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int MODE_RINGTONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MODE_IN_CALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int MODE_IN_COMMUNICATION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int ROUTE_EARPIECE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ROUTE_SPEAKER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ROUTE_BLUETOOTH;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ROUTE_BLUETOOTH_SCO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ROUTE_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ROUTE_BLUETOOTH_A2DP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int ROUTE_ALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final int AUDIO_SESSION_ID_GENERATE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int FX_KEY_CLICK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int FX_FOCUS_NAVIGATION_UP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int FX_FOCUS_NAVIGATION_DOWN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int FX_FOCUS_NAVIGATION_LEFT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int FX_FOCUS_NAVIGATION_RIGHT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int FX_KEYPRESS_STANDARD;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int FX_KEYPRESS_SPACEBAR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int FX_KEYPRESS_DELETE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int FX_KEYPRESS_RETURN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int FX_KEYPRESS_INVALID;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  public static final int NUM_SOUND_EFFECTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  public static final int AUDIOFOCUS_NONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int AUDIOFOCUS_GAIN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int AUDIOFOCUS_GAIN_TRANSIENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int AUDIOFOCUS_LOSS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int AUDIOFOCUS_LOSS_TRANSIENT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final int AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -3

  private final java.util.concurrent.ConcurrentHashMap<java.lang.String, android.media.AudioManager$FocusRequestInfo> mAudioFocusIdListenerMap;
    descriptor: Ljava/util/concurrent/ConcurrentHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/String;Landroid/media/AudioManager$FocusRequestInfo;>;

  private final android.media.AudioManager$ServiceEventHandlerDelegate mServiceEventHandlerDelegate;
    descriptor: Landroid/media/AudioManager$ServiceEventHandlerDelegate;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private static final int MSSG_FOCUS_CHANGE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int MSSG_RECORDING_CONFIG_CHANGE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int MSSG_PLAYBACK_CONFIG_CHANGE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final android.media.IAudioFocusDispatcher mAudioFocusDispatcher;
    descriptor: Landroid/media/IAudioFocusDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int AUDIOFOCUS_REQUEST_FAILED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int AUDIOFOCUS_REQUEST_GRANTED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int AUDIOFOCUS_REQUEST_DELAYED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int AUDIOFOCUS_REQUEST_WAITING_FOR_EXT_POLICY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final int EXT_FOCUS_POLICY_TIMEOUT_MS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 200

  private static final java.lang.String FOCUS_CLIENT_ID_STRING;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "android_audio_focus_client_id"

  private final java.lang.Object mFocusRequestsLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.util.HashMap<java.lang.String, android.media.AudioManager$BlockingFocusResultReceiver> mFocusRequestsAwaitingResult;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/HashMap<Ljava/lang/String;Landroid/media/AudioManager$BlockingFocusResultReceiver;>;
    RuntimeInvisibleAnnotations: 
      com.android.internal.annotations.GuardedBy(value = "mFocusRequestsLock")

  public static final int AUDIOFOCUS_FLAG_DELAY_OK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int AUDIOFOCUS_FLAG_LOCK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public static final int AUDIOFOCUS_FLAGS_APPS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int AUDIOFOCUS_FLAGS_SYSTEM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private java.util.List<android.media.AudioManager$AudioPlaybackCallbackInfo> mPlaybackCallbackList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Landroid/media/AudioManager$AudioPlaybackCallbackInfo;>;

  private final java.lang.Object mPlaybackCallbackLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.media.IPlaybackConfigDispatcher mPlayCb;
    descriptor: Landroid/media/IPlaybackConfigDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int RECORD_CONFIG_EVENT_START;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int RECORD_CONFIG_EVENT_STOP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private java.util.List<android.media.AudioManager$AudioRecordingCallbackInfo> mRecordCallbackList;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Landroid/media/AudioManager$AudioRecordingCallbackInfo;>;

  private final java.lang.Object mRecordCallbackLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.media.IRecordingConfigDispatcher mRecCb;
    descriptor: Landroid/media/IRecordingConfigDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.os.IBinder mICallBack;
    descriptor: Landroid/os/IBinder;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int DEVICE_NONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int DEVICE_OUT_EARPIECE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int DEVICE_OUT_SPEAKER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int DEVICE_OUT_WIRED_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int DEVICE_OUT_WIRED_HEADPHONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int DEVICE_OUT_USB_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 67108864

  public static final int DEVICE_OUT_BLUETOOTH_SCO;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int DEVICE_OUT_BLUETOOTH_SCO_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  public static final int DEVICE_OUT_BLUETOOTH_SCO_CARKIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  public static final int DEVICE_OUT_BLUETOOTH_A2DP;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 128

  public static final int DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 256

  public static final int DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 512

  public static final int DEVICE_OUT_AUX_DIGITAL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  public static final int DEVICE_OUT_HDMI;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  public static final int DEVICE_OUT_ANLG_DOCK_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2048

  public static final int DEVICE_OUT_DGTL_DOCK_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4096

  public static final int DEVICE_OUT_USB_ACCESSORY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8192

  public static final int DEVICE_OUT_USB_DEVICE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  public static final int DEVICE_OUT_REMOTE_SUBMIX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32768

  public static final int DEVICE_OUT_TELEPHONY_TX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 65536

  public static final int DEVICE_OUT_LINE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 131072

  public static final int DEVICE_OUT_HDMI_ARC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 262144

  public static final int DEVICE_OUT_SPDIF;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 524288

  public static final int DEVICE_OUT_FM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1048576

  public static final int DEVICE_OUT_DEFAULT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1073741824

  public static final int DEVICE_IN_BUILTIN_MIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483644

  public static final int DEVICE_IN_BLUETOOTH_SCO_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483640

  public static final int DEVICE_IN_WIRED_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483632

  public static final int DEVICE_IN_HDMI;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483616

  public static final int DEVICE_IN_TELEPHONY_RX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483584

  public static final int DEVICE_IN_BACK_MIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483520

  public static final int DEVICE_IN_ANLG_DOCK_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147483136

  public static final int DEVICE_IN_DGTL_DOCK_HEADSET;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147482624

  public static final int DEVICE_IN_USB_ACCESSORY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147481600

  public static final int DEVICE_IN_USB_DEVICE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147479552

  public static final int DEVICE_IN_FM_TUNER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147475456

  public static final int DEVICE_IN_TV_TUNER;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147467264

  public static final int DEVICE_IN_LINE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147450880

  public static final int DEVICE_IN_SPDIF;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147418112

  public static final int DEVICE_IN_LOOPBACK;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2147221504

  public static final java.lang.String PROPERTY_OUTPUT_SAMPLE_RATE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.property.OUTPUT_SAMPLE_RATE"

  public static final java.lang.String PROPERTY_OUTPUT_FRAMES_PER_BUFFER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.property.OUTPUT_FRAMES_PER_BUFFER"

  public static final java.lang.String PROPERTY_SUPPORT_MIC_NEAR_ULTRASOUND;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.property.SUPPORT_MIC_NEAR_ULTRASOUND"

  public static final java.lang.String PROPERTY_SUPPORT_SPEAKER_NEAR_ULTRASOUND;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.property.SUPPORT_SPEAKER_NEAR_ULTRASOUND"

  public static final java.lang.String PROPERTY_SUPPORT_AUDIO_SOURCE_UNPROCESSED;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.media.property.SUPPORT_AUDIO_SOURCE_UNPROCESSED"

  public static final int SUCCESS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  public static final int ERROR_BAD_VALUE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -2

  public static final int ERROR_INVALID_OPERATION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -3

  public static final int ERROR_PERMISSION_DENIED;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -4

  public static final int ERROR_NO_INIT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -5

  public static final int ERROR_DEAD_OBJECT;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -6

  static final int AUDIOPORT_GENERATION_INIT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  static java.lang.Integer sAudioPortGeneration;
    descriptor: Ljava/lang/Integer;
    flags: (0x0008) ACC_STATIC

  static java.util.ArrayList<android.media.AudioPort> sAudioPortsCached;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/ArrayList<Landroid/media/AudioPort;>;

  static java.util.ArrayList<android.media.AudioPort> sPreviousAudioPortsCached;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/ArrayList<Landroid/media/AudioPort;>;

  static java.util.ArrayList<android.media.AudioPatch> sAudioPatchesCached;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0008) ACC_STATIC
    Signature: Ljava/util/ArrayList<Landroid/media/AudioPatch;>;

  private android.media.AudioManager$OnAmPortUpdateListener mPortListener;
    descriptor: Landroid/media/AudioManager$OnAmPortUpdateListener;
    flags: (0x0002) ACC_PRIVATE

  private static final int MSG_DEVICES_CALLBACK_REGISTERED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int MSG_DEVICES_DEVICES_ADDED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int MSG_DEVICES_DEVICES_REMOVED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final android.util.ArrayMap<android.media.AudioDeviceCallback, android.media.AudioManager$NativeEventHandlerDelegate> mDeviceCallbacks;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/media/AudioDeviceCallback;Landroid/media/AudioManager$NativeEventHandlerDelegate;>;

  public static final int GET_DEVICES_INPUTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int GET_DEVICES_OUTPUTS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int GET_DEVICES_ALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private java.util.ArrayList<android.media.AudioDevicePort> mPreviousPorts;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;

  private java.util.concurrent.Executor mAudioServerStateExec;
    descriptor: Ljava/util/concurrent/Executor;
    flags: (0x0002) ACC_PRIVATE

  private android.media.AudioManager$AudioServerStateCallback mAudioServerStateCb;
    descriptor: Landroid/media/AudioManager$AudioServerStateCallback;
    flags: (0x0002) ACC_PRIVATE

  private final java.lang.Object mAudioServerStateCbLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.media.IAudioServerStateDispatcher mAudioServerStateDispatcher;
    descriptor: Landroid/media/IAudioServerStateDispatcher;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 87
            new android.media.AudioPortEventHandler
            dup
            invokespecial android.media.AudioPortEventHandler.<init>:()V
            putstatic android.media.AudioManager.sAudioPortEventHandler:Landroid/media/AudioPortEventHandler;
         1: .line 540
            bipush 13
            anewarray java.lang.String
            dup
            iconst_0
         2: .line 541
            ldc "FLAG_SHOW_UI"
            aastore
            dup
            iconst_1
         3: .line 542
            ldc "FLAG_ALLOW_RINGER_MODES"
            aastore
            dup
            iconst_2
         4: .line 543
            ldc "FLAG_PLAY_SOUND"
            aastore
            dup
            iconst_3
         5: .line 544
            ldc "FLAG_REMOVE_SOUND_AND_VIBRATE"
            aastore
            dup
            iconst_4
         6: .line 545
            ldc "FLAG_VIBRATE"
            aastore
            dup
            iconst_5
         7: .line 546
            ldc "FLAG_FIXED_VOLUME"
            aastore
            dup
            bipush 6
         8: .line 547
            ldc "FLAG_BLUETOOTH_ABS_VOLUME"
            aastore
            dup
            bipush 7
         9: .line 548
            ldc "FLAG_SHOW_SILENT_HINT"
            aastore
            dup
            bipush 8
        10: .line 549
            ldc "FLAG_HDMI_SYSTEM_AUDIO_VOLUME"
            aastore
            dup
            bipush 9
        11: .line 550
            ldc "FLAG_ACTIVE_MEDIA_ONLY"
            aastore
            dup
            bipush 10
        12: .line 551
            ldc "FLAG_SHOW_UI_WARNINGS"
            aastore
            dup
            bipush 11
        13: .line 552
            ldc "FLAG_SHOW_VIBRATE_HINT"
            aastore
            dup
            bipush 12
        14: .line 553
            ldc "FLAG_FROM_KEY"
            aastore
        15: .line 540
            putstatic android.media.AudioManager.FLAG_NAMES:[Ljava/lang/String;
        16: .line 4430
            new java.lang.Integer
            dup
            iconst_0
            invokespecial java.lang.Integer.<init>:(I)V
            putstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
        17: .line 4431
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic android.media.AudioManager.sAudioPortsCached:Ljava/util/ArrayList;
        18: .line 4432
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic android.media.AudioManager.sPreviousAudioPortsCached:Ljava/util/ArrayList;
        19: .line 4433
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putstatic android.media.AudioManager.sAudioPatchesCached:Ljava/util/ArrayList;
        20: .line 4600
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static final java.lang.String adjustToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // int adj
         0: .line 427
            iload 0 /* adj */
            lookupswitch { // 6
                 -100: 4
                   -1: 2
                    0: 3
                    1: 1
                  100: 5
                  101: 6
              default: 7
          }
         1: .line 428
      StackMap locals:
      StackMap stack:
            ldc "ADJUST_RAISE"
            areturn
         2: .line 429
      StackMap locals:
      StackMap stack:
            ldc "ADJUST_LOWER"
            areturn
         3: .line 430
      StackMap locals:
      StackMap stack:
            ldc "ADJUST_SAME"
            areturn
         4: .line 431
      StackMap locals:
      StackMap stack:
            ldc "ADJUST_MUTE"
            areturn
         5: .line 432
      StackMap locals:
      StackMap stack:
            ldc "ADJUST_UNMUTE"
            areturn
         6: .line 433
      StackMap locals:
      StackMap stack:
            ldc "ADJUST_TOGGLE_MUTE"
            areturn
         7: .line 434
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "unknown adjust mode "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* adj */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // int adj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0   adj  I
    MethodParameters:
      Name  Flags
      adj   

  public static java.lang.String flagsToString(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // int flags
         0: .line 558
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         1: .line 559
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 10
         3: .line 560
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            iconst_1
            iload 2 /* i */
            ishl
            istore 3 /* flag */
        start local 3 // int flag
         4: .line 561
            iload 0 /* flags */
            iload 3 /* flag */
            iand
            ifeq 9
         5: .line 562
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 7
         6: .line 563
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 565
      StackMap locals: int
      StackMap stack:
            aload 1 /* sb */
            getstatic android.media.AudioManager.FLAG_NAMES:[Ljava/lang/String;
            iload 2 /* i */
            aaload
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         8: .line 566
            iload 0 /* flags */
            iload 3 /* flag */
            iconst_m1
            ixor
            iand
            istore 0 /* flags */
        end local 3 // int flag
         9: .line 559
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 2 /* i */
            getstatic android.media.AudioManager.FLAG_NAMES:[Ljava/lang/String;
            arraylength
            if_icmplt 3
        end local 2 // int i
        11: .line 569
            iload 0 /* flags */
            ifeq 15
        12: .line 570
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            ifle 14
        13: .line 571
            aload 1 /* sb */
            bipush 44
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 573
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            iload 0 /* flags */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            pop
        15: .line 575
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // int flags
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   16     0  flags  I
            1   16     1     sb  Ljava/lang/StringBuilder;
            2   11     2      i  I
            4    9     3   flag  I
    MethodParameters:
       Name  Flags
      flags  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 678
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2227
            aload 0 /* this */
         2: .line 2228
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield android.media.AudioManager.mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
         3: .line 2238
            aload 0 /* this */
         4: .line 2239
            new android.media.AudioManager$ServiceEventHandlerDelegate
            dup
            aload 0 /* this */
            aconst_null
            invokespecial android.media.AudioManager$ServiceEventHandlerDelegate.<init>:(Landroid/media/AudioManager;Landroid/os/Handler;)V
            putfield android.media.AudioManager.mServiceEventHandlerDelegate:Landroid/media/AudioManager$ServiceEventHandlerDelegate;
         5: .line 2314
            aload 0 /* this */
            new android.media.AudioManager$1
            dup
            aload 0 /* this */
            invokespecial android.media.AudioManager$1.<init>:(Landroid/media/AudioManager;)V
            putfield android.media.AudioManager.mAudioFocusDispatcher:Landroid/media/IAudioFocusDispatcher;
         6: .line 2421
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.AudioManager.mFocusRequestsLock:Ljava/lang/Object;
         7: .line 3318
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.AudioManager.mPlaybackCallbackLock:Ljava/lang/Object;
         8: .line 3349
            aload 0 /* this */
            new android.media.AudioManager$2
            dup
            aload 0 /* this */
            invokespecial android.media.AudioManager$2.<init>:(Landroid/media/AudioManager;)V
            putfield android.media.AudioManager.mPlayCb:Landroid/media/IPlaybackConfigDispatcher;
         9: .line 3516
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.AudioManager.mRecordCallbackLock:Ljava/lang/Object;
        10: .line 3547
            aload 0 /* this */
            new android.media.AudioManager$3
            dup
            aload 0 /* this */
            invokespecial android.media.AudioManager$3.<init>:(Landroid/media/AudioManager;)V
            putfield android.media.AudioManager.mRecCb:Landroid/media/IRecordingConfigDispatcher;
        11: .line 3602
            aload 0 /* this */
            new android.os.Binder
            dup
            invokespecial android.os.Binder.<init>:()V
            putfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
        12: .line 4564
            aload 0 /* this */
            aconst_null
            putfield android.media.AudioManager.mPortListener:Landroid/media/AudioManager$OnAmPortUpdateListener;
        13: .line 4577
            aload 0 /* this */
        14: .line 4578
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
        15: .line 4850
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.media.AudioManager.mPreviousPorts:Ljava/util/ArrayList;
        16: .line 4940
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.media.AudioManager.mAudioServerStateCbLock:Ljava/lang/Object;
        17: .line 4942
            aload 0 /* this */
        18: .line 4943
            new android.media.AudioManager$4
            dup
            aload 0 /* this */
            invokespecial android.media.AudioManager$4.<init>:(Landroid/media/AudioManager;)V
            putfield android.media.AudioManager.mAudioServerStateDispatcher:Landroid/media/IAudioServerStateDispatcher;
        19: .line 679
            aload 0 /* this */
            iconst_1
            putfield android.media.AudioManager.mUseVolumeKeySounds:Z
        20: .line 680
            aload 0 /* this */
            iconst_0
            putfield android.media.AudioManager.mUseFixedVolume:Z
        21: .line 681
            return
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Landroid/media/AudioManager;

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
         0: .line 689
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tandroid.Manifest.permission.MODIFY_PHONE_STATE cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_PHONE_STATE cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.bool cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    MethodParameters:
         Name  Flags
      context  

  private android.content.Context getContext();
    descriptor: ()Landroid/content/Context;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 695
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            ifnonnull 2
         1: .line 696
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.AudioManager.mOriginalContext:Landroid/content/Context;
            invokevirtual android.media.AudioManager.setContext:(Landroid/content/Context;)V
         2: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            ifnull 4
         3: .line 699
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            areturn
         4: .line 701
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mOriginalContext:Landroid/content/Context;
            areturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/AudioManager;

  private void setContext(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.content.Context context
         0: .line 705
            aload 0 /* this */
            aload 1 /* context */
            invokevirtual android.content.Context.getApplicationContext:()Landroid/content/Context;
            putfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
         1: .line 706
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            ifnull 4
         2: .line 707
            aload 0 /* this */
            aconst_null
            putfield android.media.AudioManager.mOriginalContext:Landroid/content/Context;
         3: .line 708
            goto 5
         4: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            putfield android.media.AudioManager.mOriginalContext:Landroid/content/Context;
         5: .line 711
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.content.Context context
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            0    6     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  private static android.media.IAudioService getService();
    descriptor: ()Landroid/media/IAudioService;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=0
         0: .line 715
            getstatic android.media.AudioManager.sService:Landroid/media/IAudioService;
            ifnull 2
         1: .line 716
            getstatic android.media.AudioManager.sService:Landroid/media/IAudioService;
            areturn
         2: .line 718
      StackMap locals:
      StackMap stack:
            ldc "audio"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 0 /* b */
        start local 0 // android.os.IBinder b
         3: .line 719
            aload 0 /* b */
            invokestatic android.media.IAudioService$Stub.asInterface:(Landroid/os/IBinder;)Landroid/media/IAudioService;
            putstatic android.media.AudioManager.sService:Landroid/media/IAudioService;
         4: .line 720
            getstatic android.media.AudioManager.sService:Landroid/media/IAudioService;
            areturn
        end local 0 // android.os.IBinder b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3    5     0     b  Landroid/os/IBinder;

  public void dispatchMediaKeyEvent(android.view.KeyEvent);
    descriptor: (Landroid/view/KeyEvent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.view.KeyEvent keyEvent
         0: .line 747
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            astore 2 /* helper */
        start local 2 // android.media.session.MediaSessionLegacyHelper helper
         1: .line 748
            aload 2 /* helper */
            aload 1 /* keyEvent */
            iconst_0
            invokevirtual android.media.session.MediaSessionLegacyHelper.sendMediaButtonEvent:(Landroid/view/KeyEvent;Z)V
         2: .line 749
            return
        end local 2 // android.media.session.MediaSessionLegacyHelper helper
        end local 1 // android.view.KeyEvent keyEvent
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/media/AudioManager;
            0    3     1  keyEvent  Landroid/view/KeyEvent;
            1    3     2    helper  Landroid/media/session/MediaSessionLegacyHelper;
    MethodParameters:
          Name  Flags
      keyEvent  

  public void preDispatchKeyEvent(android.view.KeyEvent, int);
    descriptor: (Landroid/view/KeyEvent;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.view.KeyEvent event
        start local 2 // int stream
         0: .line 759
            aload 1 /* event */
            invokevirtual android.view.KeyEvent.getKeyCode:()I
            istore 3 /* keyCode */
        start local 3 // int keyCode
         1: .line 760
            iload 3 /* keyCode */
            bipush 25
            if_icmpeq 7
            iload 3 /* keyCode */
            bipush 24
            if_icmpeq 7
         2: .line 761
            iload 3 /* keyCode */
            sipush 164
            if_icmpeq 7
         3: .line 762
            aload 0 /* this */
            getfield android.media.AudioManager.mVolumeKeyUpTime:J
            ldc 300
            ladd
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lcmp
            ifle 7
         4: .line 767
            aload 0 /* this */
            iconst_0
         5: .line 768
            iload 2 /* stream */
            bipush 8
         6: .line 767
            invokevirtual android.media.AudioManager.adjustSuggestedStreamVolume:(III)V
         7: .line 770
      StackMap locals: int
      StackMap stack:
            return
        end local 3 // int keyCode
        end local 2 // int stream
        end local 1 // android.view.KeyEvent event
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/AudioManager;
            0    8     1    event  Landroid/view/KeyEvent;
            0    8     2   stream  I
            1    8     3  keyCode  I
    MethodParameters:
        Name  Flags
      event   
      stream  

  public boolean isVolumeFixed();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 789
            aload 0 /* this */
            getfield android.media.AudioManager.mUseFixedVolume:Z
            ireturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;

  public void adjustStreamVolume(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
        start local 2 // int direction
        start local 3 // int flags
         0: .line 809
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 4 /* service */
        start local 4 // android.media.IAudioService service
         1: .line 811
            aload 4 /* service */
            iload 1 /* streamType */
            iload 2 /* direction */
            iload 3 /* flags */
         2: .line 812
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         3: .line 811
            invokeinterface android.media.IAudioService.adjustStreamVolume:(IIILjava/lang/String;)V
         4: .line 813
            goto 7
      StackMap locals: android.media.AudioManager int int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 5 /* e */
        start local 5 // android.os.RemoteException e
         6: .line 814
            aload 5 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // android.os.RemoteException e
         7: .line 816
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.media.IAudioService service
        end local 3 // int flags
        end local 2 // int direction
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Landroid/media/AudioManager;
            0    8     1  streamType  I
            0    8     2   direction  I
            0    8     3       flags  I
            1    8     4     service  Landroid/media/IAudioService;
            6    7     5           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  
      direction   
      flags       

  public void adjustVolume(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int direction
        start local 2 // int flags
         0: .line 842
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            astore 3 /* helper */
        start local 3 // android.media.session.MediaSessionLegacyHelper helper
         1: .line 843
            aload 3 /* helper */
            ldc -2147483648
            iload 1 /* direction */
            iload 2 /* flags */
            invokevirtual android.media.session.MediaSessionLegacyHelper.sendAdjustVolumeBy:(III)V
         2: .line 844
            return
        end local 3 // android.media.session.MediaSessionLegacyHelper helper
        end local 2 // int flags
        end local 1 // int direction
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Landroid/media/AudioManager;
            0    3     1  direction  I
            0    3     2      flags  I
            1    3     3     helper  Landroid/media/session/MediaSessionLegacyHelper;
    MethodParameters:
           Name  Flags
      direction  
      flags      

  public void adjustSuggestedStreamVolume(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // int direction
        start local 2 // int suggestedStreamType
        start local 3 // int flags
         0: .line 871
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            astore 4 /* helper */
        start local 4 // android.media.session.MediaSessionLegacyHelper helper
         1: .line 872
            aload 4 /* helper */
            iload 2 /* suggestedStreamType */
            iload 1 /* direction */
            iload 3 /* flags */
            invokevirtual android.media.session.MediaSessionLegacyHelper.sendAdjustVolumeBy:(III)V
         2: .line 873
            return
        end local 4 // android.media.session.MediaSessionLegacyHelper helper
        end local 3 // int flags
        end local 2 // int suggestedStreamType
        end local 1 // int direction
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    3     0                 this  Landroid/media/AudioManager;
            0    3     1            direction  I
            0    3     2  suggestedStreamType  I
            0    3     3                flags  I
            1    3     4               helper  Landroid/media/session/MediaSessionLegacyHelper;
    MethodParameters:
                     Name  Flags
      direction            
      suggestedStreamType  
      flags                

  public void setMasterMute(boolean, int);
    descriptor: (ZI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // boolean mute
        start local 2 // int flags
         0: .line 877
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         1: .line 879
            aload 3 /* service */
            iload 1 /* mute */
            iload 2 /* flags */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         2: .line 880
            invokestatic android.os.UserHandle.getCallingUserId:()I
         3: .line 879
            invokeinterface android.media.IAudioService.setMasterMute:(ZILjava/lang/String;I)V
         4: .line 881
            goto 7
      StackMap locals: android.media.AudioManager int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         6: .line 882
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         7: .line 884
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.IAudioService service
        end local 2 // int flags
        end local 1 // boolean mute
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/AudioManager;
            0    8     1     mute  Z
            0    8     2    flags  I
            1    8     3  service  Landroid/media/IAudioService;
            6    7     4        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException
    MethodParameters:
       Name  Flags
      mute   
      flags  

  public int getRingerMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 894
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 896
            aload 1 /* service */
            invokeinterface android.media.IAudioService.getRingerModeExternal:()I
         2: ireturn
         3: .line 897
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 898
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public static boolean isValidRingerMode(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int ringerMode
         0: .line 911
            iload 0 /* ringerMode */
            iflt 1
            iload 0 /* ringerMode */
            iconst_2
            if_icmple 2
         1: .line 912
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         2: .line 914
      StackMap locals:
      StackMap stack:
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         3: .line 916
            aload 1 /* service */
            iload 0 /* ringerMode */
            invokeinterface android.media.IAudioService.isValidRingerMode:(I)Z
         4: ireturn
         5: .line 917
      StackMap locals: int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         6: .line 918
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // int ringerMode
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0  ringerMode  I
            3    7     1     service  Landroid/media/IAudioService;
            6    7     2           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      ringerMode  

  public int getStreamMaxVolume(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 930
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 932
            aload 2 /* service */
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.getStreamMaxVolume:(I)I
         2: ireturn
         3: .line 933
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 934
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  streamType  I
            1    5     2     service  Landroid/media/IAudioService;
            4    5     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public int getStreamMinVolume(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 948
            iload 1 /* streamType */
            invokestatic android.media.AudioManager.isPublicStreamType:(I)Z
            ifne 2
         1: .line 949
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid stream type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* streamType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 951
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* streamType */
            invokevirtual android.media.AudioManager.getStreamMinVolumeInt:(I)I
            ireturn
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/media/AudioManager;
            0    3     1  streamType  I
    MethodParameters:
            Name  Flags
      streamType  

  public int getStreamMinVolumeInt(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 962
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 964
            aload 2 /* service */
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.getStreamMinVolume:(I)I
         2: ireturn
         3: .line 965
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 966
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  streamType  I
            1    5     2     service  Landroid/media/IAudioService;
            4    5     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public int getStreamVolume(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 979
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 981
            aload 2 /* service */
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.getStreamVolume:(I)I
         2: ireturn
         3: .line 982
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 983
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  streamType  I
            1    5     2     service  Landroid/media/IAudioService;
            4    5     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public float getStreamVolumeDb(int, int, int);
    descriptor: (III)F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
        start local 2 // int index
        start local 3 // int deviceType
         0: .line 1019
            iload 1 /* streamType */
            invokestatic android.media.AudioManager.isPublicStreamType:(I)Z
            ifne 2
         1: .line 1020
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid stream type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* streamType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1022
      StackMap locals:
      StackMap stack:
            iload 2 /* index */
            aload 0 /* this */
            iload 1 /* streamType */
            invokevirtual android.media.AudioManager.getStreamMaxVolume:(I)I
            if_icmpgt 3
            iload 2 /* index */
            aload 0 /* this */
            iload 1 /* streamType */
            invokevirtual android.media.AudioManager.getStreamMinVolume:(I)I
            if_icmpge 4
         3: .line 1023
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid stream volume index "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* index */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1025
      StackMap locals:
      StackMap stack:
            iload 3 /* deviceType */
            invokestatic android.media.AudioDeviceInfo.isValidAudioDeviceTypeOut:(I)Z
            ifne 6
         5: .line 1026
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid audio output device type "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* deviceType */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1028
      StackMap locals:
      StackMap stack:
            iload 1 /* streamType */
            iload 2 /* index */
         7: .line 1029
            iload 3 /* deviceType */
            invokestatic android.media.AudioDeviceInfo.convertDeviceTypeToInternalDevice:(I)I
         8: .line 1028
            invokestatic android.media.AudioSystem.getStreamVolumeDB:(III)F
            fstore 4 /* gain */
        start local 4 // float gain
         9: .line 1030
            fload 4 /* gain */
            ldc -758.0
            fcmpg
            ifgt 11
        10: .line 1031
            ldc -Infinity
            freturn
        11: .line 1033
      StackMap locals: float
      StackMap stack:
            fload 4 /* gain */
            freturn
        end local 4 // float gain
        end local 3 // int deviceType
        end local 2 // int index
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   12     0        this  Landroid/media/AudioManager;
            0   12     1  streamType  I
            0   12     2       index  I
            0   12     3  deviceType  I
            9   12     4        gain  F
    MethodParameters:
            Name  Flags
      streamType  
      index       
      deviceType  

  private static boolean isPublicStreamType(int);
    descriptor: (I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int streamType
         0: .line 1038
            iload 0 /* streamType */
            tableswitch { // 0 - 10
                    0: 1
                    1: 1
                    2: 1
                    3: 1
                    4: 1
                    5: 1
                    6: 2
                    7: 2
                    8: 1
                    9: 2
                   10: 1
              default: 2
          }
         1: .line 1047
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 1049
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // int streamType
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0  streamType  I
    MethodParameters:
            Name  Flags
      streamType  

  public int getLastAudibleStreamVolume(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 1059
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1061
            aload 2 /* service */
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.getLastAudibleStreamVolume:(I)I
         2: ireturn
         3: .line 1062
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1063
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  streamType  I
            1    5     2     service  Landroid/media/IAudioService;
            4    5     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public int getUiSoundsStreamType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1074
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1076
            aload 1 /* service */
            invokeinterface android.media.IAudioService.getUiSoundsStreamType:()I
         2: ireturn
         3: .line 1077
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1078
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void setRingerMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int ringerMode
         0: .line 1099
            iload 1 /* ringerMode */
            invokestatic android.media.AudioManager.isValidRingerMode:(I)Z
            ifne 2
         1: .line 1100
            return
         2: .line 1102
      StackMap locals:
      StackMap stack:
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         3: .line 1104
            aload 2 /* service */
            iload 1 /* ringerMode */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            invokeinterface android.media.IAudioService.setRingerModeExternal:(ILjava/lang/String;)V
         4: .line 1105
            goto 7
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         6: .line 1106
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         7: .line 1108
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // int ringerMode
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Landroid/media/AudioManager;
            0    8     1  ringerMode  I
            3    8     2     service  Landroid/media/IAudioService;
            6    7     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      ringerMode  

  public void setStreamVolume(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
        start local 2 // int index
        start local 3 // int flags
         0: .line 1126
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 4 /* service */
        start local 4 // android.media.IAudioService service
         1: .line 1128
            aload 4 /* service */
            iload 1 /* streamType */
            iload 2 /* index */
            iload 3 /* flags */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            invokeinterface android.media.IAudioService.setStreamVolume:(IIILjava/lang/String;)V
         2: .line 1129
            goto 5
      StackMap locals: android.media.AudioManager int int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 5 /* e */
        start local 5 // android.os.RemoteException e
         4: .line 1130
            aload 5 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // android.os.RemoteException e
         5: .line 1132
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.media.IAudioService service
        end local 3 // int flags
        end local 2 // int index
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Landroid/media/AudioManager;
            0    6     1  streamType  I
            0    6     2       index  I
            0    6     3       flags  I
            1    6     4     service  Landroid/media/IAudioService;
            4    5     5           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  
      index       
      flags       

  public void setStreamSolo(int, boolean);
    descriptor: (IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
        start local 2 // boolean state
         0: .line 1149
            ldc "AudioManager"
            ldc "setStreamSolo has been deprecated. Do not use."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 1150
            return
        end local 2 // boolean state
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/AudioManager;
            0    2     1  streamType  I
            0    2     2       state  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      streamType  
      state       

  public void setStreamMute(int, boolean);
    descriptor: (IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
        start local 2 // boolean state
         0: .line 1186
            ldc "AudioManager"
            ldc "setStreamMute is deprecated. adjustStreamVolume should be used instead."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         1: .line 1187
            iload 2 /* state */
            ifeq 2
            bipush -100
            goto 3
      StackMap locals:
      StackMap stack:
         2: bipush 100
      StackMap locals:
      StackMap stack: int
         3: istore 3 /* direction */
        start local 3 // int direction
         4: .line 1188
            iload 1 /* streamType */
            ldc -2147483648
            if_icmpne 7
         5: .line 1189
            aload 0 /* this */
            iload 3 /* direction */
            iload 1 /* streamType */
            iconst_0
            invokevirtual android.media.AudioManager.adjustSuggestedStreamVolume:(III)V
         6: .line 1190
            goto 8
         7: .line 1191
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 1 /* streamType */
            iload 3 /* direction */
            iconst_0
            invokevirtual android.media.AudioManager.adjustStreamVolume:(III)V
         8: .line 1193
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int direction
        end local 2 // boolean state
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    9     0        this  Landroid/media/AudioManager;
            0    9     1  streamType  I
            0    9     2       state  Z
            4    9     3   direction  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      streamType  
      state       

  public boolean isStreamMute(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 1203
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1205
            aload 2 /* service */
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.isStreamMute:(I)Z
         2: ireturn
         3: .line 1206
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1207
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  streamType  I
            1    5     2     service  Landroid/media/IAudioService;
            4    5     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public boolean isMasterMute();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1217
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1219
            aload 1 /* service */
            invokeinterface android.media.IAudioService.isMasterMute:()Z
         2: ireturn
         3: .line 1220
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1221
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void forceVolumeControlStream(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 1233
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1235
            aload 2 /* service */
            iload 1 /* streamType */
            aload 0 /* this */
            getfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
            invokeinterface android.media.IAudioService.forceVolumeControlStream:(ILandroid/os/IBinder;)V
         2: .line 1236
            goto 5
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1237
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         5: .line 1239
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Landroid/media/AudioManager;
            0    6     1  streamType  I
            1    6     2     service  Landroid/media/IAudioService;
            4    5     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public boolean shouldVibrate(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int vibrateType
         0: .line 1261
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1263
            aload 2 /* service */
            iload 1 /* vibrateType */
            invokeinterface android.media.IAudioService.shouldVibrate:(I)Z
         2: ireturn
         3: .line 1264
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1265
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int vibrateType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/media/AudioManager;
            0    5     1  vibrateType  I
            1    5     2      service  Landroid/media/IAudioService;
            4    5     3            e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
             Name  Flags
      vibrateType  

  public int getVibrateSetting(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int vibrateType
         0: .line 1287
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1289
            aload 2 /* service */
            iload 1 /* vibrateType */
            invokeinterface android.media.IAudioService.getVibrateSetting:(I)I
         2: ireturn
         3: .line 1290
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1291
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
        end local 1 // int vibrateType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/media/AudioManager;
            0    5     1  vibrateType  I
            1    5     2      service  Landroid/media/IAudioService;
            4    5     3            e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
             Name  Flags
      vibrateType  

  public void setVibrateSetting(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int vibrateType
        start local 2 // int vibrateSetting
         0: .line 1314
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         1: .line 1316
            aload 3 /* service */
            iload 1 /* vibrateType */
            iload 2 /* vibrateSetting */
            invokeinterface android.media.IAudioService.setVibrateSetting:(II)V
         2: .line 1317
            goto 5
      StackMap locals: android.media.AudioManager int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         4: .line 1318
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         5: .line 1320
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.IAudioService service
        end local 2 // int vibrateSetting
        end local 1 // int vibrateType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Landroid/media/AudioManager;
            0    6     1     vibrateType  I
            0    6     2  vibrateSetting  I
            1    6     3         service  Landroid/media/IAudioService;
            4    5     4               e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
                Name  Flags
      vibrateType     
      vibrateSetting  

  public void setSpeakerphoneOn(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // boolean on
         0: .line 1332
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1334
            aload 2 /* service */
            iload 1 /* on */
            invokeinterface android.media.IAudioService.setSpeakerphoneOn:(Z)V
         2: .line 1335
            goto 5
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1336
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         5: .line 1338
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // boolean on
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            0    6     1       on  Z
            1    6     2  service  Landroid/media/IAudioService;
            4    5     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      on    

  public boolean isSpeakerphoneOn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1346
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1348
            aload 1 /* service */
            invokeinterface android.media.IAudioService.isSpeakerphoneOn:()Z
         2: ireturn
         3: .line 1349
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1350
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public boolean isOffloadedPlaybackSupported(android.media.AudioFormat);
    descriptor: (Landroid/media/AudioFormat;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioFormat format
         0: .line 1365
            aload 1 /* format */
            invokestatic android.media.AudioSystem.isOffloadSupported:(Landroid/media/AudioFormat;)Z
            ireturn
        end local 1 // android.media.AudioFormat format
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/AudioManager;
            0    1     1  format  Landroid/media/AudioFormat;
    MethodParameters:
        Name  Flags
      format  

  public boolean isBluetoothScoAvailableOffCall();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1451
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tcom.android.internal.R.bool cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;

  public void startBluetoothSco();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1500
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1502
            aload 1 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
         2: .line 1503
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getApplicationInfo:()Landroid/content/pm/ApplicationInfo;
            getfield android.content.pm.ApplicationInfo.targetSdkVersion:I
         3: .line 1502
            invokeinterface android.media.IAudioService.startBluetoothSco:(Landroid/os/IBinder;I)V
         4: .line 1504
            goto 7
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         6: .line 1505
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         7: .line 1507
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/AudioManager;
            1    8     1  service  Landroid/media/IAudioService;
            6    7     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException

  public void startBluetoothScoVirtualCall();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1525
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1527
            aload 1 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
            invokeinterface android.media.IAudioService.startBluetoothScoVirtualCall:(Landroid/os/IBinder;)V
         2: .line 1528
            goto 5
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1529
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         5: .line 1531
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            1    6     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void stopBluetoothSco();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1544
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1546
            aload 1 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
            invokeinterface android.media.IAudioService.stopBluetoothSco:(Landroid/os/IBinder;)V
         2: .line 1547
            goto 5
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1548
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         5: .line 1550
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            1    6     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void setBluetoothScoOn(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // boolean on
         0: .line 1562
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1564
            aload 2 /* service */
            iload 1 /* on */
            invokeinterface android.media.IAudioService.setBluetoothScoOn:(Z)V
         2: .line 1565
            goto 5
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1566
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         5: .line 1568
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // boolean on
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            0    6     1       on  Z
            1    6     2  service  Landroid/media/IAudioService;
            4    5     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      on    

  public boolean isBluetoothScoOn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1577
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1579
            aload 1 /* service */
            invokeinterface android.media.IAudioService.isBluetoothScoOn:()Z
         2: ireturn
         3: .line 1580
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1581
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void setBluetoothA2dpOn(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // boolean on
         0: .line 1591
            return
        end local 1 // boolean on
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
            0    1     1    on  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      on    

  public boolean isBluetoothA2dpOn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1601
            sipush 128
            ldc ""
            invokestatic android.media.AudioSystem.getDeviceConnectionState:(ILjava/lang/String;)I
         1: .line 1602
            iconst_1
         2: .line 1601
            if_icmpne 4
         3: .line 1603
            iconst_1
            ireturn
         4: .line 1604
      StackMap locals:
      StackMap stack:
            sipush 256
            ldc ""
            invokestatic android.media.AudioSystem.getDeviceConnectionState:(ILjava/lang/String;)I
         5: .line 1605
            iconst_1
         6: .line 1604
            if_icmpne 8
         7: .line 1606
            iconst_1
            ireturn
         8: .line 1607
      StackMap locals:
      StackMap stack:
            sipush 512
            ldc ""
            invokestatic android.media.AudioSystem.getDeviceConnectionState:(ILjava/lang/String;)I
         9: .line 1608
            iconst_1
        10: .line 1607
            if_icmpne 12
        11: .line 1609
            iconst_1
            ireturn
        12: .line 1611
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Landroid/media/AudioManager;

  public void setWiredHeadsetOn(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // boolean on
         0: .line 1622
            return
        end local 1 // boolean on
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
            0    1     1    on  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      on    

  public boolean isWiredHeadsetOn();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1634
            iconst_4
            ldc ""
            invokestatic android.media.AudioSystem.getDeviceConnectionState:(ILjava/lang/String;)I
            ifne 4
         1: .line 1636
            bipush 8
            ldc ""
            invokestatic android.media.AudioSystem.getDeviceConnectionState:(ILjava/lang/String;)I
            ifne 4
         2: .line 1638
            ldc 67108864
            ldc ""
            invokestatic android.media.AudioSystem.getDeviceConnectionState:(ILjava/lang/String;)I
            ifne 4
         3: .line 1640
            iconst_0
            ireturn
         4: .line 1642
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/AudioManager;

  public void setMicrophoneMute(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // boolean on
         0: .line 1656
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1658
            aload 2 /* service */
            iload 1 /* on */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         2: .line 1659
            invokestatic android.os.UserHandle.getCallingUserId:()I
         3: .line 1658
            invokeinterface android.media.IAudioService.setMicrophoneMute:(ZLjava/lang/String;I)V
         4: .line 1660
            goto 7
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         6: .line 1661
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         7: .line 1663
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // boolean on
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/AudioManager;
            0    8     1       on  Z
            1    8     2  service  Landroid/media/IAudioService;
            6    7     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      on    

  public boolean isMicrophoneMute();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1671
            invokestatic android.media.AudioSystem.isMicrophoneMuted:()Z
            ireturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;

  public void setMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int mode
         0: .line 1705
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 1707
            aload 2 /* service */
            iload 1 /* mode */
            aload 0 /* this */
            getfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            invokeinterface android.media.IAudioService.setMode:(ILandroid/os/IBinder;Ljava/lang/String;)V
         2: .line 1708
            goto 5
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 1709
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         5: .line 1711
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // int mode
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            0    6     1     mode  I
            1    6     2  service  Landroid/media/IAudioService;
            4    5     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      mode  

  public int getMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1721
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1723
            aload 1 /* service */
            invokeinterface android.media.IAudioService.getMode:()I
         2: ireturn
         3: .line 1724
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 1725
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void setRouting(int, int, int);
    descriptor: (III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=4, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // int mode
        start local 2 // int routes
        start local 3 // int mask
         0: .line 1816
            return
        end local 3 // int mask
        end local 2 // int routes
        end local 1 // int mode
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/AudioManager;
            0    1     1    mode  I
            0    1     2  routes  I
            0    1     3    mask  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      mode    
      routes  
      mask    

  public int getRouting(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int mode
         0: .line 1829
            iconst_m1
            ireturn
        end local 1 // int mode
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
            0    1     1  mode  I
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
      Name  Flags
      mode  

  public boolean isMusicActive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1838
            iconst_3
            iconst_0
            invokestatic android.media.AudioSystem.isStreamActive:(II)Z
            ireturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;

  public boolean isMusicActiveRemotely();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1848
            iconst_3
            iconst_0
            invokestatic android.media.AudioSystem.isStreamActiveRemotely:(II)Z
            ireturn
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;

  public boolean isAudioFocusExclusive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1858
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 1860
            aload 1 /* service */
            invokeinterface android.media.IAudioService.getCurrentAudioFocus:()I
            iconst_4
            if_icmpne 2
            iconst_1
            ireturn
      StackMap locals: android.media.IAudioService
      StackMap stack:
         2: iconst_0
         3: ireturn
         4: .line 1861
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         5: .line 1862
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            1    6     1  service  Landroid/media/IAudioService;
            5    6     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     3       4  Class android.os.RemoteException

  public int generateAudioSessionId();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 1883
            invokestatic android.media.AudioSystem.newAudioSessionId:()I
            istore 1 /* session */
        start local 1 // int session
         1: .line 1884
            iload 1 /* session */
            ifle 3
         2: .line 1885
            iload 1 /* session */
            ireturn
         3: .line 1887
      StackMap locals: int
      StackMap stack:
            ldc "AudioManager"
            ldc "Failure to generate a new audio session ID"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 1888
            iconst_m1
            ireturn
        end local 1 // int session
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  session  I

  public void setParameter(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 1917
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 1 /* key */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* value */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual android.media.AudioManager.setParameters:(Ljava/lang/String;)V
         1: .line 1918
            return
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/AudioManager;
            0    2     1    key  Ljava/lang/String;
            0    2     2  value  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      key    
      value  

  public void setParameters(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // java.lang.String keyValuePairs
         0: .line 1928
            aload 1 /* keyValuePairs */
            invokestatic android.media.AudioSystem.setParameters:(Ljava/lang/String;)I
            pop
         1: .line 1929
            return
        end local 1 // java.lang.String keyValuePairs
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Landroid/media/AudioManager;
            0    2     1  keyValuePairs  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      keyValuePairs  

  public java.lang.String getParameters(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // java.lang.String keys
         0: .line 1939
            aload 1 /* keys */
            invokestatic android.media.AudioSystem.getParameters:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 1 // java.lang.String keys
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
            0    1     1  keys  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      keys  

  public void playSoundEffect(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int effectType
         0: .line 2016
            iload 1 /* effectType */
            iflt 1
            iload 1 /* effectType */
            bipush 10
            if_icmplt 2
         1: .line 2017
      StackMap locals:
      StackMap stack:
            return
         2: .line 2020
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic android.os.Process.myUserHandle:()Landroid/os/UserHandle;
            invokevirtual android.os.UserHandle.getIdentifier:()I
            invokevirtual android.media.AudioManager.querySoundEffectsEnabled:(I)Z
            ifne 4
         3: .line 2021
            return
         4: .line 2024
      StackMap locals:
      StackMap stack:
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         5: .line 2026
            aload 2 /* service */
            iload 1 /* effectType */
            invokeinterface android.media.IAudioService.playSoundEffect:(I)V
         6: .line 2027
            goto 9
      StackMap locals: android.media.AudioManager int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         7: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         8: .line 2028
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         9: .line 2030
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // int effectType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Landroid/media/AudioManager;
            0   10     1  effectType  I
            5   10     2     service  Landroid/media/IAudioService;
            8    9     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           5     6       7  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      effectType  

  public void playSoundEffect(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int effectType
        start local 2 // int userId
         0: .line 2051
            iload 1 /* effectType */
            iflt 1
            iload 1 /* effectType */
            bipush 10
            if_icmplt 2
         1: .line 2052
      StackMap locals:
      StackMap stack:
            return
         2: .line 2055
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 2 /* userId */
            invokevirtual android.media.AudioManager.querySoundEffectsEnabled:(I)Z
            ifne 4
         3: .line 2056
            return
         4: .line 2059
      StackMap locals:
      StackMap stack:
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         5: .line 2061
            aload 3 /* service */
            iload 1 /* effectType */
            invokeinterface android.media.IAudioService.playSoundEffect:(I)V
         6: .line 2062
            goto 9
      StackMap locals: android.media.AudioManager int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         7: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         8: .line 2063
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         9: .line 2065
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.IAudioService service
        end local 2 // int userId
        end local 1 // int effectType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   10     0        this  Landroid/media/AudioManager;
            0   10     1  effectType  I
            0   10     2      userId  I
            5   10     3     service  Landroid/media/IAudioService;
            8    9     4           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           5     6       7  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      effectType  
      userId      

  public void playSoundEffect(int, float);
    descriptor: (IF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int effectType
        start local 2 // float volume
         0: .line 2087
            iload 1 /* effectType */
            iflt 1
            iload 1 /* effectType */
            bipush 10
            if_icmplt 2
         1: .line 2088
      StackMap locals:
      StackMap stack:
            return
         2: .line 2091
      StackMap locals:
      StackMap stack:
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         3: .line 2093
            aload 3 /* service */
            iload 1 /* effectType */
            fload 2 /* volume */
            invokeinterface android.media.IAudioService.playSoundEffectVolume:(IF)V
         4: .line 2094
            goto 7
      StackMap locals: android.media.AudioManager int float android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         6: .line 2095
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         7: .line 2097
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.IAudioService service
        end local 2 // float volume
        end local 1 // int effectType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Landroid/media/AudioManager;
            0    8     1  effectType  I
            0    8     2      volume  F
            3    8     3     service  Landroid/media/IAudioService;
            6    7     4           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     4       5  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      effectType  
      volume      

  private boolean querySoundEffectsEnabled(int);
    descriptor: (I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int user
         0: .line 2103
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         1: .line 2104
            ldc "sound_effects_enabled"
            iconst_0
            iload 1 /* user */
         2: .line 2103
            invokestatic android.provider.Settings$System.getIntForUser:(Landroid/content/ContentResolver;Ljava/lang/String;II)I
            ifeq 3
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_0
            ireturn
        end local 1 // int user
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/AudioManager;
            0    4     1  user  I
    MethodParameters:
      Name  Flags
      user  

  public void loadSoundEffects();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 2112
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 2114
            aload 1 /* service */
            invokeinterface android.media.IAudioService.loadSoundEffects:()Z
            pop
         2: .line 2115
            goto 5
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 2116
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         5: .line 2118
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            1    6     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void unloadSoundEffects();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 2126
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 2128
            aload 1 /* service */
            invokeinterface android.media.IAudioService.unloadSoundEffects:()V
         2: .line 2129
            goto 5
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 2130
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         5: .line 2132
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            1    6     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  private android.media.AudioManager$FocusRequestInfo findFocusRequestInfo(java.lang.String);
    descriptor: (Ljava/lang/String;)Landroid/media/AudioManager$FocusRequestInfo;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // java.lang.String id
         0: .line 2231
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 1 /* id */
            invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.media.AudioManager$FocusRequestInfo
            areturn
        end local 1 // java.lang.String id
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
            0    1     1    id  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      id    

  private java.lang.String getIdForAudioFocusListener(android.media.AudioManager$OnAudioFocusChangeListener);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
         0: .line 2348
            aload 1 /* l */
            ifnonnull 2
         1: .line 2349
            new java.lang.String
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
            areturn
         2: .line 2351
      StackMap locals:
      StackMap stack:
            new java.lang.String
            dup
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* l */
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
            areturn
        end local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/AudioManager;
            0    3     1     l  Landroid/media/AudioManager$OnAudioFocusChangeListener;
    MethodParameters:
      Name  Flags
      l     

  public void registerAudioFocusRequest(android.media.AudioFocusRequest);
    descriptor: (Landroid/media/AudioFocusRequest;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=5, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioFocusRequest afr
         0: .line 2362
            aload 1 /* afr */
            invokevirtual android.media.AudioFocusRequest.getOnAudioFocusChangeListenerHandler:()Landroid/os/Handler;
            astore 2 /* h */
        start local 2 // android.os.Handler h
         1: .line 2363
            new android.media.AudioManager$FocusRequestInfo
            dup
            aload 1 /* afr */
            aload 2 /* h */
            ifnonnull 2
            aconst_null
            goto 3
         2: .line 2364
      StackMap locals: android.media.AudioManager android.media.AudioFocusRequest android.os.Handler
      StackMap stack: new 1 new 1 android.media.AudioFocusRequest
            new android.media.AudioManager$ServiceEventHandlerDelegate
            dup
            aload 0 /* this */
            aload 2 /* h */
            invokespecial android.media.AudioManager$ServiceEventHandlerDelegate.<init>:(Landroid/media/AudioManager;Landroid/os/Handler;)V
            invokevirtual android.media.AudioManager$ServiceEventHandlerDelegate.getHandler:()Landroid/os/Handler;
         3: .line 2363
      StackMap locals: android.media.AudioManager android.media.AudioFocusRequest android.os.Handler
      StackMap stack: new 1 new 1 android.media.AudioFocusRequest android.os.Handler
            invokespecial android.media.AudioManager$FocusRequestInfo.<init>:(Landroid/media/AudioFocusRequest;Landroid/os/Handler;)V
            astore 3 /* fri */
        start local 3 // android.media.AudioManager$FocusRequestInfo fri
         4: .line 2365
            aload 0 /* this */
            aload 1 /* afr */
            invokevirtual android.media.AudioFocusRequest.getOnAudioFocusChangeListener:()Landroid/media/AudioManager$OnAudioFocusChangeListener;
            invokevirtual android.media.AudioManager.getIdForAudioFocusListener:(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
            astore 4 /* key */
        start local 4 // java.lang.String key
         5: .line 2366
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 4 /* key */
            aload 3 /* fri */
            invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 2367
            return
        end local 4 // java.lang.String key
        end local 3 // android.media.AudioManager$FocusRequestInfo fri
        end local 2 // android.os.Handler h
        end local 1 // android.media.AudioFocusRequest afr
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/AudioManager;
            0    7     1   afr  Landroid/media/AudioFocusRequest;
            1    7     2     h  Landroid/os/Handler;
            4    7     3   fri  Landroid/media/AudioManager$FocusRequestInfo;
            5    7     4   key  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      afr   

  public void unregisterAudioFocusRequest(android.media.AudioManager$OnAudioFocusChangeListener);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
         0: .line 2376
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioFocusIdListenerMap:Ljava/util/concurrent/ConcurrentHashMap;
            aload 0 /* this */
            aload 1 /* l */
            invokevirtual android.media.AudioManager.getIdForAudioFocusListener:(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
            invokevirtual java.util.concurrent.ConcurrentHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 2377
            return
        end local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/AudioManager;
            0    2     1     l  Landroid/media/AudioManager$OnAudioFocusChangeListener;
    MethodParameters:
      Name  Flags
      l     

  public int requestAudioFocus(android.media.AudioManager$OnAudioFocusChangeListener, int, int);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        start local 2 // int streamType
        start local 3 // int durationHint
         0: .line 2451
            iload 2 /* streamType */
         1: .line 2452
            ldc "AudioManager"
            ldc "requestAudioFocus()"
         2: .line 2451
            invokestatic android.media.PlayerBase.deprecateStreamTypeForPlayback:(ILjava/lang/String;Ljava/lang/String;)V
         3: .line 2453
            iconst_0
            istore 4 /* status */
        start local 4 // int status
         4: .line 2459
            aload 0 /* this */
            aload 1 /* l */
         5: .line 2460
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
         6: .line 2461
            iload 2 /* streamType */
            invokevirtual android.media.AudioAttributes$Builder.setInternalLegacyStreamType:(I)Landroid/media/AudioAttributes$Builder;
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         7: .line 2462
            iload 3 /* durationHint */
         8: .line 2463
            iconst_0
         9: .line 2459
            invokevirtual android.media.AudioManager.requestAudioFocus:(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I
            istore 4 /* status */
        10: .line 2464
            goto 13
      StackMap locals: android.media.AudioManager android.media.AudioManager$OnAudioFocusChangeListener int int int
      StackMap stack: java.lang.IllegalArgumentException
        11: astore 5 /* e */
        start local 5 // java.lang.IllegalArgumentException e
        12: .line 2465
            ldc "AudioManager"
            ldc "Audio focus request denied due to "
            aload 5 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // java.lang.IllegalArgumentException e
        13: .line 2468
      StackMap locals:
      StackMap stack:
            iload 4 /* status */
            ireturn
        end local 4 // int status
        end local 3 // int durationHint
        end local 2 // int streamType
        end local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Landroid/media/AudioManager;
            0   14     1             l  Landroid/media/AudioManager$OnAudioFocusChangeListener;
            0   14     2    streamType  I
            0   14     3  durationHint  I
            4   14     4        status  I
           12   13     5             e  Ljava/lang/IllegalArgumentException;
      Exception table:
        from    to  target  type
           4    10      11  Class java.lang.IllegalArgumentException
    MethodParameters:
              Name  Flags
      l             
      streamType    
      durationHint  

  public int requestAudioFocus(android.media.AudioFocusRequest);
    descriptor: (Landroid/media/AudioFocusRequest;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioFocusRequest focusRequest
         0: .line 2524
            aload 0 /* this */
            aload 1 /* focusRequest */
            aconst_null
            invokevirtual android.media.AudioManager.requestAudioFocus:(Landroid/media/AudioFocusRequest;Landroid/media/audiopolicy/AudioPolicy;)I
            ireturn
        end local 1 // android.media.AudioFocusRequest focusRequest
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Landroid/media/AudioManager;
            0    1     1  focusRequest  Landroid/media/AudioFocusRequest;
    MethodParameters:
              Name  Flags
      focusRequest  

  public int abandonAudioFocusRequest(android.media.AudioFocusRequest);
    descriptor: (Landroid/media/AudioFocusRequest;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioFocusRequest focusRequest
         0: .line 2535
            aload 1 /* focusRequest */
            ifnonnull 2
         1: .line 2536
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioFocusRequest"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2538
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* focusRequest */
            invokevirtual android.media.AudioFocusRequest.getOnAudioFocusChangeListener:()Landroid/media/AudioManager$OnAudioFocusChangeListener;
         3: .line 2539
            aload 1 /* focusRequest */
            invokevirtual android.media.AudioFocusRequest.getAudioAttributes:()Landroid/media/AudioAttributes;
         4: .line 2538
            invokevirtual android.media.AudioManager.abandonAudioFocus:(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I
            ireturn
        end local 1 // android.media.AudioFocusRequest focusRequest
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    5     0          this  Landroid/media/AudioManager;
            0    5     1  focusRequest  Landroid/media/AudioFocusRequest;
    MethodParameters:
              Name  Flags
      focusRequest  

  public int requestAudioFocus(android.media.AudioManager$OnAudioFocusChangeListener, android.media.AudioAttributes, int, int);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.media.AudioManager this
         0: .line 2575
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MODIFY_PHONE_STATE cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    Exceptions:
      throws java.lang.IllegalArgumentException
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
                   Name  Flags
      l                  
      requestAttributes  
      durationHint       
      flags              

  public int requestAudioFocus(android.media.AudioManager$OnAudioFocusChangeListener, android.media.AudioAttributes, int, int, android.media.audiopolicy.AudioPolicy);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;IILandroid/media/audiopolicy/AudioPolicy;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=6
        start local 0 // android.media.AudioManager this
         0: .line 2616
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tandroid.Manifest.permission.MODIFY_PHONE_STATE cannot be resolved to a type\n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    Exceptions:
      throws java.lang.IllegalArgumentException
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
                   Name  Flags
      l                  
      requestAttributes  
      durationHint       
      flags              
      ap                 

  public int requestAudioFocus(android.media.AudioFocusRequest, android.media.audiopolicy.AudioPolicy);
    descriptor: (Landroid/media/AudioFocusRequest;Landroid/media/audiopolicy/AudioPolicy;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.AudioManager this
         0: .line 2677
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
      Name  Flags
      afr   
      ap    

  public void requestAudioFocusForCall(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
        start local 2 // int durationHint
         0: .line 2804
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         1: .line 2806
            aload 3 /* service */
            new android.media.AudioAttributes$Builder
            dup
            invokespecial android.media.AudioAttributes$Builder.<init>:()V
         2: .line 2807
            iload 1 /* streamType */
            invokevirtual android.media.AudioAttributes$Builder.setInternalLegacyStreamType:(I)Landroid/media/AudioAttributes$Builder;
            invokevirtual android.media.AudioAttributes$Builder.build:()Landroid/media/AudioAttributes;
         3: .line 2808
            iload 2 /* durationHint */
            aload 0 /* this */
            getfield android.media.AudioManager.mICallBack:Landroid/os/IBinder;
            aconst_null
         4: .line 2809
            ldc "AudioFocus_For_Phone_Ring_And_Calls"
         5: .line 2810
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         6: .line 2811
            iconst_4
         7: .line 2812
            aconst_null
            iconst_0
         8: .line 2806
            invokeinterface android.media.IAudioService.requestAudioFocus:(Landroid/media/AudioAttributes;ILandroid/os/IBinder;Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Ljava/lang/String;ILandroid/media/audiopolicy/IAudioPolicyCallback;I)I
            pop
         9: .line 2813
            goto 12
      StackMap locals: android.media.AudioManager int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
        10: astore 4 /* e */
        start local 4 // android.os.RemoteException e
        11: .line 2814
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
        12: .line 2816
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.IAudioService service
        end local 2 // int durationHint
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Landroid/media/AudioManager;
            0   13     1    streamType  I
            0   13     2  durationHint  I
            1   13     3       service  Landroid/media/IAudioService;
           11   12     4             e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     9      10  Class android.os.RemoteException
    MethodParameters:
              Name  Flags
      streamType    
      durationHint  

  public int getFocusRampTimeMs(int, android.media.AudioAttributes);
    descriptor: (ILandroid/media/AudioAttributes;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int focusGain
        start local 2 // android.media.AudioAttributes attr
         0: .line 2827
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         1: .line 2829
            aload 3 /* service */
            iload 1 /* focusGain */
            aload 2 /* attr */
            invokeinterface android.media.IAudioService.getFocusRampTimeMs:(ILandroid/media/AudioAttributes;)I
         2: ireturn
         3: .line 2830
      StackMap locals: android.media.AudioManager int android.media.AudioAttributes android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 4 /* e */
        start local 4 // android.os.RemoteException e
         4: .line 2831
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
        end local 3 // android.media.IAudioService service
        end local 2 // android.media.AudioAttributes attr
        end local 1 // int focusGain
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Landroid/media/AudioManager;
            0    5     1  focusGain  I
            0    5     2       attr  Landroid/media/AudioAttributes;
            1    5     3    service  Landroid/media/IAudioService;
            4    5     4          e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
           Name  Flags
      focusGain  
      attr       

  public void setFocusRequestResult(android.media.AudioFocusInfo, int, android.media.audiopolicy.AudioPolicy);
    descriptor: (Landroid/media/AudioFocusInfo;ILandroid/media/audiopolicy/AudioPolicy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.media.AudioManager this
         0: .line 2844
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
               Name  Flags
      afi            
      requestResult  
      ap             

  public int dispatchAudioFocusChange(android.media.AudioFocusInfo, int, android.media.audiopolicy.AudioPolicy);
    descriptor: (Landroid/media/AudioFocusInfo;ILandroid/media/audiopolicy/AudioPolicy;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.media.AudioManager this
         0: .line 2883
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
             Name  Flags
      afi          
      focusChange  
      ap           

  public void abandonAudioFocusForCall();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 2907
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 2909
            aload 1 /* service */
            aconst_null
            ldc "AudioFocus_For_Phone_Ring_And_Calls"
         2: .line 2910
            aconst_null
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         3: .line 2909
            invokeinterface android.media.IAudioService.abandonAudioFocus:(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
            pop
         4: .line 2911
            goto 7
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         6: .line 2912
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         7: .line 2914
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/AudioManager;
            1    8     1  service  Landroid/media/IAudioService;
            6    7     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException

  public int abandonAudioFocus(android.media.AudioManager$OnAudioFocusChangeListener);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
         0: .line 2923
            aload 0 /* this */
            aload 1 /* l */
            aconst_null
            invokevirtual android.media.AudioManager.abandonAudioFocus:(Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I
            ireturn
        end local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
            0    1     1     l  Landroid/media/AudioManager$OnAudioFocusChangeListener;
    MethodParameters:
      Name  Flags
      l     

  public int abandonAudioFocus(android.media.AudioManager$OnAudioFocusChangeListener, android.media.AudioAttributes);
    descriptor: (Landroid/media/AudioManager$OnAudioFocusChangeListener;Landroid/media/AudioAttributes;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        start local 2 // android.media.AudioAttributes aa
         0: .line 2938
            iconst_0
            istore 3 /* status */
        start local 3 // int status
         1: .line 2939
            aload 0 /* this */
            aload 1 /* l */
            invokevirtual android.media.AudioManager.unregisterAudioFocusRequest:(Landroid/media/AudioManager$OnAudioFocusChangeListener;)V
         2: .line 2940
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 4 /* service */
        start local 4 // android.media.IAudioService service
         3: .line 2942
            aload 4 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioFocusDispatcher:Landroid/media/IAudioFocusDispatcher;
         4: .line 2943
            aload 0 /* this */
            aload 1 /* l */
            invokevirtual android.media.AudioManager.getIdForAudioFocusListener:(Landroid/media/AudioManager$OnAudioFocusChangeListener;)Ljava/lang/String;
            aload 2 /* aa */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         5: .line 2942
            invokeinterface android.media.IAudioService.abandonAudioFocus:(Landroid/media/IAudioFocusDispatcher;Ljava/lang/String;Landroid/media/AudioAttributes;Ljava/lang/String;)I
            istore 3 /* status */
         6: .line 2944
            goto 9
      StackMap locals: android.media.AudioManager android.media.AudioManager$OnAudioFocusChangeListener android.media.AudioAttributes int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         7: astore 5 /* e */
        start local 5 // android.os.RemoteException e
         8: .line 2945
            aload 5 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // android.os.RemoteException e
         9: .line 2947
      StackMap locals:
      StackMap stack:
            iload 3 /* status */
            ireturn
        end local 4 // android.media.IAudioService service
        end local 3 // int status
        end local 2 // android.media.AudioAttributes aa
        end local 1 // android.media.AudioManager$OnAudioFocusChangeListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Landroid/media/AudioManager;
            0   10     1        l  Landroid/media/AudioManager$OnAudioFocusChangeListener;
            0   10     2       aa  Landroid/media/AudioAttributes;
            1   10     3   status  I
            3   10     4  service  Landroid/media/IAudioService;
            8    9     5        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     6       7  Class android.os.RemoteException
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    RuntimeInvisibleAnnotations: 
      android.annotation.SuppressLint(value = {"Doclava125"})
    MethodParameters:
      Name  Flags
      l     
      aa    

  public void registerMediaButtonEventReceiver(android.content.ComponentName);
    descriptor: (Landroid/content/ComponentName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.content.ComponentName eventReceiver
         0: .line 2962
            aload 1 /* eventReceiver */
            ifnonnull 2
         1: .line 2963
            return
         2: .line 2965
      StackMap locals:
      StackMap stack:
            aload 1 /* eventReceiver */
            invokevirtual android.content.ComponentName.getPackageName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         3: .line 2966
            ldc "AudioManager"
            ldc "registerMediaButtonEventReceiver() error: receiver and context package names don't match"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 2968
            return
         5: .line 2971
      StackMap locals:
      StackMap stack:
            new android.content.Intent
            dup
            ldc "android.intent.action.MEDIA_BUTTON"
            invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
            astore 2 /* mediaButtonIntent */
        start local 2 // android.content.Intent mediaButtonIntent
         6: .line 2973
            aload 2 /* mediaButtonIntent */
            aload 1 /* eventReceiver */
            invokevirtual android.content.Intent.setComponent:(Landroid/content/ComponentName;)Landroid/content/Intent;
            pop
         7: .line 2974
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
         8: .line 2975
            iconst_0
            aload 2 /* mediaButtonIntent */
            iconst_0
         9: .line 2974
            invokestatic android.app.PendingIntent.getBroadcast:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
            astore 3 /* pi */
        start local 3 // android.app.PendingIntent pi
        10: .line 2976
            aload 0 /* this */
            aload 3 /* pi */
            aload 1 /* eventReceiver */
            invokevirtual android.media.AudioManager.registerMediaButtonIntent:(Landroid/app/PendingIntent;Landroid/content/ComponentName;)V
        11: .line 2977
            return
        end local 3 // android.app.PendingIntent pi
        end local 2 // android.content.Intent mediaButtonIntent
        end local 1 // android.content.ComponentName eventReceiver
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   12     0               this  Landroid/media/AudioManager;
            0   12     1      eventReceiver  Landroid/content/ComponentName;
            6   12     2  mediaButtonIntent  Landroid/content/Intent;
           10   12     3                 pi  Landroid/app/PendingIntent;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      eventReceiver  

  public void registerMediaButtonEventReceiver(android.app.PendingIntent);
    descriptor: (Landroid/app/PendingIntent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.app.PendingIntent eventReceiver
         0: .line 2993
            aload 1 /* eventReceiver */
            ifnonnull 2
         1: .line 2994
            return
         2: .line 2996
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* eventReceiver */
            aconst_null
            invokevirtual android.media.AudioManager.registerMediaButtonIntent:(Landroid/app/PendingIntent;Landroid/content/ComponentName;)V
         3: .line 2997
            return
        end local 1 // android.app.PendingIntent eventReceiver
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Landroid/media/AudioManager;
            0    4     1  eventReceiver  Landroid/app/PendingIntent;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      eventReceiver  

  public void registerMediaButtonIntent(android.app.PendingIntent, android.content.ComponentName);
    descriptor: (Landroid/app/PendingIntent;Landroid/content/ComponentName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.app.PendingIntent pi
        start local 2 // android.content.ComponentName eventReceiver
         0: .line 3004
            aload 1 /* pi */
            ifnonnull 3
         1: .line 3005
            ldc "AudioManager"
            ldc "Cannot call registerMediaButtonIntent() with a null parameter"
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 3006
            return
         3: .line 3008
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            astore 3 /* helper */
        start local 3 // android.media.session.MediaSessionLegacyHelper helper
         4: .line 3009
            aload 3 /* helper */
            aload 1 /* pi */
            aload 2 /* eventReceiver */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.media.session.MediaSessionLegacyHelper.addMediaButtonListener:(Landroid/app/PendingIntent;Landroid/content/ComponentName;Landroid/content/Context;)V
         5: .line 3010
            return
        end local 3 // android.media.session.MediaSessionLegacyHelper helper
        end local 2 // android.content.ComponentName eventReceiver
        end local 1 // android.app.PendingIntent pi
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Landroid/media/AudioManager;
            0    6     1             pi  Landroid/app/PendingIntent;
            0    6     2  eventReceiver  Landroid/content/ComponentName;
            4    6     3         helper  Landroid/media/session/MediaSessionLegacyHelper;
    MethodParameters:
               Name  Flags
      pi             
      eventReceiver  

  public void unregisterMediaButtonEventReceiver(android.content.ComponentName);
    descriptor: (Landroid/content/ComponentName;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.content.ComponentName eventReceiver
         0: .line 3020
            aload 1 /* eventReceiver */
            ifnonnull 2
         1: .line 3021
            return
         2: .line 3024
      StackMap locals:
      StackMap stack:
            new android.content.Intent
            dup
            ldc "android.intent.action.MEDIA_BUTTON"
            invokespecial android.content.Intent.<init>:(Ljava/lang/String;)V
            astore 2 /* mediaButtonIntent */
        start local 2 // android.content.Intent mediaButtonIntent
         3: .line 3026
            aload 2 /* mediaButtonIntent */
            aload 1 /* eventReceiver */
            invokevirtual android.content.Intent.setComponent:(Landroid/content/ComponentName;)Landroid/content/Intent;
            pop
         4: .line 3027
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
         5: .line 3028
            iconst_0
            aload 2 /* mediaButtonIntent */
            iconst_0
         6: .line 3027
            invokestatic android.app.PendingIntent.getBroadcast:(Landroid/content/Context;ILandroid/content/Intent;I)Landroid/app/PendingIntent;
            astore 3 /* pi */
        start local 3 // android.app.PendingIntent pi
         7: .line 3029
            aload 0 /* this */
            aload 3 /* pi */
            invokevirtual android.media.AudioManager.unregisterMediaButtonIntent:(Landroid/app/PendingIntent;)V
         8: .line 3030
            return
        end local 3 // android.app.PendingIntent pi
        end local 2 // android.content.Intent mediaButtonIntent
        end local 1 // android.content.ComponentName eventReceiver
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0               this  Landroid/media/AudioManager;
            0    9     1      eventReceiver  Landroid/content/ComponentName;
            3    9     2  mediaButtonIntent  Landroid/content/Intent;
            7    9     3                 pi  Landroid/app/PendingIntent;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      eventReceiver  

  public void unregisterMediaButtonEventReceiver(android.app.PendingIntent);
    descriptor: (Landroid/app/PendingIntent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.app.PendingIntent eventReceiver
         0: .line 3040
            aload 1 /* eventReceiver */
            ifnonnull 2
         1: .line 3041
            return
         2: .line 3043
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* eventReceiver */
            invokevirtual android.media.AudioManager.unregisterMediaButtonIntent:(Landroid/app/PendingIntent;)V
         3: .line 3044
            return
        end local 1 // android.app.PendingIntent eventReceiver
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    4     0           this  Landroid/media/AudioManager;
            0    4     1  eventReceiver  Landroid/app/PendingIntent;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
               Name  Flags
      eventReceiver  

  public void unregisterMediaButtonIntent(android.app.PendingIntent);
    descriptor: (Landroid/app/PendingIntent;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.app.PendingIntent pi
         0: .line 3050
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            astore 2 /* helper */
        start local 2 // android.media.session.MediaSessionLegacyHelper helper
         1: .line 3051
            aload 2 /* helper */
            aload 1 /* pi */
            invokevirtual android.media.session.MediaSessionLegacyHelper.removeMediaButtonListener:(Landroid/app/PendingIntent;)V
         2: .line 3052
            return
        end local 2 // android.media.session.MediaSessionLegacyHelper helper
        end local 1 // android.app.PendingIntent pi
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/media/AudioManager;
            0    3     1      pi  Landroid/app/PendingIntent;
            1    3     2  helper  Landroid/media/session/MediaSessionLegacyHelper;
    MethodParameters:
      Name  Flags
      pi    

  public void registerRemoteControlClient(android.media.RemoteControlClient);
    descriptor: (Landroid/media/RemoteControlClient;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.RemoteControlClient rcClient
         0: .line 3064
            aload 1 /* rcClient */
            ifnull 1
            aload 1 /* rcClient */
            invokevirtual android.media.RemoteControlClient.getRcMediaIntent:()Landroid/app/PendingIntent;
            ifnonnull 2
         1: .line 3065
      StackMap locals:
      StackMap stack:
            return
         2: .line 3067
      StackMap locals:
      StackMap stack:
            aload 1 /* rcClient */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            invokevirtual android.media.RemoteControlClient.registerWithSession:(Landroid/media/session/MediaSessionLegacyHelper;)V
         3: .line 3068
            return
        end local 1 // android.media.RemoteControlClient rcClient
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/media/AudioManager;
            0    4     1  rcClient  Landroid/media/RemoteControlClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      rcClient  

  public void unregisterRemoteControlClient(android.media.RemoteControlClient);
    descriptor: (Landroid/media/RemoteControlClient;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.RemoteControlClient rcClient
         0: .line 3079
            aload 1 /* rcClient */
            ifnull 1
            aload 1 /* rcClient */
            invokevirtual android.media.RemoteControlClient.getRcMediaIntent:()Landroid/app/PendingIntent;
            ifnonnull 2
         1: .line 3080
      StackMap locals:
      StackMap stack:
            return
         2: .line 3082
      StackMap locals:
      StackMap stack:
            aload 1 /* rcClient */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokestatic android.media.session.MediaSessionLegacyHelper.getHelper:(Landroid/content/Context;)Landroid/media/session/MediaSessionLegacyHelper;
            invokevirtual android.media.RemoteControlClient.unregisterWithSession:(Landroid/media/session/MediaSessionLegacyHelper;)V
         3: .line 3083
            return
        end local 1 // android.media.RemoteControlClient rcClient
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/media/AudioManager;
            0    4     1  rcClient  Landroid/media/RemoteControlClient;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
          Name  Flags
      rcClient  

  public boolean registerRemoteController(android.media.RemoteController);
    descriptor: (Landroid/media/RemoteController;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.RemoteController rctlr
         0: .line 3104
            aload 1 /* rctlr */
            ifnonnull 2
         1: .line 3105
            iconst_0
            ireturn
         2: .line 3107
      StackMap locals:
      StackMap stack:
            aload 1 /* rctlr */
            invokevirtual android.media.RemoteController.startListeningToSessions:()V
         3: .line 3108
            iconst_1
            ireturn
        end local 1 // android.media.RemoteController rctlr
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/media/AudioManager;
            0    4     1  rctlr  Landroid/media/RemoteController;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      rctlr  

  public void unregisterRemoteController(android.media.RemoteController);
    descriptor: (Landroid/media/RemoteController;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.RemoteController rctlr
         0: .line 3123
            aload 1 /* rctlr */
            ifnonnull 2
         1: .line 3124
            return
         2: .line 3126
      StackMap locals:
      StackMap stack:
            aload 1 /* rctlr */
            invokevirtual android.media.RemoteController.stopListeningToSessions:()V
         3: .line 3127
            return
        end local 1 // android.media.RemoteController rctlr
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/media/AudioManager;
            0    4     1  rctlr  Landroid/media/RemoteController;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
       Name  Flags
      rctlr  

  public int registerAudioPolicy(android.media.audiopolicy.AudioPolicy);
    descriptor: (Landroid/media/audiopolicy/AudioPolicy;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
         0: .line 3144
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
        Name  Flags
      policy  

  public void unregisterAudioPolicyAsync(android.media.audiopolicy.AudioPolicy);
    descriptor: (Landroid/media/audiopolicy/AudioPolicy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
         0: .line 3170
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.MODIFY_AUDIO_ROUTING cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
        Name  Flags
      policy  

  public void registerAudioPlaybackCallback(android.media.AudioManager$AudioPlaybackCallback, android.os.Handler);
    descriptor: (Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioPlaybackCallback cb
        start local 2 // android.os.Handler handler
         0: .line 3234
            aload 1 /* cb */
            ifnonnull 2
         1: .line 3235
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioPlaybackCallback argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 3240
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            ifnonnull 5
         4: .line 3241
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
         5: .line 3243
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 4 /* oldCbCount */
        start local 4 // int oldCbCount
         6: .line 3244
            aload 0 /* this */
            aload 1 /* cb */
            invokevirtual android.media.AudioManager.hasPlaybackCallback_sync:(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
            ifne 16
         7: .line 3245
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            new android.media.AudioManager$AudioPlaybackCallbackInfo
            dup
            aload 1 /* cb */
         8: .line 3246
            new android.media.AudioManager$ServiceEventHandlerDelegate
            dup
            aload 0 /* this */
            aload 2 /* handler */
            invokespecial android.media.AudioManager$ServiceEventHandlerDelegate.<init>:(Landroid/media/AudioManager;Landroid/os/Handler;)V
            invokevirtual android.media.AudioManager$ServiceEventHandlerDelegate.getHandler:()Landroid/os/Handler;
            invokespecial android.media.AudioManager$AudioPlaybackCallbackInfo.<init>:(Landroid/media/AudioManager$AudioPlaybackCallback;Landroid/os/Handler;)V
         9: .line 3245
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 3247
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 5 /* newCbCount */
        start local 5 // int newCbCount
        11: .line 3248
            iload 4 /* oldCbCount */
            ifne 17
            iload 5 /* newCbCount */
            ifle 17
        12: .line 3251
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            aload 0 /* this */
            getfield android.media.AudioManager.mPlayCb:Landroid/media/IPlaybackConfigDispatcher;
            invokeinterface android.media.IAudioService.registerPlaybackCallback:(Landroid/media/IPlaybackConfigDispatcher;)V
        13: .line 3252
            goto 17
      StackMap locals: android.media.AudioManager android.media.AudioManager$AudioPlaybackCallback android.os.Handler java.lang.Object int int
      StackMap stack: android.os.RemoteException
        14: astore 6 /* e */
        start local 6 // android.os.RemoteException e
        15: .line 3253
            aload 6 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 6 // android.os.RemoteException e
        end local 5 // int newCbCount
        16: .line 3257
      StackMap locals:
      StackMap stack:
            ldc "AudioManager"
            ldc "attempt to call registerAudioPlaybackCallback() on a previouslyregistered callback"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // int oldCbCount
        17: .line 3238
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 3261
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.AudioManager$AudioPlaybackCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0        this  Landroid/media/AudioManager;
            0   22     1          cb  Landroid/media/AudioManager$AudioPlaybackCallback;
            0   22     2     handler  Landroid/os/Handler;
            6   17     4  oldCbCount  I
           11   16     5  newCbCount  I
           15   16     6           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          12    13      14  Class android.os.RemoteException
           3    18      19  any
          19    20      19  any
    MethodParameters:
         Name  Flags
      cb       
      handler  

  public void unregisterAudioPlaybackCallback(android.media.AudioManager$AudioPlaybackCallback);
    descriptor: (Landroid/media/AudioManager$AudioPlaybackCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioPlaybackCallback cb
         0: .line 3269
            aload 1 /* cb */
            ifnonnull 2
         1: .line 3270
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioPlaybackCallback argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3272
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 3273
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            ifnonnull 7
         4: .line 3274
            ldc "AudioManager"
            ldc "attempt to call unregisterAudioPlaybackCallback() on a callback that was never registered"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 3276
            aload 2
            monitorexit
         6: return
         7: .line 3278
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 3 /* oldCbCount */
        start local 3 // int oldCbCount
         8: .line 3279
            aload 0 /* this */
            aload 1 /* cb */
            invokevirtual android.media.AudioManager.removePlaybackCallback_sync:(Landroid/media/AudioManager$AudioPlaybackCallback;)Z
            ifeq 15
         9: .line 3280
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 4 /* newCbCount */
        start local 4 // int newCbCount
        10: .line 3281
            iload 3 /* oldCbCount */
            ifle 16
            iload 4 /* newCbCount */
            ifne 16
        11: .line 3284
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            aload 0 /* this */
            getfield android.media.AudioManager.mPlayCb:Landroid/media/IPlaybackConfigDispatcher;
            invokeinterface android.media.IAudioService.unregisterPlaybackCallback:(Landroid/media/IPlaybackConfigDispatcher;)V
        12: .line 3285
            goto 16
      StackMap locals: android.media.AudioManager android.media.AudioManager$AudioPlaybackCallback java.lang.Object int int
      StackMap stack: android.os.RemoteException
        13: astore 5 /* e */
        start local 5 // android.os.RemoteException e
        14: .line 3286
            aload 5 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // android.os.RemoteException e
        end local 4 // int newCbCount
        15: .line 3290
      StackMap locals:
      StackMap stack:
            ldc "AudioManager"
            ldc "attempt to call unregisterAudioPlaybackCallback() on a callback already unregistered or never registered"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 3 // int oldCbCount
        16: .line 3272
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 2
            monitorexit
        19: athrow
        20: .line 3294
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.AudioManager$AudioPlaybackCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Landroid/media/AudioManager;
            0   21     1          cb  Landroid/media/AudioManager$AudioPlaybackCallback;
            8   16     3  oldCbCount  I
           10   15     4  newCbCount  I
           14   15     5           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          11    12      13  Class android.os.RemoteException
           3     6      18  any
           7    17      18  any
          18    19      18  any
    MethodParameters:
      Name  Flags
      cb    

  public java.util.List<android.media.AudioPlaybackConfiguration> getActivePlaybackConfigurations();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 3303
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 3305
            aload 1 /* service */
            invokeinterface android.media.IAudioService.getActivePlaybackConfigurations:()Ljava/util/List;
         2: areturn
         3: .line 3306
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 3307
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    Signature: ()Ljava/util/List<Landroid/media/AudioPlaybackConfiguration;>;

  private boolean hasPlaybackCallback_sync(android.media.AudioManager$AudioPlaybackCallback);
    descriptor: (Landroid/media/AudioManager$AudioPlaybackCallback;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioPlaybackCallback cb
         0: .line 3324
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            ifnull 7
         1: .line 3325
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 3326
      StackMap locals: int
      StackMap stack:
            aload 1 /* cb */
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$AudioPlaybackCallbackInfo
            getfield android.media.AudioManager$AudioPlaybackCallbackInfo.mCb:Landroid/media/AudioManager$AudioPlaybackCallback;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 3327
            iconst_1
            ireturn
         5: .line 3325
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
         7: .line 3331
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // android.media.AudioManager$AudioPlaybackCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/AudioManager;
            0    8     1    cb  Landroid/media/AudioManager$AudioPlaybackCallback;
            2    7     2     i  I
    MethodParameters:
      Name  Flags
      cb    

  private boolean removePlaybackCallback_sync(android.media.AudioManager$AudioPlaybackCallback);
    descriptor: (Landroid/media/AudioManager$AudioPlaybackCallback;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioPlaybackCallback cb
         0: .line 3338
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            ifnull 8
         1: .line 3339
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 3340
      StackMap locals: int
      StackMap stack:
            aload 1 /* cb */
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$AudioPlaybackCallbackInfo
            getfield android.media.AudioManager$AudioPlaybackCallbackInfo.mCb:Landroid/media/AudioManager$AudioPlaybackCallback;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 3341
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
         5: .line 3342
            iconst_1
            ireturn
         6: .line 3339
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield android.media.AudioManager.mPlaybackCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
         8: .line 3346
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // android.media.AudioManager$AudioPlaybackCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/AudioManager;
            0    9     1    cb  Landroid/media/AudioManager$AudioPlaybackCallback;
            2    8     2     i  I
    MethodParameters:
      Name  Flags
      cb    

  public void registerAudioRecordingCallback(android.media.AudioManager$AudioRecordingCallback, android.os.Handler);
    descriptor: (Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioRecordingCallback cb
        start local 2 // android.os.Handler handler
         0: .line 3423
            aload 1 /* cb */
            ifnonnull 2
         1: .line 3424
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioRecordingCallback argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3427
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         3: .line 3429
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            ifnonnull 5
         4: .line 3430
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
         5: .line 3432
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 4 /* oldCbCount */
        start local 4 // int oldCbCount
         6: .line 3433
            aload 0 /* this */
            aload 1 /* cb */
            invokevirtual android.media.AudioManager.hasRecordCallback_sync:(Landroid/media/AudioManager$AudioRecordingCallback;)Z
            ifne 17
         7: .line 3434
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            new android.media.AudioManager$AudioRecordingCallbackInfo
            dup
            aload 1 /* cb */
         8: .line 3435
            new android.media.AudioManager$ServiceEventHandlerDelegate
            dup
            aload 0 /* this */
            aload 2 /* handler */
            invokespecial android.media.AudioManager$ServiceEventHandlerDelegate.<init>:(Landroid/media/AudioManager;Landroid/os/Handler;)V
            invokevirtual android.media.AudioManager$ServiceEventHandlerDelegate.getHandler:()Landroid/os/Handler;
            invokespecial android.media.AudioManager$AudioRecordingCallbackInfo.<init>:(Landroid/media/AudioManager$AudioRecordingCallback;Landroid/os/Handler;)V
         9: .line 3434
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        10: .line 3436
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 5 /* newCbCount */
        start local 5 // int newCbCount
        11: .line 3437
            iload 4 /* oldCbCount */
            ifne 18
            iload 5 /* newCbCount */
            ifle 18
        12: .line 3439
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 6 /* service */
        start local 6 // android.media.IAudioService service
        13: .line 3441
            aload 6 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mRecCb:Landroid/media/IRecordingConfigDispatcher;
            invokeinterface android.media.IAudioService.registerRecordingCallback:(Landroid/media/IRecordingConfigDispatcher;)V
        14: .line 3442
            goto 18
      StackMap locals: android.media.AudioManager android.media.AudioManager$AudioRecordingCallback android.os.Handler java.lang.Object int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
        15: astore 7 /* e */
        start local 7 // android.os.RemoteException e
        16: .line 3443
            aload 7 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 7 // android.os.RemoteException e
        end local 6 // android.media.IAudioService service
        end local 5 // int newCbCount
        17: .line 3447
      StackMap locals:
      StackMap stack:
            ldc "AudioManager"
            ldc "attempt to call registerAudioRecordingCallback() on a previouslyregistered callback"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 4 // int oldCbCount
        18: .line 3427
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        19: goto 22
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: aload 3
            monitorexit
        21: athrow
        22: .line 3451
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.AudioManager$AudioRecordingCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   23     0        this  Landroid/media/AudioManager;
            0   23     1          cb  Landroid/media/AudioManager$AudioRecordingCallback;
            0   23     2     handler  Landroid/os/Handler;
            6   18     4  oldCbCount  I
           11   17     5  newCbCount  I
           13   17     6     service  Landroid/media/IAudioService;
           16   17     7           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          13    14      15  Class android.os.RemoteException
           3    19      20  any
          20    21      20  any
    MethodParameters:
         Name  Flags
      cb       
      handler  

  public void unregisterAudioRecordingCallback(android.media.AudioManager$AudioRecordingCallback);
    descriptor: (Landroid/media/AudioManager$AudioRecordingCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioRecordingCallback cb
         0: .line 3459
            aload 1 /* cb */
            ifnonnull 2
         1: .line 3460
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioRecordingCallback argument"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 3462
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         3: .line 3463
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            ifnonnull 6
         4: .line 3464
            aload 2
            monitorexit
         5: return
         6: .line 3466
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 3 /* oldCbCount */
        start local 3 // int oldCbCount
         7: .line 3467
            aload 0 /* this */
            aload 1 /* cb */
            invokevirtual android.media.AudioManager.removeRecordCallback_sync:(Landroid/media/AudioManager$AudioRecordingCallback;)Z
            ifeq 15
         8: .line 3468
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 4 /* newCbCount */
        start local 4 // int newCbCount
         9: .line 3469
            iload 3 /* oldCbCount */
            ifle 16
            iload 4 /* newCbCount */
            ifne 16
        10: .line 3471
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 5 /* service */
        start local 5 // android.media.IAudioService service
        11: .line 3473
            aload 5 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mRecCb:Landroid/media/IRecordingConfigDispatcher;
            invokeinterface android.media.IAudioService.unregisterRecordingCallback:(Landroid/media/IRecordingConfigDispatcher;)V
        12: .line 3474
            goto 16
      StackMap locals: android.media.AudioManager android.media.AudioManager$AudioRecordingCallback java.lang.Object int int android.media.IAudioService
      StackMap stack: android.os.RemoteException
        13: astore 6 /* e */
        start local 6 // android.os.RemoteException e
        14: .line 3475
            aload 6 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 6 // android.os.RemoteException e
        end local 5 // android.media.IAudioService service
        end local 4 // int newCbCount
        15: .line 3479
      StackMap locals:
      StackMap stack:
            ldc "AudioManager"
            ldc "attempt to call unregisterAudioRecordingCallback() on a callback already unregistered or never registered"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 3 // int oldCbCount
        16: .line 3462
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        17: goto 20
      StackMap locals:
      StackMap stack: java.lang.Throwable
        18: aload 2
            monitorexit
        19: athrow
        20: .line 3483
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.AudioManager$AudioRecordingCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   21     0        this  Landroid/media/AudioManager;
            0   21     1          cb  Landroid/media/AudioManager$AudioRecordingCallback;
            7   16     3  oldCbCount  I
            9   15     4  newCbCount  I
           11   15     5     service  Landroid/media/IAudioService;
           14   15     6           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          11    12      13  Class android.os.RemoteException
           3     5      18  any
           6    17      18  any
          18    19      18  any
    MethodParameters:
      Name  Flags
      cb    

  public java.util.List<android.media.AudioRecordingConfiguration> getActiveRecordingConfigurations();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 3492
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 3494
            aload 1 /* service */
            invokeinterface android.media.IAudioService.getActiveRecordingConfigurations:()Ljava/util/List;
         2: areturn
         3: .line 3495
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 3496
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    Signature: ()Ljava/util/List<Landroid/media/AudioRecordingConfiguration;>;

  private boolean hasRecordCallback_sync(android.media.AudioManager$AudioRecordingCallback);
    descriptor: (Landroid/media/AudioManager$AudioRecordingCallback;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioRecordingCallback cb
         0: .line 3522
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            ifnull 7
         1: .line 3523
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 3524
      StackMap locals: int
      StackMap stack:
            aload 1 /* cb */
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$AudioRecordingCallbackInfo
            getfield android.media.AudioManager$AudioRecordingCallbackInfo.mCb:Landroid/media/AudioManager$AudioRecordingCallback;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 3525
            iconst_1
            ireturn
         5: .line 3523
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
         7: .line 3529
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // android.media.AudioManager$AudioRecordingCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/media/AudioManager;
            0    8     1    cb  Landroid/media/AudioManager$AudioRecordingCallback;
            2    7     2     i  I
    MethodParameters:
      Name  Flags
      cb    

  private boolean removeRecordCallback_sync(android.media.AudioManager$AudioRecordingCallback);
    descriptor: (Landroid/media/AudioManager$AudioRecordingCallback;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$AudioRecordingCallback cb
         0: .line 3536
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            ifnull 8
         1: .line 3537
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 7
         3: .line 3538
      StackMap locals: int
      StackMap stack:
            aload 1 /* cb */
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$AudioRecordingCallbackInfo
            getfield android.media.AudioManager$AudioRecordingCallbackInfo.mCb:Landroid/media/AudioManager$AudioRecordingCallback;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 3539
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            iload 2 /* i */
            invokeinterface java.util.List.remove:(I)Ljava/lang/Object;
            pop
         5: .line 3540
            iconst_1
            ireturn
         6: .line 3537
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            aload 0 /* this */
            getfield android.media.AudioManager.mRecordCallbackList:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 2 // int i
         8: .line 3544
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // android.media.AudioManager$AudioRecordingCallback cb
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/media/AudioManager;
            0    9     1    cb  Landroid/media/AudioManager$AudioRecordingCallback;
            2    8     2     i  I
    MethodParameters:
      Name  Flags
      cb    

  public void reloadAudioSettings();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 3576
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 3578
            aload 1 /* service */
            invokeinterface android.media.IAudioService.reloadAudioSettings:()V
         2: .line 3579
            goto 5
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 3580
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         5: .line 3582
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            1    6     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException

  public void avrcpSupportsAbsoluteVolume(java.lang.String, boolean);
    descriptor: (Ljava/lang/String;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // java.lang.String address
        start local 2 // boolean support
         0: .line 3591
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 3 /* service */
        start local 3 // android.media.IAudioService service
         1: .line 3593
            aload 3 /* service */
            aload 1 /* address */
            iload 2 /* support */
            invokeinterface android.media.IAudioService.avrcpSupportsAbsoluteVolume:(Ljava/lang/String;Z)V
         2: .line 3594
            goto 5
      StackMap locals: android.media.AudioManager java.lang.String int android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         4: .line 3595
            aload 4 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 4 // android.os.RemoteException e
         5: .line 3597
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.media.IAudioService service
        end local 2 // boolean support
        end local 1 // java.lang.String address
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            0    6     1  address  Ljava/lang/String;
            0    6     2  support  Z
            1    6     3  service  Landroid/media/IAudioService;
            4    5     4        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      address  
      support  

  public boolean isSilentMode();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 3614
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getRingerMode:()I
            istore 1 /* ringerMode */
        start local 1 // int ringerMode
         1: .line 3616
            iload 1 /* ringerMode */
            ifeq 4
         2: .line 3617
            iload 1 /* ringerMode */
            iconst_1
            if_icmpeq 4
         3: .line 3615
            iconst_0
            goto 5
      StackMap locals: int
      StackMap stack:
         4: iconst_1
      StackMap locals:
      StackMap stack: int
         5: istore 2 /* silentMode */
        start local 2 // boolean silentMode
         6: .line 3618
            iload 2 /* silentMode */
            ireturn
        end local 2 // boolean silentMode
        end local 1 // int ringerMode
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Landroid/media/AudioManager;
            1    7     1  ringerMode  I
            6    7     2  silentMode  Z

  public static boolean isOutputDevice(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int device
         0: .line 3807
            iload 0 /* device */
            ldc -2147483648
            iand
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int device
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  device  I
    MethodParameters:
        Name  Flags
      device  

  public static boolean isInputDevice(int);
    descriptor: (I)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int device
         0: .line 3816
            iload 0 /* device */
            ldc -2147483648
            iand
            ldc -2147483648
            if_icmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // int device
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  device  I
    MethodParameters:
        Name  Flags
      device  

  public int getDevicesForStream(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 3866
            iload 1 /* streamType */
            tableswitch { // 0 - 10
                    0: 1
                    1: 1
                    2: 1
                    3: 1
                    4: 1
                    5: 1
                    6: 2
                    7: 2
                    8: 1
                    9: 2
                   10: 1
              default: 2
          }
         1: .line 3875
      StackMap locals:
      StackMap stack:
            iload 1 /* streamType */
            invokestatic android.media.AudioSystem.getDevicesForStream:(I)I
            ireturn
         2: .line 3877
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/media/AudioManager;
            0    3     1  streamType  I
    MethodParameters:
            Name  Flags
      streamType  

  public void setWiredDeviceConnectionState(int, int, java.lang.String, java.lang.String);
    descriptor: (IILjava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=5
        start local 0 // android.media.AudioManager this
        start local 1 // int type
        start local 2 // int state
        start local 3 // java.lang.String address
        start local 4 // java.lang.String name
         0: .line 3889
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 5 /* service */
        start local 5 // android.media.IAudioService service
         1: .line 3891
            aload 5 /* service */
            iload 1 /* type */
            iload 2 /* state */
            aload 3 /* address */
            aload 4 /* name */
         2: .line 3892
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
         3: .line 3891
            invokeinterface android.media.IAudioService.setWiredDeviceConnectionState:(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
         4: .line 3893
            goto 7
      StackMap locals: android.media.AudioManager int int java.lang.String java.lang.String android.media.IAudioService
      StackMap stack: android.os.RemoteException
         5: astore 6 /* e */
        start local 6 // android.os.RemoteException e
         6: .line 3894
            aload 6 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 6 // android.os.RemoteException e
         7: .line 3896
      StackMap locals:
      StackMap stack:
            return
        end local 5 // android.media.IAudioService service
        end local 4 // java.lang.String name
        end local 3 // java.lang.String address
        end local 2 // int state
        end local 1 // int type
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Landroid/media/AudioManager;
            0    8     1     type  I
            0    8     2    state  I
            0    8     3  address  Ljava/lang/String;
            0    8     4     name  Ljava/lang/String;
            1    8     5  service  Landroid/media/IAudioService;
            6    7     6        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     4       5  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      type     
      state    
      address  
      name     

  public int setBluetoothHearingAidDeviceConnectionState(android.bluetooth.BluetoothDevice, int, boolean, int);
    descriptor: (Landroid/bluetooth/BluetoothDevice;IZI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=5
        start local 0 // android.media.AudioManager this
        start local 1 // android.bluetooth.BluetoothDevice device
        start local 2 // int state
        start local 3 // boolean suppressNoisyIntent
        start local 4 // int musicDevice
         0: .line 3915
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 5 /* service */
        start local 5 // android.media.IAudioService service
         1: .line 3916
            iconst_0
            istore 6 /* delay */
        start local 6 // int delay
         2: .line 3918
            aload 5 /* service */
            aload 1 /* device */
         3: .line 3919
            iload 2 /* state */
            iload 3 /* suppressNoisyIntent */
            iload 4 /* musicDevice */
         4: .line 3918
            invokeinterface android.media.IAudioService.setBluetoothHearingAidDeviceConnectionState:(Landroid/bluetooth/BluetoothDevice;IZI)I
            istore 6 /* delay */
         5: .line 3920
            goto 8
      StackMap locals: android.media.AudioManager android.bluetooth.BluetoothDevice int int int android.media.IAudioService int
      StackMap stack: android.os.RemoteException
         6: astore 7 /* e */
        start local 7 // android.os.RemoteException e
         7: .line 3921
            aload 7 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 7 // android.os.RemoteException e
         8: .line 3923
      StackMap locals:
      StackMap stack:
            iload 6 /* delay */
            ireturn
        end local 6 // int delay
        end local 5 // android.media.IAudioService service
        end local 4 // int musicDevice
        end local 3 // boolean suppressNoisyIntent
        end local 2 // int state
        end local 1 // android.bluetooth.BluetoothDevice device
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Landroid/media/AudioManager;
            0    9     1               device  Landroid/bluetooth/BluetoothDevice;
            0    9     2                state  I
            0    9     3  suppressNoisyIntent  Z
            0    9     4          musicDevice  I
            1    9     5              service  Landroid/media/IAudioService;
            2    9     6                delay  I
            7    8     7                    e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     5       6  Class android.os.RemoteException
    MethodParameters:
                     Name  Flags
      device               
      state                
      suppressNoisyIntent  
      musicDevice          

  public int setBluetoothA2dpDeviceConnectionState(android.bluetooth.BluetoothDevice, int, int);
    descriptor: (Landroid/bluetooth/BluetoothDevice;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // android.media.AudioManager this
        start local 1 // android.bluetooth.BluetoothDevice device
        start local 2 // int state
        start local 3 // int profile
         0: .line 3939
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 4 /* service */
        start local 4 // android.media.IAudioService service
         1: .line 3940
            iconst_0
            istore 5 /* delay */
        start local 5 // int delay
         2: .line 3942
            aload 4 /* service */
            aload 1 /* device */
            iload 2 /* state */
            iload 3 /* profile */
            invokeinterface android.media.IAudioService.setBluetoothA2dpDeviceConnectionState:(Landroid/bluetooth/BluetoothDevice;II)I
            istore 5 /* delay */
         3: .line 3943
            goto 6
      StackMap locals: android.media.AudioManager android.bluetooth.BluetoothDevice int int android.media.IAudioService int
      StackMap stack: android.os.RemoteException
         4: astore 6 /* e */
        start local 6 // android.os.RemoteException e
         5: .line 3944
            aload 6 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 6 // android.os.RemoteException e
         6: .line 3946
      StackMap locals:
      StackMap stack:
            iload 5 /* delay */
            ireturn
        end local 5 // int delay
        end local 4 // android.media.IAudioService service
        end local 3 // int profile
        end local 2 // int state
        end local 1 // android.bluetooth.BluetoothDevice device
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/media/AudioManager;
            0    7     1   device  Landroid/bluetooth/BluetoothDevice;
            0    7     2    state  I
            0    7     3  profile  I
            1    7     4  service  Landroid/media/IAudioService;
            2    7     5    delay  I
            5    6     6        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
         Name  Flags
      device   
      state    
      profile  

  public int setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent(android.bluetooth.BluetoothDevice, int, int, boolean, int);
    descriptor: (Landroid/bluetooth/BluetoothDevice;IIZI)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=9, args_size=6
        start local 0 // android.media.AudioManager this
        start local 1 // android.bluetooth.BluetoothDevice device
        start local 2 // int state
        start local 3 // int profile
        start local 4 // boolean suppressNoisyIntent
        start local 5 // int a2dpVolume
         0: .line 3967
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 6 /* service */
        start local 6 // android.media.IAudioService service
         1: .line 3968
            iconst_0
            istore 7 /* delay */
        start local 7 // int delay
         2: .line 3970
            aload 6 /* service */
            aload 1 /* device */
         3: .line 3971
            iload 2 /* state */
            iload 3 /* profile */
            iload 4 /* suppressNoisyIntent */
            iload 5 /* a2dpVolume */
         4: .line 3970
            invokeinterface android.media.IAudioService.setBluetoothA2dpDeviceConnectionStateSuppressNoisyIntent:(Landroid/bluetooth/BluetoothDevice;IIZI)I
            istore 7 /* delay */
         5: .line 3972
            goto 8
      StackMap locals: android.media.AudioManager android.bluetooth.BluetoothDevice int int int int android.media.IAudioService int
      StackMap stack: android.os.RemoteException
         6: astore 8 /* e */
        start local 8 // android.os.RemoteException e
         7: .line 3973
            aload 8 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 8 // android.os.RemoteException e
         8: .line 3975
      StackMap locals:
      StackMap stack:
            iload 7 /* delay */
            ireturn
        end local 7 // int delay
        end local 6 // android.media.IAudioService service
        end local 5 // int a2dpVolume
        end local 4 // boolean suppressNoisyIntent
        end local 3 // int profile
        end local 2 // int state
        end local 1 // android.bluetooth.BluetoothDevice device
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    9     0                 this  Landroid/media/AudioManager;
            0    9     1               device  Landroid/bluetooth/BluetoothDevice;
            0    9     2                state  I
            0    9     3              profile  I
            0    9     4  suppressNoisyIntent  Z
            0    9     5           a2dpVolume  I
            1    9     6              service  Landroid/media/IAudioService;
            2    9     7                delay  I
            7    8     8                    e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     5       6  Class android.os.RemoteException
    MethodParameters:
                     Name  Flags
      device               
      state                
      profile              
      suppressNoisyIntent  
      a2dpVolume           

  public void handleBluetoothA2dpDeviceConfigChange(android.bluetooth.BluetoothDevice);
    descriptor: (Landroid/bluetooth/BluetoothDevice;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.bluetooth.BluetoothDevice device
         0: .line 3984
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         1: .line 3986
            aload 2 /* service */
            aload 1 /* device */
            invokeinterface android.media.IAudioService.handleBluetoothA2dpDeviceConfigChange:(Landroid/bluetooth/BluetoothDevice;)V
         2: .line 3987
            goto 5
      StackMap locals: android.media.AudioManager android.bluetooth.BluetoothDevice android.media.IAudioService
      StackMap stack: android.os.RemoteException
         3: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         4: .line 3988
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         5: .line 3990
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService service
        end local 1 // android.bluetooth.BluetoothDevice device
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Landroid/media/AudioManager;
            0    6     1   device  Landroid/bluetooth/BluetoothDevice;
            1    6     2  service  Landroid/media/IAudioService;
            4    5     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      device  

  public android.media.IRingtonePlayer getRingtonePlayer();
    descriptor: ()Landroid/media/IRingtonePlayer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 3995
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            invokeinterface android.media.IAudioService.getRingtonePlayer:()Landroid/media/IRingtonePlayer;
         1: areturn
         2: .line 3996
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 3997
            aload 1 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException e
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/AudioManager;
            3    4     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public java.lang.String getProperty(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
         0: .line 4065
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.bool cannot be resolved to a variable\n\tcom.android.internal.R.bool cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/AudioManager;
    MethodParameters:
      Name  Flags
      key   

  public int getOutputLatency(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 4086
            iload 1 /* streamType */
            invokestatic android.media.AudioSystem.getOutputLatency:(I)I
            ireturn
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/media/AudioManager;
            0    1     1  streamType  I
    MethodParameters:
            Name  Flags
      streamType  

  public void setVolumeController(android.media.IVolumeController);
    descriptor: (Landroid/media/IVolumeController;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.IVolumeController controller
         0: .line 4096
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            aload 1 /* controller */
            invokeinterface android.media.IAudioService.setVolumeController:(Landroid/media/IVolumeController;)V
         1: .line 4097
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 4098
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         4: .line 4100
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.IVolumeController controller
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  controller  Landroid/media/IVolumeController;
            3    4     2           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      controller  

  public void notifyVolumeControllerVisible(android.media.IVolumeController, boolean);
    descriptor: (Landroid/media/IVolumeController;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.IVolumeController controller
        start local 2 // boolean visible
         0: .line 4110
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            aload 1 /* controller */
            iload 2 /* visible */
            invokeinterface android.media.IAudioService.notifyVolumeControllerVisible:(Landroid/media/IVolumeController;Z)V
         1: .line 4111
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         3: .line 4112
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
         4: .line 4114
      StackMap locals:
      StackMap stack:
            return
        end local 2 // boolean visible
        end local 1 // android.media.IVolumeController controller
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  controller  Landroid/media/IVolumeController;
            0    5     2     visible  Z
            3    4     3           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      controller  
      visible     

  public boolean isStreamAffectedByRingerMode(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 4122
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.isStreamAffectedByRingerMode:(I)Z
         1: ireturn
         2: .line 4123
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 4124
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/media/AudioManager;
            0    4     1  streamType  I
            3    4     2           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public boolean isStreamAffectedByMute(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int streamType
         0: .line 4134
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            iload 1 /* streamType */
            invokeinterface android.media.IAudioService.isStreamAffectedByMute:(I)Z
         1: ireturn
         2: .line 4135
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 4136
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // int streamType
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Landroid/media/AudioManager;
            0    4     1  streamType  I
            3    4     2           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      streamType  

  public void disableSafeMediaVolume();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 4146
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            aload 0 /* this */
            getfield android.media.AudioManager.mApplicationContext:Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            invokeinterface android.media.IAudioService.disableSafeMediaVolume:(Ljava/lang/String;)V
         1: .line 4147
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 4148
            aload 1 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException e
         4: .line 4150
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/AudioManager;
            3    4     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public void setRingerModeInternal(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int ringerMode
         0: .line 4158
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            iload 1 /* ringerMode */
            aload 0 /* this */
            invokevirtual android.media.AudioManager.getContext:()Landroid/content/Context;
            invokevirtual android.content.Context.getOpPackageName:()Ljava/lang/String;
            invokeinterface android.media.IAudioService.setRingerModeInternal:(ILjava/lang/String;)V
         1: .line 4159
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 4160
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         4: .line 4162
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int ringerMode
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Landroid/media/AudioManager;
            0    5     1  ringerMode  I
            3    4     2           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
            Name  Flags
      ringerMode  

  public int getRingerModeInternal();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 4170
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            invokeinterface android.media.IAudioService.getRingerModeInternal:()I
         1: ireturn
         2: .line 4171
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 4172
            aload 1 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException e
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/AudioManager;
            3    4     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public void setVolumePolicy(android.media.VolumePolicy);
    descriptor: (Landroid/media/VolumePolicy;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.VolumePolicy policy
         0: .line 4182
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            aload 1 /* policy */
            invokeinterface android.media.IAudioService.setVolumePolicy:(Landroid/media/VolumePolicy;)V
         1: .line 4183
            goto 4
      StackMap locals:
      StackMap stack: android.os.RemoteException
         2: astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 4184
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
         4: .line 4186
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.VolumePolicy policy
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/media/AudioManager;
            0    5     1  policy  Landroid/media/VolumePolicy;
            3    4     2       e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
        Name  Flags
      policy  

  public int setHdmiSystemAudioSupported(boolean);
    descriptor: (Z)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // boolean on
         0: .line 4197
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            iload 1 /* on */
            invokeinterface android.media.IAudioService.setHdmiSystemAudioSupported:(Z)I
         1: ireturn
         2: .line 4198
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         3: .line 4199
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // boolean on
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/AudioManager;
            0    4     1    on  Z
            3    4     2     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    MethodParameters:
      Name  Flags
      on    

  public boolean isHdmiSystemAudioSupported();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 4212
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            invokeinterface android.media.IAudioService.isHdmiSystemAudioSupported:()Z
         1: ireturn
         2: .line 4213
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 4214
            aload 1 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 1 // android.os.RemoteException e
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/AudioManager;
            3    4     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    RuntimeInvisibleAnnotations: 
      android.annotation.SuppressLint(value = {"Doclava125"})

  public static int listAudioPorts(java.util.ArrayList<android.media.AudioPort>);
    descriptor: (Ljava/util/ArrayList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.ArrayList ports
         0: .line 4258
            aload 0 /* ports */
            aconst_null
            aconst_null
            invokestatic android.media.AudioManager.updateAudioPortCache:(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
            ireturn
        end local 0 // java.util.ArrayList ports
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioPort;>;)I
    MethodParameters:
       Name  Flags
      ports  

  public static int listPreviousAudioPorts(java.util.ArrayList<android.media.AudioPort>);
    descriptor: (Ljava/util/ArrayList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.ArrayList ports
         0: .line 4268
            aconst_null
            aconst_null
            aload 0 /* ports */
            invokestatic android.media.AudioManager.updateAudioPortCache:(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
            ireturn
        end local 0 // java.util.ArrayList ports
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioPort;>;)I
    MethodParameters:
       Name  Flags
      ports  

  public static int listAudioDevicePorts(java.util.ArrayList<android.media.AudioDevicePort>);
    descriptor: (Ljava/util/ArrayList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.ArrayList devices
         0: .line 4277
            aload 0 /* devices */
            ifnonnull 2
         1: .line 4278
            bipush -2
            ireturn
         2: .line 4280
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ports */
        start local 1 // java.util.ArrayList ports
         3: .line 4281
            aload 1 /* ports */
            aconst_null
            aconst_null
            invokestatic android.media.AudioManager.updateAudioPortCache:(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
            istore 2 /* status */
        start local 2 // int status
         4: .line 4282
            iload 2 /* status */
            ifne 6
         5: .line 4283
            aload 1 /* ports */
            aload 0 /* devices */
            invokestatic android.media.AudioManager.filterDevicePorts:(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
         6: .line 4285
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            iload 2 /* status */
            ireturn
        end local 2 // int status
        end local 1 // java.util.ArrayList ports
        end local 0 // java.util.ArrayList devices
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  devices  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            3    7     1    ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            4    7     2   status  I
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;)I
    MethodParameters:
         Name  Flags
      devices  

  public static int listPreviousAudioDevicePorts(java.util.ArrayList<android.media.AudioDevicePort>);
    descriptor: (Ljava/util/ArrayList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.ArrayList devices
         0: .line 4294
            aload 0 /* devices */
            ifnonnull 2
         1: .line 4295
            bipush -2
            ireturn
         2: .line 4297
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ports */
        start local 1 // java.util.ArrayList ports
         3: .line 4298
            aconst_null
            aconst_null
            aload 1 /* ports */
            invokestatic android.media.AudioManager.updateAudioPortCache:(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
            istore 2 /* status */
        start local 2 // int status
         4: .line 4299
            iload 2 /* status */
            ifne 6
         5: .line 4300
            aload 1 /* ports */
            aload 0 /* devices */
            invokestatic android.media.AudioManager.filterDevicePorts:(Ljava/util/ArrayList;Ljava/util/ArrayList;)V
         6: .line 4302
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            iload 2 /* status */
            ireturn
        end local 2 // int status
        end local 1 // java.util.ArrayList ports
        end local 0 // java.util.ArrayList devices
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  devices  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            3    7     1    ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            4    7     2   status  I
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;)I
    MethodParameters:
         Name  Flags
      devices  

  private static void filterDevicePorts(java.util.ArrayList<android.media.AudioPort>, java.util.ArrayList<android.media.AudioDevicePort>);
    descriptor: (Ljava/util/ArrayList;Ljava/util/ArrayList;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.util.ArrayList ports
        start local 1 // java.util.ArrayList devices
         0: .line 4307
            aload 1 /* devices */
            invokevirtual java.util.ArrayList.clear:()V
         1: .line 4308
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 4309
      StackMap locals: int
      StackMap stack:
            aload 0 /* ports */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            instanceof android.media.AudioDevicePort
            ifeq 5
         4: .line 4310
            aload 1 /* devices */
            aload 0 /* ports */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioDevicePort
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 4308
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* ports */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
        end local 2 // int i
         7: .line 4313
            return
        end local 1 // java.util.ArrayList devices
        end local 0 // java.util.ArrayList ports
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0    ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            0    8     1  devices  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            2    7     2        i  I
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioPort;>;Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;)V
    MethodParameters:
         Name  Flags
      ports    
      devices  

  public static int createAudioPatch(android.media.AudioPatch[], android.media.AudioPortConfig[], android.media.AudioPortConfig[]);
    descriptor: ([Landroid/media/AudioPatch;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.AudioPatch[] patch
        start local 1 // android.media.AudioPortConfig[] sources
        start local 2 // android.media.AudioPortConfig[] sinks
         0: .line 4341
            aload 0 /* patch */
            aload 1 /* sources */
            aload 2 /* sinks */
            invokestatic android.media.AudioSystem.createAudioPatch:([Landroid/media/AudioPatch;[Landroid/media/AudioPortConfig;[Landroid/media/AudioPortConfig;)I
            ireturn
        end local 2 // android.media.AudioPortConfig[] sinks
        end local 1 // android.media.AudioPortConfig[] sources
        end local 0 // android.media.AudioPatch[] patch
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0    patch  [Landroid/media/AudioPatch;
            0    1     1  sources  [Landroid/media/AudioPortConfig;
            0    1     2    sinks  [Landroid/media/AudioPortConfig;
    MethodParameters:
         Name  Flags
      patch    
      sources  
      sinks    

  public static int releaseAudioPatch(android.media.AudioPatch);
    descriptor: (Landroid/media/AudioPatch;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.AudioPatch patch
         0: .line 4356
            aload 0 /* patch */
            invokestatic android.media.AudioSystem.releaseAudioPatch:(Landroid/media/AudioPatch;)I
            ireturn
        end local 0 // android.media.AudioPatch patch
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0  patch  Landroid/media/AudioPatch;
    MethodParameters:
       Name  Flags
      patch  

  public static int listAudioPatches(java.util.ArrayList<android.media.AudioPatch>);
    descriptor: (Ljava/util/ArrayList;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // java.util.ArrayList patches
         0: .line 4365
            aconst_null
            aload 0 /* patches */
            aconst_null
            invokestatic android.media.AudioManager.updateAudioPortCache:(Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
            ireturn
        end local 0 // java.util.ArrayList patches
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  patches  Ljava/util/ArrayList<Landroid/media/AudioPatch;>;
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioPatch;>;)I
    MethodParameters:
         Name  Flags
      patches  

  public static int setAudioPortGain(android.media.AudioPort, android.media.AudioGainConfig);
    descriptor: (Landroid/media/AudioPort;Landroid/media/AudioGainConfig;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // android.media.AudioPort port
        start local 1 // android.media.AudioGainConfig gain
         0: .line 4374
            aload 0 /* port */
            ifnull 1
            aload 1 /* gain */
            ifnonnull 2
         1: .line 4375
      StackMap locals:
      StackMap stack:
            bipush -2
            ireturn
         2: .line 4377
      StackMap locals:
      StackMap stack:
            aload 0 /* port */
            invokevirtual android.media.AudioPort.activeConfig:()Landroid/media/AudioPortConfig;
            astore 2 /* activeConfig */
        start local 2 // android.media.AudioPortConfig activeConfig
         3: .line 4378
            new android.media.AudioPortConfig
            dup
            aload 0 /* port */
            aload 2 /* activeConfig */
            invokevirtual android.media.AudioPortConfig.samplingRate:()I
         4: .line 4379
            aload 2 /* activeConfig */
            invokevirtual android.media.AudioPortConfig.channelMask:()I
            aload 2 /* activeConfig */
            invokevirtual android.media.AudioPortConfig.format:()I
            aload 1 /* gain */
         5: .line 4378
            invokespecial android.media.AudioPortConfig.<init>:(Landroid/media/AudioPort;IIILandroid/media/AudioGainConfig;)V
            astore 3 /* config */
        start local 3 // android.media.AudioPortConfig config
         6: .line 4380
            aload 3 /* config */
            bipush 8
            putfield android.media.AudioPortConfig.mConfigMask:I
         7: .line 4381
            aload 3 /* config */
            invokestatic android.media.AudioSystem.setAudioPortConfig:(Landroid/media/AudioPortConfig;)I
            ireturn
        end local 3 // android.media.AudioPortConfig config
        end local 2 // android.media.AudioPortConfig activeConfig
        end local 1 // android.media.AudioGainConfig gain
        end local 0 // android.media.AudioPort port
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          port  Landroid/media/AudioPort;
            0    8     1          gain  Landroid/media/AudioGainConfig;
            3    8     2  activeConfig  Landroid/media/AudioPortConfig;
            6    8     3        config  Landroid/media/AudioPortConfig;
    MethodParameters:
      Name  Flags
      port  
      gain  

  public void registerAudioPortUpdateListener(android.media.AudioManager$OnAudioPortUpdateListener);
    descriptor: (Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioPortUpdateListener l
         0: .line 4413
            getstatic android.media.AudioManager.sAudioPortEventHandler:Landroid/media/AudioPortEventHandler;
            invokevirtual android.media.AudioPortEventHandler.init:()V
         1: .line 4414
            getstatic android.media.AudioManager.sAudioPortEventHandler:Landroid/media/AudioPortEventHandler;
            aload 1 /* l */
            invokevirtual android.media.AudioPortEventHandler.registerListener:(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
         2: .line 4415
            return
        end local 1 // android.media.AudioManager$OnAudioPortUpdateListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/AudioManager;
            0    3     1     l  Landroid/media/AudioManager$OnAudioPortUpdateListener;
    MethodParameters:
      Name  Flags
      l     

  public void unregisterAudioPortUpdateListener(android.media.AudioManager$OnAudioPortUpdateListener);
    descriptor: (Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioManager$OnAudioPortUpdateListener l
         0: .line 4422
            getstatic android.media.AudioManager.sAudioPortEventHandler:Landroid/media/AudioPortEventHandler;
            aload 1 /* l */
            invokevirtual android.media.AudioPortEventHandler.unregisterListener:(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
         1: .line 4423
            return
        end local 1 // android.media.AudioManager$OnAudioPortUpdateListener l
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/AudioManager;
            0    2     1     l  Landroid/media/AudioManager$OnAudioPortUpdateListener;
    MethodParameters:
      Name  Flags
      l     

  static int resetAudioPortGeneration();
    descriptor: ()I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 4437
            getstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
            dup
            astore 1
            monitorenter
         1: .line 4438
            getstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            istore 0 /* generation */
        start local 0 // int generation
         2: .line 4439
            iconst_0
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
         3: .line 4437
            aload 1
            monitorexit
         4: goto 7
        end local 0 // int generation
      StackMap locals: top java.lang.Integer
      StackMap stack: java.lang.Throwable
         5: aload 1
            monitorexit
         6: athrow
        start local 0 // int generation
         7: .line 4441
      StackMap locals: int
      StackMap stack:
            iload 0 /* generation */
            ireturn
        end local 0 // int generation
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            2    5     0  generation  I
            7    8     0  generation  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any

  static int updateAudioPortCache(java.util.ArrayList<android.media.AudioPort>, java.util.ArrayList<android.media.AudioPatch>, java.util.ArrayList<android.media.AudioPort>);
    descriptor: (Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;)I
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=16, args_size=3
        start local 0 // java.util.ArrayList ports
        start local 1 // java.util.ArrayList patches
        start local 2 // java.util.ArrayList previousPorts
         0: .line 4446
            getstatic android.media.AudioManager.sAudioPortEventHandler:Landroid/media/AudioPortEventHandler;
            invokevirtual android.media.AudioPortEventHandler.init:()V
         1: .line 4447
            getstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
            dup
            astore 3
            monitorenter
         2: .line 4449
            getstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
            invokevirtual java.lang.Integer.intValue:()I
            ifne 69
         3: .line 4450
            iconst_1
            newarray 10
            astore 4 /* patchGeneration */
        start local 4 // int[] patchGeneration
         4: .line 4451
            iconst_1
            newarray 10
            astore 5 /* portGeneration */
        start local 5 // int[] portGeneration
         5: .line 4453
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 7 /* newPorts */
        start local 7 // java.util.ArrayList newPorts
         6: .line 4454
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 8 /* newPatches */
        start local 8 // java.util.ArrayList newPatches
         7: .line 4457
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] top java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 7 /* newPorts */
            invokevirtual java.util.ArrayList.clear:()V
         8: .line 4458
            aload 7 /* newPorts */
            aload 5 /* portGeneration */
            invokestatic android.media.AudioSystem.listAudioPorts:(Ljava/util/ArrayList;[I)I
            istore 6 /* status */
        start local 6 // int status
         9: .line 4459
            iload 6 /* status */
            ifeq 13
        10: .line 4460
            ldc "AudioManager"
            ldc "updateAudioPortCache: listAudioPorts failed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        11: .line 4461
            iload 6 /* status */
            aload 3
            monitorexit
        12: ireturn
        13: .line 4463
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] int java.util.ArrayList java.util.ArrayList
      StackMap stack:
            aload 8 /* newPatches */
            invokevirtual java.util.ArrayList.clear:()V
        14: .line 4464
            aload 8 /* newPatches */
            aload 4 /* patchGeneration */
            invokestatic android.media.AudioSystem.listAudioPatches:(Ljava/util/ArrayList;[I)I
            istore 6 /* status */
        15: .line 4465
            iload 6 /* status */
            ifeq 19
        16: .line 4466
            ldc "AudioManager"
            ldc "updateAudioPortCache: listAudioPatches failed"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        17: .line 4467
            iload 6 /* status */
            aload 3
            monitorexit
        18: ireturn
        19: .line 4471
      StackMap locals:
      StackMap stack:
            aload 4 /* patchGeneration */
            iconst_0
            iaload
            aload 5 /* portGeneration */
            iconst_0
            iaload
            if_icmpeq 21
        20: .line 4472
            aload 0 /* ports */
            ifnull 7
            aload 1 /* patches */
            ifnull 7
        21: .line 4475
      StackMap locals:
      StackMap stack:
            aload 4 /* patchGeneration */
            iconst_0
            iaload
            aload 5 /* portGeneration */
            iconst_0
            iaload
            if_icmpeq 24
        22: .line 4476
            aload 3
            monitorexit
        23: iconst_m1
            ireturn
        24: .line 4479
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        25: goto 43
        26: .line 4480
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        27: goto 33
        28: .line 4481
      StackMap locals: int
      StackMap stack:
            aload 8 /* newPatches */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPatch
            invokevirtual android.media.AudioPatch.sources:()[Landroid/media/AudioPortConfig;
            iload 10 /* j */
            aaload
        29: .line 4482
            aload 7 /* newPorts */
        30: .line 4481
            invokestatic android.media.AudioManager.updatePortConfig:(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
            astore 11 /* portCfg */
        start local 11 // android.media.AudioPortConfig portCfg
        31: .line 4483
            aload 8 /* newPatches */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPatch
            invokevirtual android.media.AudioPatch.sources:()[Landroid/media/AudioPortConfig;
            iload 10 /* j */
            aload 11 /* portCfg */
            aastore
        end local 11 // android.media.AudioPortConfig portCfg
        32: .line 4480
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        33: iload 10 /* j */
            aload 8 /* newPatches */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPatch
            invokevirtual android.media.AudioPatch.sources:()[Landroid/media/AudioPortConfig;
            arraylength
            if_icmplt 28
        end local 10 // int j
        34: .line 4485
            iconst_0
            istore 10 /* j */
        start local 10 // int j
        35: goto 41
        36: .line 4486
      StackMap locals:
      StackMap stack:
            aload 8 /* newPatches */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPatch
            invokevirtual android.media.AudioPatch.sinks:()[Landroid/media/AudioPortConfig;
            iload 10 /* j */
            aaload
        37: .line 4487
            aload 7 /* newPorts */
        38: .line 4486
            invokestatic android.media.AudioManager.updatePortConfig:(Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
            astore 11 /* portCfg */
        start local 11 // android.media.AudioPortConfig portCfg
        39: .line 4488
            aload 8 /* newPatches */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPatch
            invokevirtual android.media.AudioPatch.sinks:()[Landroid/media/AudioPortConfig;
            iload 10 /* j */
            aload 11 /* portCfg */
            aastore
        end local 11 // android.media.AudioPortConfig portCfg
        40: .line 4485
            iinc 10 /* j */ 1
      StackMap locals:
      StackMap stack:
        41: iload 10 /* j */
            aload 8 /* newPatches */
            iload 9 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPatch
            invokevirtual android.media.AudioPatch.sinks:()[Landroid/media/AudioPortConfig;
            arraylength
            if_icmplt 36
        end local 10 // int j
        42: .line 4479
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        43: iload 9 /* i */
            aload 8 /* newPatches */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 26
        end local 9 // int i
        44: .line 4491
            aload 8 /* newPatches */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 9 /* i */
        start local 9 // java.util.Iterator i
        45: goto 64
        46: .line 4492
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] int java.util.ArrayList java.util.ArrayList java.util.Iterator
      StackMap stack:
            aload 9 /* i */
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.media.AudioPatch
            astore 10 /* newPatch */
        start local 10 // android.media.AudioPatch newPatch
        47: .line 4493
            iconst_0
            istore 11 /* hasInvalidPort */
        start local 11 // boolean hasInvalidPort
        48: .line 4494
            aload 10 /* newPatch */
            invokevirtual android.media.AudioPatch.sources:()[Landroid/media/AudioPortConfig;
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 54
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] int java.util.ArrayList java.util.ArrayList java.util.Iterator android.media.AudioPatch int top int int android.media.AudioPortConfig[]
      StackMap stack:
        49: aload 15
            iload 13
            aaload
            astore 12 /* portCfg */
        start local 12 // android.media.AudioPortConfig portCfg
        50: .line 4495
            aload 12 /* portCfg */
            ifnonnull 53
        51: .line 4496
            iconst_1
            istore 11 /* hasInvalidPort */
        52: .line 4497
            goto 55
        end local 12 // android.media.AudioPortConfig portCfg
        53: .line 4494
      StackMap locals:
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        54: iload 13
            iload 14
            if_icmplt 49
        55: .line 4500
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] int java.util.ArrayList java.util.ArrayList java.util.Iterator android.media.AudioPatch int
      StackMap stack:
            aload 10 /* newPatch */
            invokevirtual android.media.AudioPatch.sinks:()[Landroid/media/AudioPortConfig;
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 61
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] int java.util.ArrayList java.util.ArrayList java.util.Iterator android.media.AudioPatch int top int int android.media.AudioPortConfig[]
      StackMap stack:
        56: aload 15
            iload 13
            aaload
            astore 12 /* portCfg */
        start local 12 // android.media.AudioPortConfig portCfg
        57: .line 4501
            aload 12 /* portCfg */
            ifnonnull 60
        58: .line 4502
            iconst_1
            istore 11 /* hasInvalidPort */
        59: .line 4503
            goto 62
        end local 12 // android.media.AudioPortConfig portCfg
        60: .line 4500
      StackMap locals:
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
        61: iload 13
            iload 14
            if_icmplt 56
        62: .line 4506
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer int[] int[] int java.util.ArrayList java.util.ArrayList java.util.Iterator android.media.AudioPatch int
      StackMap stack:
            iload 11 /* hasInvalidPort */
            ifeq 64
        63: .line 4509
            aload 9 /* i */
            invokeinterface java.util.Iterator.remove:()V
        end local 11 // boolean hasInvalidPort
        end local 10 // android.media.AudioPatch newPatch
        64: .line 4491
      StackMap locals:
      StackMap stack:
            aload 9 /* i */
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 46
        end local 9 // java.util.Iterator i
        65: .line 4513
            getstatic android.media.AudioManager.sAudioPortsCached:Ljava/util/ArrayList;
            putstatic android.media.AudioManager.sPreviousAudioPortsCached:Ljava/util/ArrayList;
        66: .line 4514
            aload 7 /* newPorts */
            putstatic android.media.AudioManager.sAudioPortsCached:Ljava/util/ArrayList;
        67: .line 4515
            aload 8 /* newPatches */
            putstatic android.media.AudioManager.sAudioPatchesCached:Ljava/util/ArrayList;
        68: .line 4516
            aload 5 /* portGeneration */
            iconst_0
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            putstatic android.media.AudioManager.sAudioPortGeneration:Ljava/lang/Integer;
        end local 8 // java.util.ArrayList newPatches
        end local 7 // java.util.ArrayList newPorts
        end local 6 // int status
        end local 5 // int[] portGeneration
        end local 4 // int[] patchGeneration
        69: .line 4518
      StackMap locals: java.util.ArrayList java.util.ArrayList java.util.ArrayList java.lang.Integer
      StackMap stack:
            aload 0 /* ports */
            ifnull 72
        70: .line 4519
            aload 0 /* ports */
            invokevirtual java.util.ArrayList.clear:()V
        71: .line 4520
            aload 0 /* ports */
            getstatic android.media.AudioManager.sAudioPortsCached:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        72: .line 4522
      StackMap locals:
      StackMap stack:
            aload 1 /* patches */
            ifnull 75
        73: .line 4523
            aload 1 /* patches */
            invokevirtual java.util.ArrayList.clear:()V
        74: .line 4524
            aload 1 /* patches */
            getstatic android.media.AudioManager.sAudioPatchesCached:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        75: .line 4526
      StackMap locals:
      StackMap stack:
            aload 2 /* previousPorts */
            ifnull 78
        76: .line 4527
            aload 2 /* previousPorts */
            invokevirtual java.util.ArrayList.clear:()V
        77: .line 4528
            aload 2 /* previousPorts */
            getstatic android.media.AudioManager.sPreviousAudioPortsCached:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.addAll:(Ljava/util/Collection;)Z
            pop
        78: .line 4447
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        79: goto 82
      StackMap locals:
      StackMap stack: java.lang.Throwable
        80: aload 3
            monitorexit
        81: athrow
        82: .line 4531
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.util.ArrayList previousPorts
        end local 1 // java.util.ArrayList patches
        end local 0 // java.util.ArrayList ports
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   83     0            ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            0   83     1          patches  Ljava/util/ArrayList<Landroid/media/AudioPatch;>;
            0   83     2    previousPorts  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            4   69     4  patchGeneration  [I
            5   69     5   portGeneration  [I
            9   69     6           status  I
            6   69     7         newPorts  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            7   69     8       newPatches  Ljava/util/ArrayList<Landroid/media/AudioPatch;>;
           25   44     9                i  I
           27   34    10                j  I
           31   32    11          portCfg  Landroid/media/AudioPortConfig;
           35   42    10                j  I
           39   40    11          portCfg  Landroid/media/AudioPortConfig;
           45   65     9                i  Ljava/util/Iterator<Landroid/media/AudioPatch;>;
           47   64    10         newPatch  Landroid/media/AudioPatch;
           48   64    11   hasInvalidPort  Z
           50   53    12          portCfg  Landroid/media/AudioPortConfig;
           57   60    12          portCfg  Landroid/media/AudioPortConfig;
      Exception table:
        from    to  target  type
           2    12      80  any
          13    18      80  any
          19    23      80  any
          24    79      80  any
          80    81      80  any
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioPort;>;Ljava/util/ArrayList<Landroid/media/AudioPatch;>;Ljava/util/ArrayList<Landroid/media/AudioPort;>;)I
    MethodParameters:
               Name  Flags
      ports          
      patches        
      previousPorts  

  static android.media.AudioPortConfig updatePortConfig(android.media.AudioPortConfig, java.util.ArrayList<android.media.AudioPort>);
    descriptor: (Landroid/media/AudioPortConfig;Ljava/util/ArrayList;)Landroid/media/AudioPortConfig;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=6, args_size=2
        start local 0 // android.media.AudioPortConfig portCfg
        start local 1 // java.util.ArrayList ports
         0: .line 4535
            aload 0 /* portCfg */
            invokevirtual android.media.AudioPortConfig.port:()Landroid/media/AudioPort;
            astore 2 /* port */
        start local 2 // android.media.AudioPort port
         1: .line 4537
            iconst_0
            istore 3 /* k */
        start local 3 // int k
         2: goto 7
         3: .line 4540
      StackMap locals: android.media.AudioPort int
      StackMap stack:
            aload 1 /* ports */
            iload 3 /* k */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPort
            invokevirtual android.media.AudioPort.handle:()Landroid/media/AudioHandle;
            aload 2 /* port */
            invokevirtual android.media.AudioPort.handle:()Landroid/media/AudioHandle;
            invokevirtual android.media.AudioHandle.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 4541
            aload 1 /* ports */
            iload 3 /* k */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioPort
            astore 2 /* port */
         5: .line 4542
            goto 8
         6: .line 4537
      StackMap locals:
      StackMap stack:
            iinc 3 /* k */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* k */
            aload 1 /* ports */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 3
         8: .line 4545
      StackMap locals:
      StackMap stack:
            iload 3 /* k */
            aload 1 /* ports */
            invokevirtual java.util.ArrayList.size:()I
            if_icmpne 11
         9: .line 4547
            ldc "AudioManager"
            new java.lang.StringBuilder
            dup
            ldc "updatePortConfig port not found for handle: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* port */
            invokevirtual android.media.AudioPort.handle:()Landroid/media/AudioHandle;
            invokevirtual android.media.AudioHandle.id:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 4548
            aconst_null
            areturn
        11: .line 4550
      StackMap locals:
      StackMap stack:
            aload 0 /* portCfg */
            invokevirtual android.media.AudioPortConfig.gain:()Landroid/media/AudioGainConfig;
            astore 4 /* gainCfg */
        start local 4 // android.media.AudioGainConfig gainCfg
        12: .line 4551
            aload 4 /* gainCfg */
            ifnull 19
        13: .line 4552
            aload 2 /* port */
            aload 4 /* gainCfg */
            invokevirtual android.media.AudioGainConfig.index:()I
            invokevirtual android.media.AudioPort.gain:(I)Landroid/media/AudioGain;
            astore 5 /* gain */
        start local 5 // android.media.AudioGain gain
        14: .line 4553
            aload 5 /* gain */
            aload 4 /* gainCfg */
            invokevirtual android.media.AudioGainConfig.mode:()I
        15: .line 4554
            aload 4 /* gainCfg */
            invokevirtual android.media.AudioGainConfig.channelMask:()I
        16: .line 4555
            aload 4 /* gainCfg */
            invokevirtual android.media.AudioGainConfig.values:()[I
        17: .line 4556
            aload 4 /* gainCfg */
            invokevirtual android.media.AudioGainConfig.rampDurationMs:()I
        18: .line 4553
            invokevirtual android.media.AudioGain.buildConfig:(II[II)Landroid/media/AudioGainConfig;
            astore 4 /* gainCfg */
        end local 5 // android.media.AudioGain gain
        19: .line 4558
      StackMap locals: android.media.AudioGainConfig
      StackMap stack:
            aload 2 /* port */
            aload 0 /* portCfg */
            invokevirtual android.media.AudioPortConfig.samplingRate:()I
        20: .line 4559
            aload 0 /* portCfg */
            invokevirtual android.media.AudioPortConfig.channelMask:()I
        21: .line 4560
            aload 0 /* portCfg */
            invokevirtual android.media.AudioPortConfig.format:()I
        22: .line 4561
            aload 4 /* gainCfg */
        23: .line 4558
            invokevirtual android.media.AudioPort.buildConfig:(IIILandroid/media/AudioGainConfig;)Landroid/media/AudioPortConfig;
            areturn
        end local 4 // android.media.AudioGainConfig gainCfg
        end local 3 // int k
        end local 2 // android.media.AudioPort port
        end local 1 // java.util.ArrayList ports
        end local 0 // android.media.AudioPortConfig portCfg
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   24     0  portCfg  Landroid/media/AudioPortConfig;
            0   24     1    ports  Ljava/util/ArrayList<Landroid/media/AudioPort;>;
            1   24     2     port  Landroid/media/AudioPort;
            2   24     3        k  I
           12   24     4  gainCfg  Landroid/media/AudioGainConfig;
           14   19     5     gain  Landroid/media/AudioGain;
    Signature: (Landroid/media/AudioPortConfig;Ljava/util/ArrayList<Landroid/media/AudioPort;>;)Landroid/media/AudioPortConfig;
    MethodParameters:
         Name  Flags
      portCfg  
      ports    

  private static boolean checkFlags(android.media.AudioDevicePort, int);
    descriptor: (Landroid/media/AudioDevicePort;I)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.AudioDevicePort port
        start local 1 // int flags
         0: .line 4609
            aload 0 /* port */
            invokevirtual android.media.AudioDevicePort.role:()I
            iconst_2
            if_icmpne 1
            iload 1 /* flags */
            iconst_2
            iand
            ifne 3
         1: .line 4610
      StackMap locals:
      StackMap stack:
            aload 0 /* port */
            invokevirtual android.media.AudioDevicePort.role:()I
            iconst_1
            if_icmpne 2
            iload 1 /* flags */
            iconst_1
            iand
            ifne 3
         2: .line 4609
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            ireturn
        end local 1 // int flags
        end local 0 // android.media.AudioDevicePort port
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   port  Landroid/media/AudioDevicePort;
            0    4     1  flags  I
    MethodParameters:
       Name  Flags
      port   
      flags  

  private static boolean checkTypes(android.media.AudioDevicePort);
    descriptor: (Landroid/media/AudioDevicePort;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.AudioDevicePort port
         0: .line 4614
            aload 0 /* port */
            invokevirtual android.media.AudioDevicePort.type:()I
            invokestatic android.media.AudioDeviceInfo.convertInternalDeviceToDeviceType:(I)I
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.media.AudioDevicePort port
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  port  Landroid/media/AudioDevicePort;
    MethodParameters:
      Name  Flags
      port  

  public android.media.AudioDeviceInfo[] getDevices(int);
    descriptor: (I)[Landroid/media/AudioDeviceInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // int flags
         0: .line 4629
            iload 1 /* flags */
            invokestatic android.media.AudioManager.getDevicesStatic:(I)[Landroid/media/AudioDeviceInfo;
            areturn
        end local 1 // int flags
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/media/AudioManager;
            0    1     1  flags  I
    MethodParameters:
       Name  Flags
      flags  

  private static android.media.AudioDeviceInfo[] infoListFromPortList(java.util.ArrayList<android.media.AudioDevicePort>, int);
    descriptor: (Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=7, args_size=2
        start local 0 // java.util.ArrayList ports
        start local 1 // int flags
         0: .line 4640
            iconst_0
            istore 2 /* numRecs */
        start local 2 // int numRecs
         1: .line 4641
            aload 0 /* ports */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: java.util.ArrayList int int top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.media.AudioDevicePort
            astore 3 /* port */
        start local 3 // android.media.AudioDevicePort port
         3: .line 4642
            aload 3 /* port */
            invokestatic android.media.AudioManager.checkTypes:(Landroid/media/AudioDevicePort;)Z
            ifeq 5
            aload 3 /* port */
            iload 1 /* flags */
            invokestatic android.media.AudioManager.checkFlags:(Landroid/media/AudioDevicePort;I)Z
            ifeq 5
         4: .line 4643
            iinc 2 /* numRecs */ 1
        end local 3 // android.media.AudioDevicePort port
         5: .line 4641
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 4648
            iload 2 /* numRecs */
            anewarray android.media.AudioDeviceInfo
            astore 3 /* deviceList */
        start local 3 // android.media.AudioDeviceInfo[] deviceList
         7: .line 4649
            iconst_0
            istore 4 /* slot */
        start local 4 // int slot
         8: .line 4650
            aload 0 /* ports */
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 6
            goto 12
      StackMap locals: java.util.ArrayList int int android.media.AudioDeviceInfo[] int top java.util.Iterator
      StackMap stack:
         9: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.media.AudioDevicePort
            astore 5 /* port */
        start local 5 // android.media.AudioDevicePort port
        10: .line 4651
            aload 5 /* port */
            invokestatic android.media.AudioManager.checkTypes:(Landroid/media/AudioDevicePort;)Z
            ifeq 12
            aload 5 /* port */
            iload 1 /* flags */
            invokestatic android.media.AudioManager.checkFlags:(Landroid/media/AudioDevicePort;I)Z
            ifeq 12
        11: .line 4652
            aload 3 /* deviceList */
            iload 4 /* slot */
            iinc 4 /* slot */ 1
            new android.media.AudioDeviceInfo
            dup
            aload 5 /* port */
            invokespecial android.media.AudioDeviceInfo.<init>:(Landroid/media/AudioDevicePort;)V
            aastore
        end local 5 // android.media.AudioDevicePort port
        12: .line 4650
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        13: .line 4656
            aload 3 /* deviceList */
            areturn
        end local 4 // int slot
        end local 3 // android.media.AudioDeviceInfo[] deviceList
        end local 2 // int numRecs
        end local 1 // int flags
        end local 0 // java.util.ArrayList ports
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   14     0       ports  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            0   14     1       flags  I
            1   14     2     numRecs  I
            3    5     3        port  Landroid/media/AudioDevicePort;
            7   14     3  deviceList  [Landroid/media/AudioDeviceInfo;
            8   14     4        slot  I
           10   12     5        port  Landroid/media/AudioDevicePort;
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;I)[Landroid/media/AudioDeviceInfo;
    MethodParameters:
       Name  Flags
      ports  
      flags  

  private static android.media.AudioDeviceInfo[] calcListDeltas(java.util.ArrayList<android.media.AudioDevicePort>, java.util.ArrayList<android.media.AudioDevicePort>, int);
    descriptor: (Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=8, args_size=3
        start local 0 // java.util.ArrayList ports_A
        start local 1 // java.util.ArrayList ports_B
        start local 2 // int flags
         0: .line 4670
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* delta_ports */
        start local 3 // java.util.ArrayList delta_ports
         1: .line 4672
            aconst_null
            astore 4 /* cur_port */
        start local 4 // android.media.AudioDevicePort cur_port
         2: .line 4673
            iconst_0
            istore 5 /* cur_index */
        start local 5 // int cur_index
         3: goto 16
         4: .line 4674
      StackMap locals: java.util.ArrayList android.media.AudioDevicePort int
      StackMap stack:
            iconst_0
            istore 6 /* cur_port_found */
        start local 6 // boolean cur_port_found
         5: .line 4675
            aload 1 /* ports_B */
            iload 5 /* cur_index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioDevicePort
            astore 4 /* cur_port */
         6: .line 4676
            iconst_0
            istore 7 /* prev_index */
        start local 7 // int prev_index
         7: .line 4677
            goto 12
         8: .line 4679
      StackMap locals: int int
      StackMap stack:
            aload 4 /* cur_port */
            invokevirtual android.media.AudioDevicePort.id:()I
            aload 0 /* ports_A */
            iload 7 /* prev_index */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.AudioDevicePort
            invokevirtual android.media.AudioDevicePort.id:()I
            if_icmpne 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: istore 6 /* cur_port_found */
        11: .line 4678
            iinc 7 /* prev_index */ 1
        12: .line 4677
      StackMap locals:
      StackMap stack:
            iload 7 /* prev_index */
            aload 0 /* ports_A */
            invokevirtual java.util.ArrayList.size:()I
            if_icmpge 13
            iload 6 /* cur_port_found */
            ifeq 8
        end local 7 // int prev_index
        13: .line 4682
      StackMap locals:
      StackMap stack:
            iload 6 /* cur_port_found */
            ifne 15
        14: .line 4683
            aload 3 /* delta_ports */
            aload 4 /* cur_port */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // boolean cur_port_found
        15: .line 4673
      StackMap locals:
      StackMap stack:
            iinc 5 /* cur_index */ 1
      StackMap locals:
      StackMap stack:
        16: iload 5 /* cur_index */
            aload 1 /* ports_B */
            invokevirtual java.util.ArrayList.size:()I
            if_icmplt 4
        end local 5 // int cur_index
        17: .line 4687
            aload 3 /* delta_ports */
            iload 2 /* flags */
            invokestatic android.media.AudioManager.infoListFromPortList:(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
            areturn
        end local 4 // android.media.AudioDevicePort cur_port
        end local 3 // java.util.ArrayList delta_ports
        end local 2 // int flags
        end local 1 // java.util.ArrayList ports_B
        end local 0 // java.util.ArrayList ports_A
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   18     0         ports_A  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            0   18     1         ports_B  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            0   18     2           flags  I
            1   18     3     delta_ports  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            2   18     4        cur_port  Landroid/media/AudioDevicePort;
            3   17     5       cur_index  I
            5   15     6  cur_port_found  Z
            7   13     7      prev_index  I
    Signature: (Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;I)[Landroid/media/AudioDeviceInfo;
    MethodParameters:
         Name  Flags
      ports_A  
      ports_B  
      flags    

  public static android.media.AudioDeviceInfo[] getDevicesStatic(int);
    descriptor: (I)[Landroid/media/AudioDeviceInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // int flags
         0: .line 4703
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ports */
        start local 1 // java.util.ArrayList ports
         1: .line 4704
            aload 1 /* ports */
            invokestatic android.media.AudioManager.listAudioDevicePorts:(Ljava/util/ArrayList;)I
            istore 2 /* status */
        start local 2 // int status
         2: .line 4705
            iload 2 /* status */
            ifeq 4
         3: .line 4707
            iconst_0
            anewarray android.media.AudioDeviceInfo
            areturn
         4: .line 4710
      StackMap locals: java.util.ArrayList int
      StackMap stack:
            aload 1 /* ports */
            iload 0 /* flags */
            invokestatic android.media.AudioManager.infoListFromPortList:(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
            areturn
        end local 2 // int status
        end local 1 // java.util.ArrayList ports
        end local 0 // int flags
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0   flags  I
            1    5     1   ports  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            2    5     2  status  I
    MethodParameters:
       Name  Flags
      flags  

  public void registerAudioDeviceCallback(android.media.AudioDeviceCallback, android.os.Handler);
    descriptor: (Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioDeviceCallback callback
        start local 2 // android.os.Handler handler
         0: .line 4724
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            dup
            astore 3
            monitorenter
         1: .line 4725
            aload 1 /* callback */
            ifnull 10
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            aload 1 /* callback */
            invokevirtual android.util.ArrayMap.containsKey:(Ljava/lang/Object;)Z
            ifne 10
         2: .line 4726
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            ifne 6
         3: .line 4727
            aload 0 /* this */
            getfield android.media.AudioManager.mPortListener:Landroid/media/AudioManager$OnAmPortUpdateListener;
            ifnonnull 5
         4: .line 4728
            aload 0 /* this */
            new android.media.AudioManager$OnAmPortUpdateListener
            dup
            aload 0 /* this */
            invokespecial android.media.AudioManager$OnAmPortUpdateListener.<init>:(Landroid/media/AudioManager;)V
            putfield android.media.AudioManager.mPortListener:Landroid/media/AudioManager$OnAmPortUpdateListener;
         5: .line 4730
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.AudioManager.mPortListener:Landroid/media/AudioManager$OnAmPortUpdateListener;
            invokevirtual android.media.AudioManager.registerAudioPortUpdateListener:(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
         6: .line 4733
      StackMap locals:
      StackMap stack:
            new android.media.AudioManager$NativeEventHandlerDelegate
            dup
            aload 0 /* this */
            aload 1 /* callback */
            aload 2 /* handler */
            invokespecial android.media.AudioManager$NativeEventHandlerDelegate.<init>:(Landroid/media/AudioManager;Landroid/media/AudioDeviceCallback;Landroid/os/Handler;)V
         7: .line 4732
            astore 4 /* delegate */
        start local 4 // android.media.AudioManager$NativeEventHandlerDelegate delegate
         8: .line 4734
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            aload 1 /* callback */
            aload 4 /* delegate */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 4735
            aload 0 /* this */
            aload 4 /* delegate */
            invokevirtual android.media.AudioManager$NativeEventHandlerDelegate.getHandler:()Landroid/os/Handler;
            invokevirtual android.media.AudioManager.broadcastDeviceListChange_sync:(Landroid/os/Handler;)V
        end local 4 // android.media.AudioManager$NativeEventHandlerDelegate delegate
        10: .line 4724
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        11: goto 14
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: aload 3
            monitorexit
        13: athrow
        14: .line 4738
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.media.AudioDeviceCallback callback
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   15     0      this  Landroid/media/AudioManager;
            0   15     1  callback  Landroid/media/AudioDeviceCallback;
            0   15     2   handler  Landroid/os/Handler;
            8   10     4  delegate  Landroid/media/AudioManager$NativeEventHandlerDelegate;
      Exception table:
        from    to  target  type
           1    11      12  any
          12    13      12  any
    MethodParameters:
          Name  Flags
      callback  
      handler   

  public void unregisterAudioDeviceCallback(android.media.AudioDeviceCallback);
    descriptor: (Landroid/media/AudioDeviceCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.media.AudioDeviceCallback callback
         0: .line 4747
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            dup
            astore 2
            monitorenter
         1: .line 4748
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            aload 1 /* callback */
            invokevirtual android.util.ArrayMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 5
         2: .line 4749
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            aload 1 /* callback */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 4750
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            ifne 5
         4: .line 4751
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.AudioManager.mPortListener:Landroid/media/AudioManager$OnAmPortUpdateListener;
            invokevirtual android.media.AudioManager.unregisterAudioPortUpdateListener:(Landroid/media/AudioManager$OnAudioPortUpdateListener;)V
         5: .line 4747
      StackMap locals: android.util.ArrayMap
      StackMap stack:
            aload 2
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 2
            monitorexit
         8: athrow
         9: .line 4755
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.media.AudioDeviceCallback callback
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   10     0      this  Landroid/media/AudioManager;
            0   10     1  callback  Landroid/media/AudioDeviceCallback;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any
    MethodParameters:
          Name  Flags
      callback  

  public static void setPortIdForMicrophones(java.util.ArrayList<android.media.MicrophoneInfo>);
    descriptor: (Ljava/util/ArrayList;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=1
        start local 0 // java.util.ArrayList microphones
         0: .line 4762
            iconst_1
            invokestatic android.media.AudioManager.getDevicesStatic:(I)[Landroid/media/AudioDeviceInfo;
            astore 1 /* devices */
        start local 1 // android.media.AudioDeviceInfo[] devices
         1: .line 4763
            aload 0 /* microphones */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         2: goto 20
         3: .line 4764
      StackMap locals: android.media.AudioDeviceInfo[] int
      StackMap stack:
            iconst_0
            istore 3 /* foundPortId */
        start local 3 // boolean foundPortId
         4: .line 4765
            aload 1 /* devices */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 12
      StackMap locals: java.util.ArrayList android.media.AudioDeviceInfo[] int int top int int android.media.AudioDeviceInfo[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* device */
        start local 4 // android.media.AudioDeviceInfo device
         6: .line 4766
            aload 4 /* device */
            invokevirtual android.media.AudioDeviceInfo.getPort:()Landroid/media/AudioDevicePort;
            invokevirtual android.media.AudioDevicePort.type:()I
            aload 0 /* microphones */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.MicrophoneInfo
            invokevirtual android.media.MicrophoneInfo.getInternalDeviceType:()I
            if_icmpne 11
         7: .line 4767
            aload 4 /* device */
            invokevirtual android.media.AudioDeviceInfo.getAddress:()Ljava/lang/String;
            aload 0 /* microphones */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.MicrophoneInfo
            invokevirtual android.media.MicrophoneInfo.getAddress:()Ljava/lang/String;
            invokestatic android.text.TextUtils.equals:(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
            ifeq 11
         8: .line 4768
            aload 0 /* microphones */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.MicrophoneInfo
            aload 4 /* device */
            invokevirtual android.media.AudioDeviceInfo.getId:()I
            invokevirtual android.media.MicrophoneInfo.setId:(I)V
         9: .line 4769
            iconst_1
            istore 3 /* foundPortId */
        10: .line 4770
            goto 13
        end local 4 // android.media.AudioDeviceInfo device
        11: .line 4765
      StackMap locals:
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        12: iload 5
            iload 6
            if_icmplt 5
        13: .line 4773
      StackMap locals: java.util.ArrayList android.media.AudioDeviceInfo[] int int
      StackMap stack:
            iload 3 /* foundPortId */
            ifne 19
        14: .line 4774
            ldc "AudioManager"
            new java.lang.StringBuilder
            dup
            ldc "Failed to find port id for device with type:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        15: .line 4775
            aload 0 /* microphones */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.MicrophoneInfo
            invokevirtual android.media.MicrophoneInfo.getType:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " address:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        16: .line 4776
            aload 0 /* microphones */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast android.media.MicrophoneInfo
            invokevirtual android.media.MicrophoneInfo.getAddress:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 4774
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        18: .line 4777
            aload 0 /* microphones */
            iload 2 /* i */
            invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
            pop
        end local 3 // boolean foundPortId
        19: .line 4763
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
        20: iload 2 /* i */
            ifge 3
        end local 2 // int i
        21: .line 4780
            return
        end local 1 // android.media.AudioDeviceInfo[] devices
        end local 0 // java.util.ArrayList microphones
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   22     0  microphones  Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;
            1   22     1      devices  [Landroid/media/AudioDeviceInfo;
            2   21     2            i  I
            4   19     3  foundPortId  Z
            6   11     4       device  Landroid/media/AudioDeviceInfo;
    Signature: (Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;)V
    MethodParameters:
             Name  Flags
      microphones  

  public static android.media.MicrophoneInfo microphoneInfoFromAudioDeviceInfo(android.media.AudioDeviceInfo);
    descriptor: (Landroid/media/AudioDeviceInfo;)Landroid/media/MicrophoneInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=16, locals=4, args_size=1
        start local 0 // android.media.AudioDeviceInfo deviceInfo
         0: .line 4787
            aload 0 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getType:()I
            istore 1 /* deviceType */
        start local 1 // int deviceType
         1: .line 4788
            iload 1 /* deviceType */
            bipush 15
            if_icmpeq 3
         2: .line 4789
            iload 1 /* deviceType */
            bipush 18
            if_icmpne 4
      StackMap locals: int
      StackMap stack:
         3: iconst_1
            goto 6
         4: .line 4790
      StackMap locals:
      StackMap stack:
            iload 1 /* deviceType */
            ifne 5
            iconst_0
            goto 6
         5: .line 4791
      StackMap locals:
      StackMap stack:
            iconst_3
         6: .line 4788
      StackMap locals:
      StackMap stack: int
            istore 2 /* micLocation */
        start local 2 // int micLocation
         7: .line 4792
            new android.media.MicrophoneInfo
            dup
         8: .line 4793
            new java.lang.StringBuilder
            dup
            aload 0 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getPort:()Landroid/media/AudioDevicePort;
            invokevirtual android.media.AudioDevicePort.name:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getId:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 4794
            aload 0 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getPort:()Landroid/media/AudioDevicePort;
            invokevirtual android.media.AudioDevicePort.type:()I
            aload 0 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getAddress:()Ljava/lang/String;
            iload 2 /* micLocation */
        10: .line 4795
            iconst_m1
            iconst_m1
        11: .line 4796
            getstatic android.media.MicrophoneInfo.POSITION_UNKNOWN:Landroid/media/MicrophoneInfo$Coordinate3F;
            getstatic android.media.MicrophoneInfo.ORIENTATION_UNKNOWN:Landroid/media/MicrophoneInfo$Coordinate3F;
        12: .line 4797
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
        13: .line 4798
            ldc -3.4028235E38
            ldc -3.4028235E38
        14: .line 4799
            ldc -3.4028235E38
            iconst_0
        15: .line 4792
            invokespecial android.media.MicrophoneInfo.<init>:(Ljava/lang/String;ILjava/lang/String;IIILandroid/media/MicrophoneInfo$Coordinate3F;Landroid/media/MicrophoneInfo$Coordinate3F;Ljava/util/List;Ljava/util/List;FFFI)V
            astore 3 /* microphone */
        start local 3 // android.media.MicrophoneInfo microphone
        16: .line 4800
            aload 3 /* microphone */
            aload 0 /* deviceInfo */
            invokevirtual android.media.AudioDeviceInfo.getId:()I
            invokevirtual android.media.MicrophoneInfo.setId:(I)V
        17: .line 4801
            aload 3 /* microphone */
            areturn
        end local 3 // android.media.MicrophoneInfo microphone
        end local 2 // int micLocation
        end local 1 // int deviceType
        end local 0 // android.media.AudioDeviceInfo deviceInfo
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   18     0   deviceInfo  Landroid/media/AudioDeviceInfo;
            1   18     1   deviceType  I
            7   18     2  micLocation  I
           16   18     3   microphone  Landroid/media/MicrophoneInfo;
    MethodParameters:
            Name  Flags
      deviceInfo  

  private void addMicrophonesFromAudioDeviceInfo(java.util.ArrayList<android.media.MicrophoneInfo>, java.util.HashSet<java.lang.Integer>);
    descriptor: (Ljava/util/ArrayList;Ljava/util/HashSet;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=9, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // java.util.ArrayList microphones
        start local 2 // java.util.HashSet filterTypes
         0: .line 4809
            iconst_1
            invokestatic android.media.AudioManager.getDevicesStatic:(I)[Landroid/media/AudioDeviceInfo;
            astore 3 /* devices */
        start local 3 // android.media.AudioDeviceInfo[] devices
         1: .line 4810
            aload 3 /* devices */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 8
      StackMap locals: android.media.AudioManager java.util.ArrayList java.util.HashSet android.media.AudioDeviceInfo[] top int int android.media.AudioDeviceInfo[]
      StackMap stack:
         2: aload 7
            iload 5
            aaload
            astore 4 /* device */
        start local 4 // android.media.AudioDeviceInfo device
         3: .line 4811
            aload 2 /* filterTypes */
            aload 4 /* device */
            invokevirtual android.media.AudioDeviceInfo.getType:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.contains:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 4812
            goto 7
         5: .line 4814
      StackMap locals: android.media.AudioManager java.util.ArrayList java.util.HashSet android.media.AudioDeviceInfo[] android.media.AudioDeviceInfo int int android.media.AudioDeviceInfo[]
      StackMap stack:
            aload 4 /* device */
            invokestatic android.media.AudioManager.microphoneInfoFromAudioDeviceInfo:(Landroid/media/AudioDeviceInfo;)Landroid/media/MicrophoneInfo;
            astore 8 /* microphone */
        start local 8 // android.media.MicrophoneInfo microphone
         6: .line 4815
            aload 1 /* microphones */
            aload 8 /* microphone */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 8 // android.media.MicrophoneInfo microphone
        end local 4 // android.media.AudioDeviceInfo device
         7: .line 4810
      StackMap locals: android.media.AudioManager java.util.ArrayList java.util.HashSet android.media.AudioDeviceInfo[] top int int android.media.AudioDeviceInfo[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
         8: iload 5
            iload 6
            if_icmplt 2
         9: .line 4817
            return
        end local 3 // android.media.AudioDeviceInfo[] devices
        end local 2 // java.util.HashSet filterTypes
        end local 1 // java.util.ArrayList microphones
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0         this  Landroid/media/AudioManager;
            0   10     1  microphones  Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;
            0   10     2  filterTypes  Ljava/util/HashSet<Ljava/lang/Integer;>;
            1   10     3      devices  [Landroid/media/AudioDeviceInfo;
            3    7     4       device  Landroid/media/AudioDeviceInfo;
            6    7     8   microphone  Landroid/media/MicrophoneInfo;
    Signature: (Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;Ljava/util/HashSet<Ljava/lang/Integer;>;)V
    MethodParameters:
             Name  Flags
      microphones  
      filterTypes  

  public java.util.List<android.media.MicrophoneInfo> getMicrophones();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 4828
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* microphones */
        start local 1 // java.util.ArrayList microphones
         1: .line 4829
            aload 1 /* microphones */
            invokestatic android.media.AudioSystem.getMicrophones:(Ljava/util/ArrayList;)I
            istore 2 /* status */
        start local 2 // int status
         2: .line 4830
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* filterTypes */
        start local 3 // java.util.HashSet filterTypes
         3: .line 4831
            aload 3 /* filterTypes */
            bipush 18
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
         4: .line 4832
            iload 2 /* status */
            ifeq 10
         5: .line 4834
            iload 2 /* status */
            bipush -3
            if_icmpeq 7
         6: .line 4835
            ldc "AudioManager"
            new java.lang.StringBuilder
            dup
            ldc "getMicrophones failed:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         7: .line 4837
      StackMap locals: java.util.ArrayList int java.util.HashSet
      StackMap stack:
            ldc "AudioManager"
            ldc "fallback on device info"
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         8: .line 4838
            aload 0 /* this */
            aload 1 /* microphones */
            aload 3 /* filterTypes */
            invokevirtual android.media.AudioManager.addMicrophonesFromAudioDeviceInfo:(Ljava/util/ArrayList;Ljava/util/HashSet;)V
         9: .line 4839
            aload 1 /* microphones */
            areturn
        10: .line 4841
      StackMap locals:
      StackMap stack:
            aload 1 /* microphones */
            invokestatic android.media.AudioManager.setPortIdForMicrophones:(Ljava/util/ArrayList;)V
        11: .line 4842
            aload 3 /* filterTypes */
            bipush 15
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual java.util.HashSet.add:(Ljava/lang/Object;)Z
            pop
        12: .line 4843
            aload 0 /* this */
            aload 1 /* microphones */
            aload 3 /* filterTypes */
            invokevirtual android.media.AudioManager.addMicrophonesFromAudioDeviceInfo:(Ljava/util/ArrayList;Ljava/util/HashSet;)V
        13: .line 4844
            aload 1 /* microphones */
            areturn
        end local 3 // java.util.HashSet filterTypes
        end local 2 // int status
        end local 1 // java.util.ArrayList microphones
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   14     0         this  Landroid/media/AudioManager;
            1   14     1  microphones  Ljava/util/ArrayList<Landroid/media/MicrophoneInfo;>;
            2   14     2       status  I
            3   14     3  filterTypes  Ljava/util/HashSet<Ljava/lang/Integer;>;
    Exceptions:
      throws java.io.IOException
    Signature: ()Ljava/util/List<Landroid/media/MicrophoneInfo;>;

  private void broadcastDeviceListChange_sync(android.os.Handler);
    descriptor: (Landroid/os/Handler;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=7, args_size=2
        start local 0 // android.media.AudioManager this
        start local 1 // android.os.Handler handler
         0: .line 4860
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* current_ports */
        start local 3 // java.util.ArrayList current_ports
         1: .line 4861
            aload 3 /* current_ports */
            invokestatic android.media.AudioManager.listAudioDevicePorts:(Ljava/util/ArrayList;)I
            istore 2 /* status */
        start local 2 // int status
         2: .line 4862
            iload 2 /* status */
            ifeq 4
         3: .line 4863
            return
         4: .line 4866
      StackMap locals: int java.util.ArrayList
      StackMap stack:
            aload 1 /* handler */
            ifnull 11
         5: .line 4869
            aload 3 /* current_ports */
            iconst_3
            invokestatic android.media.AudioManager.infoListFromPortList:(Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
         6: .line 4868
            astore 4 /* deviceList */
        start local 4 // android.media.AudioDeviceInfo[] deviceList
         7: .line 4870
            aload 1 /* handler */
         8: .line 4871
            aload 1 /* handler */
            iconst_0
            aload 4 /* deviceList */
            invokestatic android.os.Message.obtain:(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message;
         9: .line 4870
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
        end local 4 // android.media.AudioDeviceInfo[] deviceList
        10: .line 4872
            goto 32
        11: .line 4874
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mPreviousPorts:Ljava/util/ArrayList;
            aload 3 /* current_ports */
            iconst_3
            invokestatic android.media.AudioManager.calcListDeltas:(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
        12: .line 4873
            astore 4 /* added_devices */
        start local 4 // android.media.AudioDeviceInfo[] added_devices
        13: .line 4876
            aload 3 /* current_ports */
            aload 0 /* this */
            getfield android.media.AudioManager.mPreviousPorts:Ljava/util/ArrayList;
            iconst_3
            invokestatic android.media.AudioManager.calcListDeltas:(Ljava/util/ArrayList;Ljava/util/ArrayList;I)[Landroid/media/AudioDeviceInfo;
        14: .line 4875
            astore 5 /* removed_devices */
        start local 5 // android.media.AudioDeviceInfo[] removed_devices
        15: .line 4877
            aload 4 /* added_devices */
            arraylength
            ifne 16
            aload 5 /* removed_devices */
            arraylength
            ifeq 32
        16: .line 4878
      StackMap locals: android.media.AudioDeviceInfo[] android.media.AudioDeviceInfo[]
      StackMap stack:
            iconst_0
            istore 6 /* i */
        start local 6 // int i
        17: goto 31
        18: .line 4879
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            iload 6 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.media.AudioManager$NativeEventHandlerDelegate
            invokevirtual android.media.AudioManager$NativeEventHandlerDelegate.getHandler:()Landroid/os/Handler;
            astore 1 /* handler */
        19: .line 4880
            aload 1 /* handler */
            ifnull 30
        20: .line 4881
            aload 5 /* removed_devices */
            arraylength
            ifeq 25
        21: .line 4882
            aload 1 /* handler */
            aload 1 /* handler */
        22: .line 4883
            iconst_2
        23: .line 4884
            aload 5 /* removed_devices */
        24: .line 4882
            invokestatic android.os.Message.obtain:(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message;
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
        25: .line 4886
      StackMap locals:
      StackMap stack:
            aload 4 /* added_devices */
            arraylength
            ifeq 30
        26: .line 4887
            aload 1 /* handler */
            aload 1 /* handler */
        27: .line 4888
            iconst_1
        28: .line 4889
            aload 4 /* added_devices */
        29: .line 4887
            invokestatic android.os.Message.obtain:(Landroid/os/Handler;ILjava/lang/Object;)Landroid/os/Message;
            invokevirtual android.os.Handler.sendMessage:(Landroid/os/Message;)Z
            pop
        30: .line 4878
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        31: iload 6 /* i */
            aload 0 /* this */
            getfield android.media.AudioManager.mDeviceCallbacks:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            if_icmplt 18
        end local 6 // int i
        end local 5 // android.media.AudioDeviceInfo[] removed_devices
        end local 4 // android.media.AudioDeviceInfo[] added_devices
        32: .line 4896
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* current_ports */
            putfield android.media.AudioManager.mPreviousPorts:Ljava/util/ArrayList;
        33: .line 4897
            return
        end local 3 // java.util.ArrayList current_ports
        end local 2 // int status
        end local 1 // android.os.Handler handler
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   34     0             this  Landroid/media/AudioManager;
            0   34     1          handler  Landroid/os/Handler;
            2   34     2           status  I
            1   34     3    current_ports  Ljava/util/ArrayList<Landroid/media/AudioDevicePort;>;
            7   10     4       deviceList  [Landroid/media/AudioDeviceInfo;
           13   32     4    added_devices  [Landroid/media/AudioDeviceInfo;
           15   32     5  removed_devices  [Landroid/media/AudioDeviceInfo;
           17   32     6                i  I
    MethodParameters:
         Name  Flags
      handler  

  public void setAudioServerStateCallback(java.util.concurrent.Executor, android.media.AudioManager$AudioServerStateCallback);
    descriptor: (Ljava/util/concurrent/Executor;Landroid/media/AudioManager$AudioServerStateCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // java.util.concurrent.Executor executor
        start local 2 // android.media.AudioManager$AudioServerStateCallback stateCallback
         0: .line 4975
            aload 2 /* stateCallback */
            ifnonnull 2
         1: .line 4976
            new java.lang.IllegalArgumentException
            dup
            ldc "Illegal null AudioServerStateCallback"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 4978
      StackMap locals:
      StackMap stack:
            aload 1 /* executor */
            ifnonnull 6
         3: .line 4979
            new java.lang.IllegalArgumentException
            dup
         4: .line 4980
            ldc "Illegal null Executor for the AudioServerStateCallback"
         5: .line 4979
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 4983
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioServerStateCbLock:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         7: .line 4984
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioServerStateCb:Landroid/media/AudioManager$AudioServerStateCallback;
            ifnull 11
         8: .line 4985
            new java.lang.IllegalStateException
            dup
         9: .line 4986
            ldc "setAudioServerStateCallback called with already registered callabck"
        10: .line 4985
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        11: .line 4988
      StackMap locals: java.lang.Object
      StackMap stack:
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 4 /* service */
        start local 4 // android.media.IAudioService service
        12: .line 4990
            aload 4 /* service */
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioServerStateDispatcher:Landroid/media/IAudioServerStateDispatcher;
            invokeinterface android.media.IAudioService.registerAudioServerStateDispatcher:(Landroid/media/IAudioServerStateDispatcher;)V
        13: .line 4991
            goto 16
      StackMap locals: android.media.AudioManager java.util.concurrent.Executor android.media.AudioManager$AudioServerStateCallback java.lang.Object android.media.IAudioService
      StackMap stack: android.os.RemoteException
        14: astore 5 /* e */
        start local 5 // android.os.RemoteException e
        15: .line 4992
            aload 5 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 5 // android.os.RemoteException e
        16: .line 4994
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* executor */
            putfield android.media.AudioManager.mAudioServerStateExec:Ljava/util/concurrent/Executor;
        17: .line 4995
            aload 0 /* this */
            aload 2 /* stateCallback */
            putfield android.media.AudioManager.mAudioServerStateCb:Landroid/media/AudioManager$AudioServerStateCallback;
        end local 4 // android.media.IAudioService service
        18: .line 4983
            aload 3
            monitorexit
        19: goto 22
      StackMap locals: android.media.AudioManager java.util.concurrent.Executor android.media.AudioManager$AudioServerStateCallback java.lang.Object
      StackMap stack: java.lang.Throwable
        20: aload 3
            monitorexit
        21: athrow
        22: .line 4997
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.AudioManager$AudioServerStateCallback stateCallback
        end local 1 // java.util.concurrent.Executor executor
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0           this  Landroid/media/AudioManager;
            0   23     1       executor  Ljava/util/concurrent/Executor;
            0   23     2  stateCallback  Landroid/media/AudioManager$AudioServerStateCallback;
           12   18     4        service  Landroid/media/IAudioService;
           15   16     5              e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          12    13      14  Class android.os.RemoteException
           7    19      20  any
          20    21      20  any
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()
    MethodParameters:
               Name  Flags
      executor       
      stateCallback  

  public void clearAudioServerStateCallback();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 5005
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioServerStateCbLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 5006
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioServerStateCb:Landroid/media/AudioManager$AudioServerStateCallback;
            ifnull 9
         2: .line 5007
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 2 /* service */
        start local 2 // android.media.IAudioService service
         3: .line 5009
            aload 2 /* service */
         4: .line 5010
            aload 0 /* this */
            getfield android.media.AudioManager.mAudioServerStateDispatcher:Landroid/media/IAudioServerStateDispatcher;
         5: .line 5009
            invokeinterface android.media.IAudioService.unregisterAudioServerStateDispatcher:(Landroid/media/IAudioServerStateDispatcher;)V
         6: .line 5011
            goto 9
      StackMap locals: android.media.AudioManager java.lang.Object android.media.IAudioService
      StackMap stack: android.os.RemoteException
         7: astore 3 /* e */
        start local 3 // android.os.RemoteException e
         8: .line 5012
            aload 3 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 3 // android.os.RemoteException e
        end local 2 // android.media.IAudioService service
         9: .line 5015
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.AudioManager.mAudioServerStateExec:Ljava/util/concurrent/Executor;
        10: .line 5016
            aload 0 /* this */
            aconst_null
            putfield android.media.AudioManager.mAudioServerStateCb:Landroid/media/AudioManager$AudioServerStateCallback;
        11: .line 5005
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 5018
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Landroid/media/AudioManager;
            3    9     2  service  Landroid/media/IAudioService;
            8    9     3        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     6       7  Class android.os.RemoteException
           1    12      13  any
          13    14      13  any
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public boolean isAudioServerRunning();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 5027
            invokestatic android.media.AudioManager.getService:()Landroid/media/IAudioService;
            astore 1 /* service */
        start local 1 // android.media.IAudioService service
         1: .line 5029
            aload 1 /* service */
            invokeinterface android.media.IAudioService.isAudioServerRunning:()Z
         2: ireturn
         3: .line 5030
      StackMap locals: android.media.AudioManager android.media.IAudioService
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         4: .line 5031
            aload 2 /* e */
            invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
            athrow
        end local 2 // android.os.RemoteException e
        end local 1 // android.media.IAudioService service
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/media/AudioManager;
            1    5     1  service  Landroid/media/IAudioService;
            4    5     2        e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           1     2       3  Class android.os.RemoteException
    RuntimeVisibleAnnotations: 
      android.annotation.SystemApi()

  public java.util.Map<java.lang.Integer, java.lang.Boolean> getSurroundFormats();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 5042
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* surroundFormats */
        start local 1 // java.util.Map surroundFormats
         1: .line 5043
            aload 1 /* surroundFormats */
            iconst_0
            invokestatic android.media.AudioSystem.getSurroundFormats:(Ljava/util/Map;Z)I
            istore 2 /* status */
        start local 2 // int status
         2: .line 5044
            iload 2 /* status */
            ifeq 5
         3: .line 5046
            ldc "AudioManager"
            new java.lang.StringBuilder
            dup
            ldc "getSurroundFormats failed:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 5047
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            areturn
         5: .line 5049
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 1 /* surroundFormats */
            areturn
        end local 2 // int status
        end local 1 // java.util.Map surroundFormats
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Landroid/media/AudioManager;
            1    6     1  surroundFormats  Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Boolean;>;
            2    6     2           status  I
    Signature: ()Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Boolean;>;

  public boolean setSurroundFormatEnabled(int, boolean);
    descriptor: (IZ)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // android.media.AudioManager this
        start local 1 // int audioFormat
        start local 2 // boolean enabled
         0: .line 5069
            iload 1 /* audioFormat */
            iload 2 /* enabled */
            invokestatic android.media.AudioSystem.setSurroundFormatEnabled:(IZ)I
            istore 3 /* status */
        start local 3 // int status
         1: .line 5070
            iload 3 /* status */
            ifne 2
            iconst_1
            ireturn
      StackMap locals: int
      StackMap stack:
         2: iconst_0
            ireturn
        end local 3 // int status
        end local 2 // boolean enabled
        end local 1 // int audioFormat
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0         this  Landroid/media/AudioManager;
            0    3     1  audioFormat  I
            0    3     2      enabled  Z
            1    3     3       status  I
    MethodParameters:
             Name  Flags
      audioFormat  
      enabled      

  public java.util.Map<java.lang.Integer, java.lang.Boolean> getReportedSurroundFormats();
    descriptor: ()Ljava/util/Map;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.media.AudioManager this
         0: .line 5084
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 1 /* reportedSurroundFormats */
        start local 1 // java.util.Map reportedSurroundFormats
         1: .line 5085
            aload 1 /* reportedSurroundFormats */
            iconst_1
            invokestatic android.media.AudioSystem.getSurroundFormats:(Ljava/util/Map;Z)I
            istore 2 /* status */
        start local 2 // int status
         2: .line 5086
            iload 2 /* status */
            ifeq 5
         3: .line 5088
            ldc "AudioManager"
            new java.lang.StringBuilder
            dup
            ldc "getReportedSurroundFormats failed:"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* status */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 5089
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            areturn
         5: .line 5091
      StackMap locals: java.util.Map int
      StackMap stack:
            aload 1 /* reportedSurroundFormats */
            areturn
        end local 2 // int status
        end local 1 // java.util.Map reportedSurroundFormats
        end local 0 // android.media.AudioManager this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0    6     0                     this  Landroid/media/AudioManager;
            1    6     1  reportedSurroundFormats  Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Boolean;>;
            2    6     2                   status  I
    Signature: ()Ljava/util/Map<Ljava/lang/Integer;Ljava/lang/Boolean;>;
}
SourceFile: "AudioManager.java"
NestMembers:
  android.media.AudioManager$1  android.media.AudioManager$2  android.media.AudioManager$3  android.media.AudioManager$4  android.media.AudioManager$AudioPlaybackCallback  android.media.AudioManager$AudioPlaybackCallbackInfo  android.media.AudioManager$AudioRecordingCallback  android.media.AudioManager$AudioRecordingCallbackInfo  android.media.AudioManager$AudioServerStateCallback  android.media.AudioManager$BlockingFocusResultReceiver  android.media.AudioManager$FocusRequestInfo  android.media.AudioManager$FocusRequestResult  android.media.AudioManager$NativeEventHandlerDelegate  android.media.AudioManager$NativeEventHandlerDelegate$1  android.media.AudioManager$OnAmPortUpdateListener  android.media.AudioManager$OnAudioFocusChangeListener  android.media.AudioManager$OnAudioPortUpdateListener  android.media.AudioManager$PlaybackConfigChangeCallbackData  android.media.AudioManager$PublicStreamTypes  android.media.AudioManager$RecordConfigChangeCallbackData  android.media.AudioManager$SafeWaitObject  android.media.AudioManager$ServiceEventHandlerDelegate  android.media.AudioManager$ServiceEventHandlerDelegate$1  android.media.AudioManager$VolumeAdjustment
InnerClasses:
  public Builder = android.media.AudioAttributes$Builder of android.media.AudioAttributes
  android.media.AudioManager$1
  android.media.AudioManager$2
  android.media.AudioManager$3
  android.media.AudioManager$4
  public abstract AudioPlaybackCallback = android.media.AudioManager$AudioPlaybackCallback of android.media.AudioManager
  private AudioPlaybackCallbackInfo = android.media.AudioManager$AudioPlaybackCallbackInfo of android.media.AudioManager
  public abstract AudioRecordingCallback = android.media.AudioManager$AudioRecordingCallback of android.media.AudioManager
  private AudioRecordingCallbackInfo = android.media.AudioManager$AudioRecordingCallbackInfo of android.media.AudioManager
  public abstract AudioServerStateCallback = android.media.AudioManager$AudioServerStateCallback of android.media.AudioManager
  private final BlockingFocusResultReceiver = android.media.AudioManager$BlockingFocusResultReceiver of android.media.AudioManager
  private FocusRequestInfo = android.media.AudioManager$FocusRequestInfo of android.media.AudioManager
  public abstract FocusRequestResult = android.media.AudioManager$FocusRequestResult of android.media.AudioManager
  private NativeEventHandlerDelegate = android.media.AudioManager$NativeEventHandlerDelegate of android.media.AudioManager
  private OnAmPortUpdateListener = android.media.AudioManager$OnAmPortUpdateListener of android.media.AudioManager
  public abstract OnAudioFocusChangeListener = android.media.AudioManager$OnAudioFocusChangeListener of android.media.AudioManager
  public abstract OnAudioPortUpdateListener = android.media.AudioManager$OnAudioPortUpdateListener of android.media.AudioManager
  private final PlaybackConfigChangeCallbackData = android.media.AudioManager$PlaybackConfigChangeCallbackData of android.media.AudioManager
  public abstract PublicStreamTypes = android.media.AudioManager$PublicStreamTypes of android.media.AudioManager
  private final RecordConfigChangeCallbackData = android.media.AudioManager$RecordConfigChangeCallbackData of android.media.AudioManager
  private final SafeWaitObject = android.media.AudioManager$SafeWaitObject of android.media.AudioManager
  private ServiceEventHandlerDelegate = android.media.AudioManager$ServiceEventHandlerDelegate of android.media.AudioManager
  public abstract VolumeAdjustment = android.media.AudioManager$VolumeAdjustment of android.media.AudioManager
  public abstract Stub = android.media.IAudioService$Stub of android.media.IAudioService
  public final Coordinate3F = android.media.MicrophoneInfo$Coordinate3F of android.media.MicrophoneInfo
  public final System = android.provider.Settings$System of android.provider.Settings