This commit is contained in:
Sad Ellie 2022-06-13 18:59:34 +03:00
parent 2bfacd9e42
commit 0c0f7d9c35
5 changed files with 13 additions and 27 deletions

View File

@ -14,7 +14,7 @@ plugins {
id("com.google.firebase.crashlytics") id("com.google.firebase.crashlytics")
} }
val composeVersion: String by rootProject.extra val composeVersion = "1.2.0-beta02"
kapt { kapt {
correctErrorTypes = true correctErrorTypes = true
@ -113,7 +113,7 @@ android {
} }
dependencies { dependencies {
implementation("androidx.core:core-ktx:1.7.0") implementation("androidx.core:core-ktx:1.8.0")
androidTestImplementation("androidx.test:core:1.4.0") androidTestImplementation("androidx.test:core:1.4.0")
androidTestImplementation("androidx.test.ext:junit-ktx:1.1.3") androidTestImplementation("androidx.test.ext:junit-ktx:1.1.3")
testImplementation("junit:junit:4.13.2") testImplementation("junit:junit:4.13.2")
@ -127,7 +127,7 @@ dependencies {
implementation("androidx.navigation:navigation-compose:2.5.0-rc01") implementation("androidx.navigation:navigation-compose:2.5.0-rc01")
// Material Design 3 // Material Design 3
implementation("androidx.compose.material3:material3:1.0.0-alpha12") implementation("androidx.compose.material3:material3:1.0.0-alpha13")
// Hilt and navigation // Hilt and navigation
implementation("androidx.hilt:hilt-navigation-compose:1.0.0") implementation("androidx.hilt:hilt-navigation-compose:1.0.0")

View File

@ -19,9 +19,9 @@ import androidx.compose.material3.OutlinedCard
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarScrollState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.Stable import androidx.compose.runtime.Stable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.input.nestedscroll.nestedScroll
@ -44,11 +44,7 @@ fun AboutScreen(
navigateUpAction: () -> Unit = {} navigateUpAction: () -> Unit = {}
) { ) {
val mContext = LocalContext.current val mContext = LocalContext.current
val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberSplineBasedDecay(), rememberTopAppBarScrollState())
val decayAnimationSpec = rememberSplineBasedDecay<Float>()
val scrollBehavior = remember(decayAnimationSpec) {
TopAppBarDefaults.exitUntilCollapsedScrollBehavior(decayAnimationSpec)
}
Scaffold( Scaffold(
modifier = Modifier modifier = Modifier

View File

@ -5,12 +5,11 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.material3.rememberTopAppBarScrollState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -38,6 +37,8 @@ fun SecondScreen(
navigateUp: () -> Unit, navigateUp: () -> Unit,
viewModel: MainViewModel = viewModel() viewModel: MainViewModel = viewModel()
) { ) {
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(rememberTopAppBarScrollState())
var searchQuery: String by rememberSaveable { mutableStateOf(String()) } var searchQuery: String by rememberSaveable { mutableStateOf(String()) }
val favoritesOnly: Boolean = viewModel.favoritesOnly val favoritesOnly: Boolean = viewModel.favoritesOnly
val focusManager = LocalFocusManager.current val focusManager = LocalFocusManager.current
@ -45,9 +46,6 @@ fun SecondScreen(
val chipsRowLazyListState = rememberLazyListState() val chipsRowLazyListState = rememberLazyListState()
val currentUnit = if (leftSide) viewModel.unitFrom else viewModel.unitTo val currentUnit = if (leftSide) viewModel.unitFrom else viewModel.unitTo
var chosenUnitGroup: UnitGroup? by rememberSaveable { mutableStateOf(currentUnit.group) } var chosenUnitGroup: UnitGroup? by rememberSaveable { mutableStateOf(currentUnit.group) }
val scrollBehavior: TopAppBarScrollBehavior = remember {
TopAppBarDefaults.enterAlwaysScrollBehavior()
}
Scaffold( Scaffold(
modifier = Modifier modifier = Modifier

View File

@ -16,10 +16,10 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarScrollState
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -45,15 +45,10 @@ fun SettingsScreen(
navControllerAction: (String) -> Unit navControllerAction: (String) -> Unit
) { ) {
val mContext = LocalContext.current val mContext = LocalContext.current
// Scrollable // Scrollable
val decayAnimationSpec = rememberSplineBasedDecay<Float>() val scrollBehavior = TopAppBarDefaults.exitUntilCollapsedScrollBehavior(rememberSplineBasedDecay(), rememberTopAppBarScrollState())
val scrollBehavior = remember(decayAnimationSpec) {
TopAppBarDefaults.exitUntilCollapsedScrollBehavior(decayAnimationSpec)
}
var currentDialogState: Int by rememberSaveable { mutableStateOf(0) } var currentDialogState: Int by rememberSaveable { mutableStateOf(0) }
val currentAppTheme: Int = mainViewModel.currentTheme
Scaffold( Scaffold(
modifier = Modifier modifier = Modifier
@ -153,7 +148,7 @@ fun SettingsScreen(
onClick = { navControllerAction(ABOUT_SCREEN) } onClick = { navControllerAction(ABOUT_SCREEN) }
) )
BuildConfig.StoreLink?.let { BuildConfig.StoreLink.let {
SettingsListItem( SettingsListItem(
label = stringResource(R.string.rate_this_app), label = stringResource(R.string.rate_this_app),
onClick = { onClick = {
@ -205,7 +200,7 @@ fun SettingsScreen(
AlertDialogWithList( AlertDialogWithList(
title = stringResource(id = R.string.theme_setting), title = stringResource(id = R.string.theme_setting),
listItems = APP_THEMES, listItems = APP_THEMES,
selectedItemIndex = currentAppTheme, selectedItemIndex = mainViewModel.currentTheme,
selectAction = { mainViewModel.updateCurrentAppTheme(it) }, selectAction = { mainViewModel.updateCurrentAppTheme(it) },
dismissAction = { currentDialogState = 0 }, dismissAction = { currentDialogState = 0 },
// Show note for users with devices that support custom Dynamic theming // Show note for users with devices that support custom Dynamic theming

View File

@ -1,8 +1,5 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
val composeVersion by extra ("1.2.0-beta02")
repositories { repositories {
google() google()
mavenCentral() mavenCentral()
@ -16,7 +13,7 @@ buildscript {
classpath("com.google.gms:google-services:4.3.10") classpath("com.google.gms:google-services:4.3.10")
// Crashlytics // Crashlytics
classpath("com.google.firebase:firebase-crashlytics-gradle:2.8.1") classpath("com.google.firebase:firebase-crashlytics-gradle:2.9.0")
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle.kts files // in the individual module build.gradle.kts files