Skip to content

Commit

Permalink
Add artworkUri to MediaItem
Browse files Browse the repository at this point in the history
  • Loading branch information
luizgrp committed May 20, 2022
1 parent 8342573 commit 6615f95
Show file tree
Hide file tree
Showing 12 changed files with 39 additions and 14 deletions.
7 changes: 5 additions & 2 deletions media-ui/api/current.api
Original file line number Diff line number Diff line change
Expand Up @@ -214,15 +214,18 @@ package com.google.android.horologist.media.ui.state.mapper {
package com.google.android.horologist.media.ui.state.model {

@com.google.android.horologist.media.ui.ExperimentalHorologistMediaUiApi public final class MediaItemUiModel {
ctor public MediaItemUiModel(String id, optional String? title, optional String? artist);
ctor public MediaItemUiModel(String id, optional String? title, optional String? artist, optional String? artworkUri);
method public String component1();
method public String? component2();
method public String? component3();
method public com.google.android.horologist.media.ui.state.model.MediaItemUiModel copy(String id, String? title, String? artist);
method public String? component4();
method public com.google.android.horologist.media.ui.state.model.MediaItemUiModel copy(String id, String? title, String? artist, String? artworkUri);
method public String? getArtist();
method public String? getArtworkUri();
method public String getId();
method public String? getTitle();
property public final String? artist;
property public final String? artworkUri;
property public final String id;
property public final String? title;
}
Expand Down
1 change: 1 addition & 0 deletions media-ui/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ android {
kotlinOptions {
jvmTarget = '1.8'
freeCompilerArgs += "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi"
freeCompilerArgs += "-opt-in=com.google.android.horologist.media.ExperimentalHorologistMediaApi"
}

composeOptions {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ package com.google.android.horologist.media.ui.state

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.android.horologist.media.ExperimentalHorologistMediaApi
import com.google.android.horologist.media.repository.PlayerRepository
import com.google.android.horologist.media.ui.ExperimentalHorologistMediaUiApi
import com.google.android.horologist.media.ui.state.mapper.PlayerUiStateMapper
Expand All @@ -29,7 +28,6 @@ import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.stateIn

@OptIn(ExperimentalHorologistMediaApi::class)
@ExperimentalHorologistMediaUiApi
public open class PlayerViewModel(
private val playerRepository: PlayerRepository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ public object MediaItemUiModelMapper {
public fun map(mediaItem: MediaItem): MediaItemUiModel = MediaItemUiModel(
id = mediaItem.id,
title = mediaItem.title,
artist = mediaItem.artist
artist = mediaItem.artist,
artworkUri = mediaItem.artworkUri
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,6 @@ import com.google.android.horologist.media.ui.ExperimentalHorologistMediaUiApi
public data class MediaItemUiModel(
val id: String,
val title: String? = null,
val artist: String? = null
val artist: String? = null,
val artworkUri: String? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,13 @@ class MediaItemUiModelMapperTest {
val id = "id"
val title = "title"
val artist = "artist"
val artworkUri = "artworkUri"
val mediaItem = MediaItem(
id = id,
uri = "http://www.example.com",
title = title,
artist = artist
artist = artist,
artworkUri = artworkUri
)

// when
Expand All @@ -45,5 +47,6 @@ class MediaItemUiModelMapperTest {
assertThat(result.id).isEqualTo(id)
assertThat(result.title).isEqualTo(title)
assertThat(result.artist).isEqualTo(artist)
assertThat(result.artworkUri).isEqualTo(artworkUri)
}
}
15 changes: 9 additions & 6 deletions media/api/current.api
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ package com.google.android.horologist.media {

package com.google.android.horologist.media.model {

public enum Command {
@com.google.android.horologist.media.ExperimentalHorologistMediaApi public enum Command {
enum_constant public static final com.google.android.horologist.media.model.Command PlayPause;
enum_constant public static final com.google.android.horologist.media.model.Command SeekBack;
enum_constant public static final com.google.android.horologist.media.model.Command SeekForward;
Expand All @@ -17,27 +17,30 @@ package com.google.android.horologist.media.model {
enum_constant public static final com.google.android.horologist.media.model.Command SkipToPreviousMediaItem;
}

public final class MediaItem {
ctor public MediaItem(String id, String uri, optional String? title, String artist);
@com.google.android.horologist.media.ExperimentalHorologistMediaApi public final class MediaItem {
ctor public MediaItem(String id, String uri, optional String? title, String artist, optional String? artworkUri);
method public String component1();
method public String component2();
method public String? component3();
method public String component4();
method public com.google.android.horologist.media.model.MediaItem copy(String id, String uri, String? title, String artist);
method public String? component5();
method public com.google.android.horologist.media.model.MediaItem copy(String id, String uri, String? title, String artist, String? artworkUri);
method public boolean equals(Object? other);
method public String getArtist();
method public String? getArtworkUri();
method public String getId();
method public String? getTitle();
method public String getUri();
method public int hashCode();
method public String toString();
property public final String artist;
property public final String? artworkUri;
property public final String id;
property public final String? title;
property public final String uri;
}

public abstract sealed class MediaItemPosition {
@com.google.android.horologist.media.ExperimentalHorologistMediaApi public abstract sealed class MediaItemPosition {
method public long getCurrent();
property public long current;
field public static final com.google.android.horologist.media.model.MediaItemPosition.Companion Companion;
Expand Down Expand Up @@ -65,7 +68,7 @@ package com.google.android.horologist.media.model {
property public long current;
}

public enum PlayerState {
@com.google.android.horologist.media.ExperimentalHorologistMediaApi public enum PlayerState {
enum_constant public static final com.google.android.horologist.media.model.PlayerState Ended;
enum_constant public static final com.google.android.horologist.media.model.PlayerState Idle;
enum_constant public static final com.google.android.horologist.media.model.PlayerState Loading;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@

package com.google.android.horologist.media.model

import com.google.android.horologist.media.ExperimentalHorologistMediaApi

/**
* Commands that can be executed on a player.
*/
@ExperimentalHorologistMediaApi
public enum class Command {
PlayPause,
SeekBack,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,16 @@

package com.google.android.horologist.media.model

import com.google.android.horologist.media.ExperimentalHorologistMediaApi

/**
* Representation of a media item.
*/
@ExperimentalHorologistMediaApi
public data class MediaItem(
val id: String,
val uri: String,
val title: String? = null,
val artist: String
val artist: String,
val artworkUri: String? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@

package com.google.android.horologist.media.model

import com.google.android.horologist.media.ExperimentalHorologistMediaApi
import kotlin.time.Duration

/**
* Represents the current [media item][MediaItem] position, duration and percent progress.
* Current position and duration are measured in milliseconds.
*/
@ExperimentalHorologistMediaApi
public sealed class MediaItemPosition(
public open val current: Duration,
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,12 @@

package com.google.android.horologist.media.model

import com.google.android.horologist.media.ExperimentalHorologistMediaApi

/**
* Represents the state of the player.
*/
@ExperimentalHorologistMediaApi
public enum class PlayerState {

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,11 @@
* limitations under the License.
*/

@file:OptIn(ExperimentalHorologistMediaApi::class)

package com.google.android.horologist.media.model

import com.google.android.horologist.media.ExperimentalHorologistMediaApi
import com.google.common.truth.Truth.assertThat
import org.junit.Assert.assertThrows
import org.junit.Test
Expand Down

0 comments on commit 6615f95

Please sign in to comment.