Skip to content

Instantly share code, notes, and snippets.

View rubenquadros's full-sized avatar

Ruben Quadros rubenquadros

View GitHub Profile
@rubenquadros
rubenquadros / CustomPath.kt
Created August 25, 2021 19:17
Custom path for the shape
fun drawArcPath(size: Size): Path {
return Path().apply {
reset()
// go from (0,0) to (width, 0)
lineTo(size.width, 0f)
// go from (width, 0) to (width, height)
lineTo(size.width, size.height)
@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 / 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 / VideoItem.kt
Last active September 4, 2021 17:57
Video item in playlist
@Composable
fun VideoItem(index: Int, video: VideoResultEntity) {
val currentlyPlaying = remember { mutableStateOf(true) }
ConstraintLayout(
modifier =
Modifier.testTag("VideoParent")
.padding(8.dp)
.wrapContentSize()
) {