Home | History | Annotate | Download | only in shadows
      1 package com.xtremelabs.robolectric.shadows;
      2 
      3 import android.media.AudioManager;
      4 import com.xtremelabs.robolectric.internal.Implementation;
      5 import com.xtremelabs.robolectric.internal.Implements;
      6 
      7 @SuppressWarnings({"UnusedDeclaration"})
      8 @Implements(AudioManager.class)
      9 public 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