Skip to content

Commit

Permalink
Some other changes
Browse files Browse the repository at this point in the history
  • Loading branch information
thekaailashsharma committed Aug 18, 2024
1 parent 9885304 commit 8f0bc61
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 3 deletions.
3 changes: 3 additions & 0 deletions app/src/main/java/ai/travel/app/home/HomeViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import ai.travel.app.tripDetails.TimeSlot
import android.app.Application
import android.icu.util.Calendar
import android.util.Base64
import android.widget.Toast
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
Expand Down Expand Up @@ -44,6 +45,7 @@ class HomeViewModel @Inject constructor(
private val repository: ApiService,
private val dbRepository: DatabaseRepo,
) : AndroidViewModel(application) {
val context = application.applicationContext

private val _imageState = MutableStateFlow<ApiState>(ApiState.NotStarted)
val imageState: StateFlow<ApiState> = _imageState.asStateFlow()
Expand Down Expand Up @@ -314,6 +316,7 @@ class HomeViewModel @Inject constructor(
_imageState.value = ApiState.ReceivedPhoto
_geoCodesData.value = mutableListOf()
} catch (e: Exception) {
_imageState.value = ApiState.Error(e)
println("EException is $e")
}
}
Expand Down
43 changes: 42 additions & 1 deletion app/src/main/java/ai/travel/app/home/ui/NewHomeScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -33,10 +33,14 @@ import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.BottomSheetScaffold
import androidx.compose.material3.BottomSheetScaffoldState
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalDrawerSheet
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SheetState
import androidx.compose.material3.SheetValue
import androidx.compose.material3.Snackbar
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
import androidx.compose.material3.Text
import androidx.compose.material3.rememberBottomSheetScaffoldState
import androidx.compose.runtime.Composable
Expand All @@ -50,6 +54,7 @@ import androidx.compose.runtime.mutableFloatStateOf
import androidx.compose.runtime.mutableStateListOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
Expand All @@ -63,8 +68,10 @@ import androidx.navigation.NavController
import com.airbnb.lottie.compose.LottieAnimation
import com.airbnb.lottie.compose.LottieCompositionSpec
import com.airbnb.lottie.compose.rememberLottieComposition
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch

@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class)
@Composable
Expand Down Expand Up @@ -182,7 +189,13 @@ fun NewHomeScreen(
Column(horizontalAlignment = Alignment.CenterHorizontally) {
when (state.value) {
is ApiState.Error -> {

val errorMessage = (state.value as ApiState.Error).exception.message
ErrorHandler(
errorMessage = errorMessage,
onDismiss = {
viewModel.isAnimationVisible.value = false
}
)
}

is ApiState.Loaded -> {
Expand Down Expand Up @@ -282,4 +295,32 @@ fun NewHomeScreen(
}
}
}
}

@Composable
fun ErrorHandler(
errorMessage: String?,
onDismiss: () -> Unit,
snackbarHostState: SnackbarHostState = remember { SnackbarHostState() },
coroutineScope: CoroutineScope = rememberCoroutineScope()
) {
if (!errorMessage.isNullOrEmpty()) {
LaunchedEffect(errorMessage) {
coroutineScope.launch {
snackbarHostState.showSnackbar(errorMessage)
onDismiss()
}
}
}

SnackbarHost(
hostState = snackbarHostState,
snackbar = { snackbarData ->
Snackbar(
modifier = Modifier.padding(16.dp),
content = { Text(text = snackbarData.visuals.message, color = textColor)},
containerColor = CardBackground,
)
}
)
}
3 changes: 2 additions & 1 deletion app/src/main/java/ai/travel/app/home/ui/PersonalRoutes.kt
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@ fun NewRouteCard(
.padding(16.dp)
.clickable(interactionSource = MutableInteractionSource(), indication = null,
onClick = {
if (items <= 3) {
println("items is $items")
if (items <= 30) {
navController.navigate(Screens.NewTrip.route)
} else {
navController.navigate(Screens.PremiumScreen.route)
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/java/ai/travel/app/newTrip/NewTripScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -615,7 +615,7 @@ fun NewTripScreen(

Button(
onClick = {
if (totalTrips.value.size <= 1) {
if (totalTrips.value.size <= 30) {
if (homeViewModel.tripName.value.text.isNotEmpty() && homeViewModel.source.value.text.isNotEmpty()
&& homeViewModel.destination.value.text.isNotEmpty()
&& homeViewModel.tripBudget.value.text.isNotEmpty()
Expand Down

0 comments on commit 8f0bc61

Please sign in to comment.