Skip to content

Commit

Permalink
Tree Upload Reminder Dialog (#1081)
Browse files Browse the repository at this point in the history
* Created DisplayAlertDialog composable

* Added functionality to display alert dialog when tracked trees are above 2000

* -Added string resources for the raw strings
-Added treesToSyncThreshold on the viewmodel and updated state

* formating cleanup

* Minor fixes on dashboard screen and dashboard ViewModel"
  • Loading branch information
CalebKL authored Apr 5, 2023
1 parent 754f201 commit 59dcb74
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@ import androidx.compose.material.ButtonColors
import androidx.compose.material.Scaffold
import androidx.compose.material.Text
import androidx.compose.material.rememberScaffoldState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.ExperimentalComposeApi
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.*
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.CenterVertically
Expand Down Expand Up @@ -55,6 +52,7 @@ import org.greenstand.android.TreeTracker.view.LanguageButton
import org.greenstand.android.TreeTracker.view.TopBarTitle
import org.greenstand.android.TreeTracker.view.TreeTrackerButton
import org.greenstand.android.TreeTracker.view.TreeTrackerButtonShape
import org.greenstand.android.TreeTracker.view.dialogs.CustomDialog

@Composable
fun DashboardScreen(
Expand All @@ -63,13 +61,27 @@ fun DashboardScreen(
val state by viewModel.state.observeAsState(DashboardState())
val snackBar by viewModel.snackBar.observeAsState()
val navController = LocalNavHostController.current
var showDialog by remember { mutableStateOf(false) }

if (showDialog){
CustomDialog(
title = stringResource(R.string.upload_trees_soon_title),
textContent = stringResource(R.string.upload_trees_text_content),
onPositiveClick = {
navController.navigate(NavRoute.UserSelect.route)
}
)
}
Dashboard(
state = state,
snackBar = snackBar,
onSyncClicked = { viewModel.sync() },
onOrgClicked = { navController.navigate(NavRoute.Org.route) },
onCaptureClicked = { navController.navigate(NavRoute.UserSelect.route) },
onCaptureClicked = {
if (state.showTreeSyncReminderDialog){
showDialog = true
}else navController.navigate(NavRoute.UserSelect.route)
},
onMessagesClicked = {
viewModel.syncMessages()
navController.navigate(NavRoute.MessagesUserSelect.route)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ data class DashboardState(
val totalTreesToSync: Int = 0,
val isOrgButtonEnabled: Boolean = false,
val showUnreadMessageNotification: Boolean = false,
val showTreeSyncReminderDialog:Boolean = false
)

class DashboardViewModel(
Expand Down Expand Up @@ -163,6 +164,7 @@ class DashboardViewModel(
treesSynced = syncedTreeCount,
isOrgButtonEnabled = orgRepo.getOrgs().size > 1,
showUnreadMessageNotification = messagesRepo.checkForUnreadMessages(),
showTreeSyncReminderDialog = totalTreesToSync >= 2000
)
}
}
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,6 @@ Privacy Policy
<string name="select_tree_height_colour">Select tree height colour</string>
<string name="select_organization">Select organization</string>
<string name="no_messages_yet">No Messages, Yet.</string>
<string name="upload_trees_soon_title">Upload Trees Soon</string>
<string name="upload_trees_text_content">You have over 2000 trees, please upload as soon as you can.</string>
</resources>

0 comments on commit 59dcb74

Please sign in to comment.