Skip to content

Commit

Permalink
added navigation destinations
Browse files Browse the repository at this point in the history
  • Loading branch information
pramodbharti committed Oct 13, 2023
1 parent 91adc56 commit 322b22f
Show file tree
Hide file tree
Showing 10 changed files with 143 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.pramodbharti.filmo.ui.components

import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.KeyboardArrowLeft
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun FilmoAppBar(modifier: Modifier = Modifier) {
TopAppBar(title = {
Text(text = "Filmo")
}, navigationIcon = {
IconButton(onClick = {}) {
Icon(
Icons.Filled.KeyboardArrowLeft,
contentDescription = null
)
}
})
}

@Preview
@Composable
fun FilmoAppBarPreview() {
FilmoAppBar()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.pramodbharti.filmo.ui.navigation

import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.KeyboardArrowLeft
import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.vector.ImageVector
import com.pramodbharti.filmo.ui.screens.details.DetailsScreen
import com.pramodbharti.filmo.ui.screens.favs.FavItemsScreen
import com.pramodbharti.filmo.ui.screens.movies.MoviesScreen
import com.pramodbharti.filmo.ui.screens.seeall.SeeAllScreen
import com.pramodbharti.filmo.ui.screens.tvshows.TvShowsScreen

interface FilmoDestination {
val icon: ImageVector?
val route: String
val screen: @Composable () -> Unit
}

object Movies : FilmoDestination {
override val icon = null
override val route = "movies"
override val screen: @Composable () -> Unit = { MoviesScreen() }
}

object TvShows : FilmoDestination {
override val icon = null
override val route = "tv_shows"
override val screen: @Composable () -> Unit = { TvShowsScreen() }
}

object Favs : FilmoDestination {
override val icon = null
override val route = "favs"
override val screen: @Composable () -> Unit = { FavItemsScreen() }
}


object Details : FilmoDestination {
override val icon = Icons.Filled.KeyboardArrowLeft
override val route = "details"
override val screen: @Composable () -> Unit = { DetailsScreen() }
}

object SeeAll : FilmoDestination {
override val icon = Icons.Filled.KeyboardArrowLeft
override val route = "see_all"
override val screen: @Composable () -> Unit = { SeeAllScreen() }
}
33 changes: 26 additions & 7 deletions app/src/main/java/com/pramodbharti/filmo/ui/screens/FilmoApp.kt
Original file line number Diff line number Diff line change
@@ -1,24 +1,43 @@
import android.content.res.Configuration.UI_MODE_NIGHT_NO
import android.content.res.Configuration.UI_MODE_NIGHT_YES
import android.util.Log
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.pramodbharti.filmo.dummydata.dummyMovies
import com.pramodbharti.filmo.ui.navigation.Movies
import com.pramodbharti.filmo.ui.screens.movies.MoviesScreen

private const val TAG = "FilmoApp"

@Composable
fun FilmoApp(modifier: Modifier = Modifier) {
MoviesScreen(dummyMovies, onSeeAllClick = {
Log.e(TAG, "FilmoApp: $it")
},
onMediaItemClick = {
Log.e(TAG, "FilmoApp: ${it.toString()}")
})
fun FilmoApp(
) {
var currentScreen by remember { mutableStateOf(Movies) }

Scaffold(
topBar = {

},
bottomBar = {

}
) { paddingValues ->
Box(Modifier.padding(paddingValues)) {
currentScreen.screen()
}

}

}

@Preview(name = "DarkMode", uiMode = UI_MODE_NIGHT_YES, showSystemUi = true)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ import com.pramodbharti.filmo.ui.models.MediaItem
import com.pramodbharti.filmo.ui.theme.FilmoTheme

@Composable
fun ItemDetailsScreen(movieItem: MediaItem, modifier: Modifier = Modifier) {
fun DetailsScreen(movieItem: MediaItem? = null, modifier: Modifier = Modifier) {
Column(modifier = Modifier.verticalScroll(rememberScrollState())) {
ItemDetails(movieItem = movieItem)
ItemDetails(movieItem = movieItem!!)
CastSlots(title = "Cast") {
CastItemsRow(casts = dummyCastData)
}
Expand All @@ -60,7 +60,7 @@ fun ItemDetailsScreen(movieItem: MediaItem, modifier: Modifier = Modifier) {
@Composable
fun ItemDetailsScreen() {
FilmoTheme {
ItemDetailsScreen(movieItem = dummyMovies[1])
DetailsScreen(movieItem = dummyMovies[1])
}
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.pramodbharti.filmo.ui.screens.favs

import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier

@Composable
fun FavItemsScreen(modifier: Modifier = Modifier) {

}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ import com.pramodbharti.filmo.ui.theme.FilmoTheme
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun MoviesScreen(
movies: List<MediaItem>,
onSeeAllClick: (String) -> Unit,
onMediaItemClick: (MediaItem) -> Unit,
movies: List<MediaItem> = emptyList(),
onSeeAllClick: (String) -> Unit = {},
onMediaItemClick: (MediaItem) -> Unit = {},
modifier: Modifier = Modifier
) {
Column(modifier.verticalScroll(rememberScrollState())) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.pramodbharti.filmo.ui.screens.movies

import com.pramodbharti.filmo.ui.models.MediaItem
import com.pramodbharti.filmo.ui.models.Movies

sealed interface MoviesUiState {
data class Success(val movies: List<MediaItem>): MoviesUiState
object Error : MoviesUiState
object Loading : MoviesUiState
data class Success(val movies: Movies): MoviesUiState
data class Error(val msg:String) : MoviesUiState
data object Loading : MoviesUiState
}
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
package com.pramodbharti.filmo.ui.screens.seeall

import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier

@Composable
fun SeeAllScreen(modifier: Modifier = Modifier) {

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.pramodbharti.filmo.ui.screens.tvshows

import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier

@Composable
fun TvShowsScreen(modifier: Modifier = Modifier) {

}

0 comments on commit 322b22f

Please sign in to comment.