Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add artworkUri to MediaItem #188

Merged
merged 1 commit into from
May 20, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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