Class ShadowToneGenerator

java.lang.Object
org.robolectric.shadows.ShadowToneGenerator

@Implements(android.media.ToneGenerator.class)
public class ShadowToneGenerator
extends Object
Shadow of ToneGenerator.

Records all tones that were passed to the class.

This class uses _static_ state to store the tones that were passed to it. This is because users of the original class are expected to instantiate new instances of ToneGenerator on demand and clean up the instance after use. This makes it messy to grab the correct instance of ToneGenerator to properly shadow.

Additionally, there is a maximum number of tones that this class can support. Tones are stored in a first-in-first-out basis.

  • Constructor Details

  • Method Details

    • startTone

      @Implementation protected boolean startTone​(int toneType, int durationMs)
      This method will intercept calls to startTone and record the played tone into a static list.

      Note in the original ToneGenerator, this function will start a tone. Subsequent calls to this function will cancel the currently playing tone and play a new tone instead. Since no tone is actually played and no process is started, this tone cannot be interrupted.

    • getPlayedTones

      public static com.google.common.collect.ImmutableList<ShadowToneGenerator.Tone> getPlayedTones()
      This function returns the list of tones that the application requested to be played. Note that this will return all tones requested by all ToneGenerators.
      Returns:
      A defensive copy of the list of tones played by all tone generators.
    • reset

      @Resetter public static void reset()