Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions RELEASENOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
* Test Utilities:
* Remove deprecated symbols:
* Demo app:
* Allow setting repeat mode with `Intent` arguments from command line
([#1266](https://github.com/androidx/media/pull/1266)).

## 1.4

Expand Down
17 changes: 17 additions & 0 deletions demos/main/src/main/java/androidx/media3/demo/main/IntentUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import androidx.media3.common.MediaItem.ClippingConfiguration;
import androidx.media3.common.MediaItem.SubtitleConfiguration;
import androidx.media3.common.MediaMetadata;
import androidx.media3.common.Player;
import androidx.media3.common.util.Util;
import com.google.common.collect.ImmutableList;
import java.util.ArrayList;
Expand All @@ -44,6 +45,7 @@ public class IntentUtil {
public static final String ACTION_VIEW_LIST = "androidx.media3.demo.main.action.VIEW_LIST";

// Activity extras.
public static final String AV_ANALYSIS_MODE_EXTRA = "av_analysis_mode"; // copybara:strip
public static final String PREFER_EXTENSION_DECODERS_EXTRA = "prefer_extension_decoders";

// Media item configuration extras.
Expand All @@ -66,6 +68,21 @@ public class IntentUtil {
public static final String SUBTITLE_URI_EXTRA = "subtitle_uri";
public static final String SUBTITLE_MIME_TYPE_EXTRA = "subtitle_mime_type";
public static final String SUBTITLE_LANGUAGE_EXTRA = "subtitle_language";
public static final String REPEAT_MODE_EXTRA = "repeat_mode";

public static @Player.RepeatMode int parseRepeatModeExtra(String repeatMode) {
switch (repeatMode) {
case "OFF":
return Player.REPEAT_MODE_OFF;
case "ONE":
return Player.REPEAT_MODE_ONE;
case "ALL":
return Player.REPEAT_MODE_ALL;
default:
throw new IllegalArgumentException(
"Argument " + repeatMode + " does not match any of the repeat modes: OFF|ONE|ALL");
}
}

/** Creates a list of {@link MediaItem media items} from an {@link Intent}. */
public static List<MediaItem> createMediaItemsFromIntent(Intent intent) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -262,8 +262,8 @@ protected void setContentView() {
* @return Whether initialization was successful.
*/
protected boolean initializePlayer() {
Intent intent = getIntent();
if (player == null) {
Intent intent = getIntent();

mediaItems = createMediaItems(intent);
if (mediaItems.isEmpty()) {
Expand Down Expand Up @@ -293,6 +293,10 @@ protected boolean initializePlayer() {
}
player.setMediaItems(mediaItems, /* resetPosition= */ !haveStartPosition);
player.prepare();
String repeatModeExtra = intent.getStringExtra(IntentUtil.REPEAT_MODE_EXTRA);
if (repeatModeExtra != null) {
player.setRepeatMode(IntentUtil.parseRepeatModeExtra(repeatModeExtra));
}
updateButtonVisibility();
return true;
}
Expand Down