Skip to content

Commit

Permalink
Updating new libs versions and APIs
Browse files Browse the repository at this point in the history
  • Loading branch information
nkuppan committed Feb 28, 2024
1 parent 83ca91b commit a55c1c9
Show file tree
Hide file tree
Showing 25 changed files with 197 additions and 228 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import androidx.compose.material3.NavigationBarItem
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.painterResource
Expand Down Expand Up @@ -149,8 +151,10 @@ fun NavGraphBuilder.expenseManagerNavigation(
fun HomeScreen(viewModel: HomeViewModel = hiltViewModel()) {
val context = LocalContext.current

val homeScreenBottomBarItems by viewModel.homeScreenBottomBarItems.collectAsState()

BackHandler {
if (viewModel.homeScreenBottomBarItems != HomeScreenBottomBarItems.Home) {
if (homeScreenBottomBarItems != HomeScreenBottomBarItems.Home) {
viewModel.setUISystem(HomeScreenBottomBarItems.Home)
} else {
(context as? Activity)?.finish()
Expand All @@ -162,7 +166,7 @@ fun HomeScreen(viewModel: HomeViewModel = hiltViewModel()) {
BottomAppBar {
HomeScreenBottomBarItems.entries.forEach { uiSystem ->
NavigationBarItem(
selected = viewModel.homeScreenBottomBarItems == uiSystem,
selected = homeScreenBottomBarItems == uiSystem,
onClick = { viewModel.setUISystem(uiSystem) },
icon = {
Icon(
Expand All @@ -181,7 +185,7 @@ fun HomeScreen(viewModel: HomeViewModel = hiltViewModel()) {
bottom = paddingValues.calculateBottomPadding(),
),
) {
when (viewModel.homeScreenBottomBarItems) {
when (homeScreenBottomBarItems) {
HomeScreenBottomBarItems.Home -> {
DashboardScreen()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
package com.naveenapps.expensemanager.ui

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import javax.inject.Inject

@HiltViewModel
class HomeViewModel @Inject constructor() : ViewModel() {
var homeScreenBottomBarItems by mutableStateOf(HomeScreenBottomBarItems.Home)
private set

private val _homeScreenBottomBarItems = MutableStateFlow(HomeScreenBottomBarItems.Home)
val homeScreenBottomBarItems = _homeScreenBottomBarItems.asStateFlow()

fun setUISystem(homeScreenBottomBarItems: HomeScreenBottomBarItems) {
this.homeScreenBottomBarItems = homeScreenBottomBarItems
_homeScreenBottomBarItems.value = homeScreenBottomBarItems
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.naveenapps.expensemanager.core.designsystem.components
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.KeyboardArrowRight
import androidx.compose.material.icons.automirrored.filled.KeyboardArrowRight
import androidx.compose.material3.Icon
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
Expand Down Expand Up @@ -43,7 +43,7 @@ fun SelectedItemView(
)

Icon(
imageVector = Icons.Default.KeyboardArrowRight,
imageVector = Icons.AutoMirrored.Filled.KeyboardArrowRight,
contentDescription = null,
)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.naveenapps.expensemanager.core.domain.usecase.settings.onboarding

import com.naveenapps.expensemanager.core.repository.SettingsRepository
import kotlinx.coroutines.flow.first
import javax.inject.Inject

class GetOnboardingStatusUseCase @Inject constructor(private val repository: com.naveenapps.expensemanager.core.repository.SettingsRepository) {
class GetOnboardingStatusUseCase @Inject constructor(private val repository: SettingsRepository) {
suspend operator fun invoke(): Boolean {
return repository.isOnboardingCompleted().first()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package com.naveenapps.expensemanager.core.domain.usecase.settings.onboarding

import com.naveenapps.expensemanager.core.repository.SettingsRepository
import kotlinx.coroutines.flow.first
import javax.inject.Inject

class GetPreloadStatusUseCase @Inject constructor(private val repository: com.naveenapps.expensemanager.core.repository.SettingsRepository) {
class GetPreloadStatusUseCase @Inject constructor(private val repository: SettingsRepository) {
suspend operator fun invoke(): Boolean {
return repository.isPreloaded().first()
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package com.naveenapps.expensemanager.core.domain.usecase.settings.onboarding

import com.naveenapps.expensemanager.core.repository.SettingsRepository
import javax.inject.Inject

class SetOnboardingStatusUseCase @Inject constructor(private val repository: com.naveenapps.expensemanager.core.repository.SettingsRepository) {
class SetOnboardingStatusUseCase @Inject constructor(private val repository: SettingsRepository) {

suspend operator fun invoke(onboardingCompleted: Boolean) {
repository.setOnboardingCompleted(onboardingCompleted)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,20 +233,18 @@ class AccountCreateViewModel @Inject constructor(
var isError = false

if (name.isBlank()) {
nameField.value = nameField.value.copy(valueError = true)
nameField.update { it.copy(valueError = true) }
isError = true
}

if (currentBalance.isBlank() || currentBalance.toDoubleOrNullWithLocale() == null) {
currentBalanceField.value = currentBalanceField.value.copy(valueError = true)
currentBalanceField.update { it.copy(valueError = true) }
isError = true
}

if (accountType == AccountType.CREDIT) {
if (creditLimit.isBlank() || creditLimit.toDoubleOrNullWithLocale() == null) {
creditLimitField.value = creditLimitField.value.copy(valueError = true)
isError = true
}
if (accountType == AccountType.CREDIT && (creditLimit.isBlank() || creditLimit.toDoubleOrNullWithLocale() == null)) {
creditLimitField.update { it.copy(valueError = true) }
isError = true
}

if (isError) {
Expand Down Expand Up @@ -295,15 +293,15 @@ class AccountCreateViewModel @Inject constructor(
colorValueField.update { it.copy(value = colorValue) }
}

private fun setIconValue(icon: String) {
iconValueField.update { it.copy(value = icon) }
}

private fun setAccountTypeChange(accountType: AccountType) {
accountTypeField.update { it.copy(value = accountType) }
updateAccountValue(account)
}

private fun setIconValue(icon: String) {
iconValueField.update { it.copy(value = icon) }
}

private fun setNameChange(name: String) {
nameField.update { it.copy(value = name, valueError = name.isBlank()) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,18 @@ import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.graphicsLayer
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
import com.naveenapps.expensemanager.core.designsystem.AppPreviewsLightAndDarkMode
import com.naveenapps.expensemanager.core.designsystem.components.dragGestureHandler
import com.naveenapps.expensemanager.core.designsystem.components.rememberDragDropListState
import com.naveenapps.expensemanager.core.designsystem.ui.components.IconAndBackgroundView
Expand All @@ -43,9 +45,12 @@ import kotlinx.coroutines.Job
fun AccountReOrderScreen(
viewModel: AccountReOrderViewModel = hiltViewModel(),
) {
val accounts by viewModel.accounts.collectAsState()
val showActionButton by viewModel.showActionButton.collectAsState()

AccountReOrderScaffoldView(
accounts = viewModel.accounts,
showActionButton = viewModel.showActionButton,
accounts = accounts,
showActionButton = showActionButton,
backPress = viewModel::closePage,
saveChanges = viewModel::saveChanges,
onMove = viewModel::swap,
Expand Down Expand Up @@ -169,7 +174,7 @@ fun AccountReOrderItem(
}
}

@Preview
@AppPreviewsLightAndDarkMode
@Composable
fun AccountReOrderScaffoldViewPreview() {
ExpenseManagerTheme {
Expand All @@ -179,7 +184,7 @@ fun AccountReOrderScaffoldViewPreview() {
onMove = { i, j ->

},
saveChanges = { },
saveChanges = {},
backPress = {})
}
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
package com.naveenapps.expensemanager.feature.account.reorder

import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.setValue
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.naveenapps.expensemanager.core.designsystem.components.swap
Expand All @@ -11,6 +8,8 @@ import com.naveenapps.expensemanager.core.domain.usecase.account.UpdateAllAccoun
import com.naveenapps.expensemanager.core.model.Account
import com.naveenapps.expensemanager.core.navigation.AppComposeNavigator
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
Expand All @@ -23,15 +22,15 @@ class AccountReOrderViewModel @Inject constructor(
private val appComposeNavigator: AppComposeNavigator,
) : ViewModel() {

var showActionButton by mutableStateOf(false)
private set
private val _showActionButton = MutableStateFlow<Boolean>(false)
val showActionButton = _showActionButton.asStateFlow()

var accounts by mutableStateOf(emptyList<Account>())
private set
private val _accounts = MutableStateFlow<List<Account>>(emptyList())
val accounts = _accounts.asStateFlow()

init {
getAllAccountsUseCase.invoke().onEach {
accounts = it
_accounts.value = it
}.launchIn(viewModelScope)
}

Expand All @@ -42,7 +41,7 @@ class AccountReOrderViewModel @Inject constructor(
fun saveChanges() {
viewModelScope.launch {
updateAllAccountUseCase.invoke(
accounts.mapIndexed { index, item ->
_accounts.value.mapIndexed { index, item ->
item.copy(sequence = index)
},
)
Expand All @@ -53,10 +52,10 @@ class AccountReOrderViewModel @Inject constructor(

fun swap(fromIndex: Int, toIndex: Int) {
viewModelScope.launch {
val updatedPomodoroList = accounts.toMutableList()
val updatedPomodoroList = _accounts.value.toMutableList()
val swappedList = updatedPomodoroList.swap(fromIndex, toIndex)
accounts = swappedList
showActionButton = true
_accounts.value = swappedList
_showActionButton.value = true
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ fun AccountSelectionScreen(
Row(
modifier = Modifier
.fillMaxWidth()
.padding(start = 16.dp, end = 16.dp, bottom = 4.dp),
.padding(16.dp),
) {
SelectionTitle(
title = stringResource(id = R.string.select_account),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.material3.Divider
import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
Expand Down Expand Up @@ -92,10 +92,10 @@ fun MultipleAccountSelectionScreen(
stringResource(id = R.string.select_account),
Modifier
.fillMaxWidth()
.padding(start = 16.dp, end = 16.dp, bottom = 4.dp),
.padding(16.dp),
)
}
items(accounts) { account ->
items(accounts, key = { it.id }) { account ->
val isSelected = selectedAccounts.fastAny { it.id == account.id }
AccountCheckedItem(
modifier = Modifier
Expand All @@ -114,7 +114,7 @@ fun MultipleAccountSelectionScreen(
}
item {
Column {
Divider(modifier = Modifier.padding(top = 8.dp))
HorizontalDivider(modifier = Modifier.padding(top = 8.dp))
Row(
modifier = Modifier
.padding(start = 16.dp, end = 16.dp)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,19 +159,19 @@ class CategoryCreateViewModel @Inject constructor(
}
}

fun setColorChange(colorValue: String) {
private fun setColorChange(colorValue: String) {
selectedColorField.update { it.copy(value = colorValue) }
}

fun setCategoryTypeChange(categoryType: CategoryType) {
private fun setCategoryTypeChange(categoryType: CategoryType) {
categoryTypeField.update { it.copy(value = categoryType) }
}

fun setIconChange(icon: String) {
private fun setIconChange(icon: String) {
selectedIconField.update { it.copy(value = icon) }
}

fun setNameChange(name: String) {
private fun setNameChange(name: String) {
nameField.update { it.copy(value = name) }
nameField.update { it.copy(valueError = name.isBlank()) }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,7 @@ class CategoryTransactionListViewModel @Inject constructor(
}.onEach { model ->
_categoryTransaction.value = UiState.Success(
if (model.hideValues) {
model.copy(
categoryTransactions = emptyList(),
)
model.copy(categoryTransactions = emptyList())
} else {
model
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import javax.inject.Inject

Expand Down Expand Up @@ -53,28 +54,21 @@ class CurrencyViewModel @Inject constructor(
fun selectThisCurrency(currency: Currency?) {
currency ?: return
viewModelScope.launch {
_currentCurrency.value = _currentCurrency.value.copy(
name = currency.name,
symbol = currency.symbol,
)
_currentCurrency.update { it.copy(name = currency.name, symbol = currency.symbol) }
saveSelectedCurrency()
}
}

fun setCurrencyPositionType(textPosition: TextPosition) {
viewModelScope.launch {
_currentCurrency.value = _currentCurrency.value.copy(
position = textPosition,
)
_currentCurrency.update { it.copy(position = textPosition) }
saveSelectedCurrency()
}
}

fun setTextFormatChange(textFormat: TextFormat) {
viewModelScope.launch {
_currentCurrency.value = _currentCurrency.value.copy(
format = textFormat,
)
_currentCurrency.update { it.copy(format = textFormat) }
saveSelectedCurrency()
}
}
Expand Down
Loading

0 comments on commit a55c1c9

Please sign in to comment.