ShadowAudioManager.java revision 99fafb79bf98b7aa1946bbda1f0a225cefa2d35d
1package com.xtremelabs.robolectric.shadows;
2
3import android.media.AudioManager;
4import com.xtremelabs.robolectric.internal.Implementation;
5import com.xtremelabs.robolectric.internal.Implements;
6
7@SuppressWarnings({"UnusedDeclaration"})
8@Implements(AudioManager.class)
9public class ShadowAudioManager {
10
11    private int streamMaxVolume = 15;
12    private int streamVolume = 7;
13    private int flags;
14    private AudioFocusRequest lastAudioFocusRequest;
15    private int nextResponseValue = AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
16    private AudioManager.OnAudioFocusChangeListener lastAbandonedAudioFocusListener;
17
18    @Implementation
19    public int getStreamMaxVolume(int streamType) {
20        return streamMaxVolume;
21    }
22
23    @Implementation
24    public int getStreamVolume(int streamType) {
25        return streamVolume;
26    }
27
28    @Implementation
29    public void setStreamVolume(int streamType, int index, int flags) {
30        this.streamVolume = index;
31        this.flags = flags;
32    }
33
34    @Implementation
35    public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener l, int streamType, int durationHint) {
36        lastAudioFocusRequest = new AudioFocusRequest(l, streamType, durationHint);
37        return nextResponseValue;
38    }
39
40    @Implementation
41    public int abandonAudioFocus(AudioManager.OnAudioFocusChangeListener l) {
42        lastAbandonedAudioFocusListener = l;
43        return nextResponseValue;
44    }
45
46    public int getStreamMaxVolume() {
47        return streamMaxVolume;
48    }
49
50    public void setStreamMaxVolume(int streamMaxVolume) {
51        this.streamMaxVolume = streamMaxVolume;
52    }
53
54    public int getStreamVolume() {
55        return streamVolume;
56    }
57
58    public void setStreamVolume(int streamVolume) {
59        this.streamVolume = streamVolume;
60    }
61
62    public int getFlags() {
63        return flags;
64    }
65
66    public void setFlags(int flags) {
67        this.flags = flags;
68    }
69
70    public AudioFocusRequest getLastAudioFocusRequest() {
71        return lastAudioFocusRequest;
72    }
73
74    public void setNextFocusRequestResponse(int nextResponseValue) {
75        this.nextResponseValue = nextResponseValue;
76    }
77
78    public AudioManager.OnAudioFocusChangeListener getLastAbandonedAudioFocusListener() {
79        return lastAbandonedAudioFocusListener;
80    }
81
82    public static class AudioFocusRequest {
83        public final AudioManager.OnAudioFocusChangeListener listener;
84        public final int streamType;
85        public final int durationHint;
86
87        private AudioFocusRequest(AudioManager.OnAudioFocusChangeListener listener, int streamType, int durationHint) {
88            this.listener = listener;
89            this.streamType = streamType;
90            this.durationHint = durationHint;
91        }
92    }
93}
94