From 2174cf6c73a4e32007c3987547a0540637fb2d66 Mon Sep 17 00:00:00 2001 From: mendejumrukovski Date: Wed, 22 Mar 2023 00:32:46 +0100 Subject: [PATCH] create random quote screen --- .../quotescompose/navigation/AppNavigation.kt | 4 ++++ .../quotescompose/navigation/Screen.kt | 1 + .../ui/screen/main/MainActivity.kt | 3 ++- .../ui/screen/random/RandomQuoteScreen.kt | 23 +++++++++++++++++++ .../ui/screen/random/RandomQuoteViewModel.kt | 10 ++++++++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteScreen.kt create mode 100644 app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteViewModel.kt diff --git a/app/src/main/java/com/jumrukovski/quotescompose/navigation/AppNavigation.kt b/app/src/main/java/com/jumrukovski/quotescompose/navigation/AppNavigation.kt index 5873f08..8eb5ebe 100644 --- a/app/src/main/java/com/jumrukovski/quotescompose/navigation/AppNavigation.kt +++ b/app/src/main/java/com/jumrukovski/quotescompose/navigation/AppNavigation.kt @@ -18,6 +18,7 @@ import com.jumrukovski.quotescompose.ui.screen.categories.details.CategoryItemsV import com.jumrukovski.quotescompose.ui.screen.detail.QuoteDetailScreen import com.jumrukovski.quotescompose.ui.screen.favourites.FavouritesScreen import com.jumrukovski.quotescompose.ui.screen.home.HomeScreen +import com.jumrukovski.quotescompose.ui.screen.random.RandomQuoteScreen @Composable fun AppNavigation( @@ -62,5 +63,8 @@ fun AppNavigation( } } } + composable(Screen.RandomQuote.route){ + RandomQuoteScreen() + } } } \ No newline at end of file diff --git a/app/src/main/java/com/jumrukovski/quotescompose/navigation/Screen.kt b/app/src/main/java/com/jumrukovski/quotescompose/navigation/Screen.kt index f52fd62..91e4f8b 100644 --- a/app/src/main/java/com/jumrukovski/quotescompose/navigation/Screen.kt +++ b/app/src/main/java/com/jumrukovski/quotescompose/navigation/Screen.kt @@ -8,6 +8,7 @@ sealed class Screen(val route: String, @StringRes val resourceId: Int, @Drawable object Home : Screen("home", R.string.screen_home, R.drawable.baseline_home_24) object Categories : Screen("categories", R.string.screen_categories, R.drawable.baseline_category_24) object Favourites : Screen("favourites", R.string.screen_favourites, R.drawable.baseline_favorite_24) + object RandomQuote:Screen("random quote",R.string.screen_random_quote,R.drawable.baseline_random) } sealed class ScreenWithArgument(private val originalRoute: String, val argument:String, @StringRes resourceId: Int, @DrawableRes icon: Int?):Screen("$originalRoute{$argument}", resourceId, icon){ diff --git a/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/main/MainActivity.kt b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/main/MainActivity.kt index eb2ee11..716d182 100644 --- a/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/main/MainActivity.kt +++ b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/main/MainActivity.kt @@ -8,6 +8,7 @@ import androidx.compose.ui.res.stringResource import androidx.navigation.compose.rememberNavController import com.jumrukovski.quotescompose.R import com.jumrukovski.quotescompose.navigation.AppNavigation +import com.jumrukovski.quotescompose.navigation.Screen import com.jumrukovski.quotescompose.ui.common.BottomNavigationBar import com.jumrukovski.quotescompose.ui.common.Toolbar import com.jumrukovski.quotescompose.ui.theme.QuotesComposeTheme @@ -30,7 +31,7 @@ class MainActivity : ComponentActivity() { MainScreenMenuItem.values().asList() ){ when(it){ - MainScreenMenuItem.RANDOM -> ""//todo + MainScreenMenuItem.RANDOM -> navController.navigate(Screen.RandomQuote.route) } } }, diff --git a/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteScreen.kt b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteScreen.kt new file mode 100644 index 0000000..dde0af3 --- /dev/null +++ b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteScreen.kt @@ -0,0 +1,23 @@ +package com.jumrukovski.quotescompose.ui.screen.random + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import com.jumrukovski.quotescompose.ui.theme.PrimaryBackgroundColor + +@Composable +fun RandomQuoteScreen(){ + Box( + modifier = Modifier + .fillMaxSize() + .background(MaterialTheme.colorScheme.PrimaryBackgroundColor), + contentAlignment = Alignment.Center + ) { + Text(text = "Random Quote Screen") + } +} \ No newline at end of file diff --git a/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteViewModel.kt b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteViewModel.kt new file mode 100644 index 0000000..26b1c80 --- /dev/null +++ b/app/src/main/java/com/jumrukovski/quotescompose/ui/screen/random/RandomQuoteViewModel.kt @@ -0,0 +1,10 @@ +package com.jumrukovski.quotescompose.ui.screen.random + +import androidx.lifecycle.ViewModel +import com.jumrukovski.quotescompose.data.repository.Repository +import dagger.hilt.android.lifecycle.HiltViewModel +import javax.inject.Inject + +@HiltViewModel +class RandomQuoteViewModel@Inject constructor(private val repository: Repository): ViewModel() { +} \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1d4d1ae..e9fb6a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -10,4 +10,5 @@ Favourites Quote Detail Category Detail + Random Quote \ No newline at end of file