Skip to content

Instantly share code, notes, and snippets.

View rubenquadros's full-sized avatar

Ruben Quadros rubenquadros

  • Bangalore
View GitHub Profile
@rubenquadros
rubenquadros / GameImage.kt
Created August 25, 2021 19:26
Game Image
@Composable
fun GameImage(
image: String,
modifier: Modifier = Modifier
) {
Image(
modifier =
modifier
.fillMaxWidth()
.height(300.dp)
@rubenquadros
rubenquadros / GameDetailsInitial.kt
Last active August 28, 2021 13:58
Initial game details screen
@Composable
fun GameDetails(
gameDetails: GameDetailsEntity,
openGameTrailer: () -> Unit
) {
Column(modifier = Modifier.fillMaxSize()) {
// Game image
GameImage(image = gameDetails.backgroundImage)
// Play button
@rubenquadros
rubenquadros / GameDescription.kt
Last active August 28, 2021 14:47
Game description and show more/less toggle
@Composable
fun GameDescription(description: String) {
val maxLines = remember { mutableStateOf(4) }
val toggle = remember {
mutableStateOf(DescriptionStatus.DEFAULT)
}
Column {
// Desctiption text
@rubenquadros
rubenquadros / GameDetailsTest.kt
Created August 28, 2021 15:35
Game details test
class GameDetailsTest {
@get:Rule val composeTestRule = createComposeRule()
@Test
fun game_details_should_be_shown() {
composeTestRule.setContent {
EpicWorldTheme {
GameDetails(
gameDetails =
@rubenquadros
rubenquadros / GameVideosInitial.kt
Created September 4, 2021 07:39
Initial game videos screen
@Composable
fun ShowGameVideos(gameVideos: GameVideosEntity) {
Column(modifier = Modifier.fillMaxSize()) {
// video player
VideoPlayer(
modifier =
Modifier.fillMaxWidth()
.weight(1f, fill = true)
.background(Color.Black)
)
@rubenquadros
rubenquadros / VideoPlayerInitial.kt
Created September 4, 2021 11:08
Initial video player
@Composable
fun VideoPlayer(modifier: Modifier = Modifier) {
val context = LocalContext.current
// create our player
val exoPlayer = remember {
SimpleExoPlayer.Builder(context).build().apply {
this.prepare()
}
}
@rubenquadros
rubenquadros / VideoPlayerPlaylist.kt
Created September 4, 2021 11:24
Playing videos in the video player
@Composable
fun VideoPlayer(
modifier: Modifier = Modifier,
gameVideos: List<VideoResultEntity>
) {
val context = LocalContext.current
val mediaItems = arrayListOf<MediaItem>()
// create MediaItem
gameVideos.forEach {
@rubenquadros
rubenquadros / VideoPlayerTitle.kt
Created September 4, 2021 12:50
Video title of current playing video
@ExperimentalAnimationApi
@Composable
fun VideoPlayer(
modifier: Modifier = Modifier,
gameVideos: List<VideoResultEntity>
) {
val context = LocalContext.current
val mediaItems = arrayListOf<MediaItem>()
val videoTitle = remember {
@rubenquadros
rubenquadros / VideoPlayList.kt
Created September 4, 2021 14:37
Show all videos in a playlist
@Composable
fun VideoPlayList(
modifier: Modifier = Modifier,
gameVideos: List<VideoResultEntity>
) {
LazyColumn(modifier = modifier) {
itemsIndexed(
items = gameVideos,
key = { _, item -> item.id }
) { index, item ->
@rubenquadros
rubenquadros / ShowGameVideos.kt
Created September 4, 2021 16:19
Showing game video and playlist
@ExperimentalAnimationApi
@Composable
fun ShowGameVideos(gameVideos: GameVideosEntity) {
val playingIndex = remember { mutableStateOf(0) }
// keep track of current playing video
fun onVideoChange(index: Int) {
playingIndex.value = index
}