Search in sources :

Example 16 with Clip

use of org.odk.collect.audioclips.Clip in project collect by opendatakit.

the class AudioButtonIntegrationTest method whenTwoButtonsUseTheSameFileButDifferentClipIDs_andOneisPlayed_theyDontBothPlay.

@Test
public void whenTwoButtonsUseTheSameFileButDifferentClipIDs_andOneisPlayed_theyDontBothPlay() throws Exception {
    String testFile1 = File.createTempFile("audio1", ".mp3").getAbsolutePath();
    setupMediaPlayerDataSource(testFile1);
    AudioButton button1 = new AudioButton(activity);
    audioHelper.setAudio(button1, new Clip("clip1", testFile1));
    AudioButton button2 = new AudioButton(activity);
    audioHelper.setAudio(button2, new Clip("clip2", testFile1));
    button2.performClick();
    assertThat(button1.isPlaying(), equalTo(false));
    assertThat(button2.isPlaying(), equalTo(true));
}
Also used : Clip(org.odk.collect.audioclips.Clip) Test(org.junit.Test)

Example 17 with Clip

use of org.odk.collect.audioclips.Clip in project collect by opendatakit.

the class AudioButtonIntegrationTest method pausingActivity_releaseMediaPlayer.

@Test
public void pausingActivity_releaseMediaPlayer() throws Exception {
    String testFile1 = File.createTempFile("audio1", ".mp3").getAbsolutePath();
    setupMediaPlayerDataSource(testFile1);
    AudioButton button = new AudioButton(activity);
    audioHelper.setAudio(button, new Clip("clip1", testFile1));
    activityController.pause();
    assertThat(shadowOf(mediaPlayer).getState(), equalTo(ShadowMediaPlayer.State.END));
}
Also used : Clip(org.odk.collect.audioclips.Clip) Test(org.junit.Test)

Example 18 with Clip

use of org.odk.collect.audioclips.Clip in project collect by opendatakit.

the class PromptAutoplayerTest method whenPromptHasAutoplayAudio_butNoAudioURI_andIsSelectOne_playsAllSelectAudioInOrder.

@Test
public void whenPromptHasAutoplayAudio_butNoAudioURI_andIsSelectOne_playsAllSelectAudioInOrder() {
    FormEntryPrompt prompt = new MockFormEntryPromptBuilder().withControlType(Constants.CONTROL_SELECT_ONE).withAdditionalAttribute("autoplay", "audio").withSelectChoices(asList(new SelectChoice("1", "1"), new SelectChoice("2", "2"))).withSpecialFormSelectChoiceText(asList(new Pair<>(FormEntryCaption.TEXT_FORM_AUDIO, REFERENCES.get(0).first), new Pair<>(FormEntryCaption.TEXT_FORM_AUDIO, REFERENCES.get(1).first))).build();
    assertThat(autoplayer.autoplayIfNeeded(prompt), equalTo(true));
    verify(audioHelper).playInOrder(asList(new Clip(prompt.getIndex().toString() + " 0", REFERENCES.get(0).second), new Clip(prompt.getIndex().toString() + " 1", REFERENCES.get(1).second)));
}
Also used : Clip(org.odk.collect.audioclips.Clip) FormEntryPrompt(org.javarosa.form.api.FormEntryPrompt) SelectChoice(org.javarosa.core.model.SelectChoice) MockFormEntryPromptBuilder(org.odk.collect.android.support.MockFormEntryPromptBuilder) Test(org.junit.Test)

Example 19 with Clip

use of org.odk.collect.audioclips.Clip in project collect by opendatakit.

the class PromptAutoplayerTest method whenPromptHasAutoplayAudio_andIsSelectMultiple_playsAllAudioInOrder.

@Test
public void whenPromptHasAutoplayAudio_andIsSelectMultiple_playsAllAudioInOrder() {
    FormEntryPrompt prompt = new MockFormEntryPromptBuilder().withControlType(Constants.CONTROL_SELECT_MULTI).withAudioURI(REFERENCES.get(0).first).withAdditionalAttribute("autoplay", "audio").withSelectChoices(asList(new SelectChoice("1", "1"), new SelectChoice("2", "2"))).withSpecialFormSelectChoiceText(asList(new Pair<>(FormEntryCaption.TEXT_FORM_AUDIO, REFERENCES.get(1).first), new Pair<>(FormEntryCaption.TEXT_FORM_AUDIO, REFERENCES.get(2).first))).build();
    assertThat(autoplayer.autoplayIfNeeded(prompt), equalTo(true));
    verify(audioHelper).playInOrder(asList(new Clip(prompt.getIndex().toString(), REFERENCES.get(0).second), new Clip(prompt.getIndex().toString() + " 0", REFERENCES.get(1).second), new Clip(prompt.getIndex().toString() + " 1", REFERENCES.get(2).second)));
}
Also used : Clip(org.odk.collect.audioclips.Clip) FormEntryPrompt(org.javarosa.form.api.FormEntryPrompt) SelectChoice(org.javarosa.core.model.SelectChoice) MockFormEntryPromptBuilder(org.odk.collect.android.support.MockFormEntryPromptBuilder) Test(org.junit.Test)

Example 20 with Clip

use of org.odk.collect.audioclips.Clip in project collect by opendatakit.

the class PromptAutoplayerTest method whenPromptHasAutoplayAudio_withDifferentCapitalization_playsAudio.

@Test
public void whenPromptHasAutoplayAudio_withDifferentCapitalization_playsAudio() {
    FormEntryPrompt prompt = new MockFormEntryPromptBuilder().withAudioURI(REFERENCES.get(0).first).withAdditionalAttribute("autoplay", "aUdio").build();
    assertThat(autoplayer.autoplayIfNeeded(prompt), equalTo(true));
    verify(audioHelper).playInOrder(asList(new Clip(prompt.getIndex().toString(), REFERENCES.get(0).second)));
}
Also used : Clip(org.odk.collect.audioclips.Clip) FormEntryPrompt(org.javarosa.form.api.FormEntryPrompt) MockFormEntryPromptBuilder(org.odk.collect.android.support.MockFormEntryPromptBuilder) Test(org.junit.Test)

Aggregations

Clip (org.odk.collect.audioclips.Clip)27 Test (org.junit.Test)21 FormEntryPrompt (org.javarosa.form.api.FormEntryPrompt)15 MockFormEntryPromptBuilder (org.odk.collect.android.support.MockFormEntryPromptBuilder)12 SelectChoice (org.javarosa.core.model.SelectChoice)10 File (java.io.File)5 AudioControllerView (org.odk.collect.android.audio.AudioControllerView)5 AudioButton (org.odk.collect.android.audio.AudioButton)3 QuestionDetails (org.odk.collect.android.formentry.questions.QuestionDetails)3 SuppressLint (android.annotation.SuppressLint)2 Context (android.content.Context)2 MediaMetadataRetriever (android.media.MediaMetadataRetriever)2 TypedValue (android.util.TypedValue)2 View (android.view.View)2 Pair (androidx.core.util.Pair)2 MaterialAlertDialogBuilder (com.google.android.material.dialog.MaterialAlertDialogBuilder)2 ArrayList (java.util.ArrayList)2 IAnswerData (org.javarosa.core.model.data.IAnswerData)2 StringData (org.javarosa.core.model.data.StringData)2 R (org.odk.collect.android.R)2