From 9e7cf86e6386973ccb505073e7ae466c1275d918 Mon Sep 17 00:00:00 2001 From: Vishal Singh Date: Tue, 14 Jan 2025 13:36:17 +0530 Subject: [PATCH] feat: Add Task Add,Delete,Completion Sounds #34 --- .../snaptick/presentation/add_edit_screen/AddTaskScreen.kt | 5 +++++ .../snaptick/presentation/calender_screen/CalenderScreen.kt | 3 +++ .../snaptick/presentation/home_screen/HomeScreen.kt | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/app/src/main/java/com/vishal2376/snaptick/presentation/add_edit_screen/AddTaskScreen.kt b/app/src/main/java/com/vishal2376/snaptick/presentation/add_edit_screen/AddTaskScreen.kt index b94d85eb..d622807b 100755 --- a/app/src/main/java/com/vishal2376/snaptick/presentation/add_edit_screen/AddTaskScreen.kt +++ b/app/src/main/java/com/vishal2376/snaptick/presentation/add_edit_screen/AddTaskScreen.kt @@ -45,6 +45,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableLongStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -84,8 +85,10 @@ import com.vishal2376.snaptick.ui.theme.LightGreen import com.vishal2376.snaptick.ui.theme.Red import com.vishal2376.snaptick.ui.theme.SnaptickTheme import com.vishal2376.snaptick.ui.theme.priorityColors +import com.vishal2376.snaptick.util.SoundEvent import com.vishal2376.snaptick.util.checkValidTask import com.vishal2376.snaptick.util.getFormattedDuration +import com.vishal2376.snaptick.util.playSound import kotlinx.coroutines.job import java.time.LocalDate import java.time.LocalTime @@ -118,6 +121,7 @@ fun AddTaskScreen( val taskDuration by remember { mutableLongStateOf(60) } var isTimeUpdated by remember { mutableStateOf(false) } + val scope = rememberCoroutineScope() val context = LocalContext.current val focusRequester = FocusRequester() @@ -515,6 +519,7 @@ fun AddTaskScreen( ) if (isValid) { + playSound(context, SoundEvent.TASK_ADDED) onEvent(AddEditScreenEvent.OnAddTaskClick(task)) showCustomSnackbar( context.getString(R.string.tasks_added_successfully), diff --git a/app/src/main/java/com/vishal2376/snaptick/presentation/calender_screen/CalenderScreen.kt b/app/src/main/java/com/vishal2376/snaptick/presentation/calender_screen/CalenderScreen.kt index 331c0ba6..84a2089d 100644 --- a/app/src/main/java/com/vishal2376/snaptick/presentation/calender_screen/CalenderScreen.kt +++ b/app/src/main/java/com/vishal2376/snaptick/presentation/calender_screen/CalenderScreen.kt @@ -59,6 +59,8 @@ import com.vishal2376.snaptick.presentation.navigation.Routes import com.vishal2376.snaptick.ui.theme.SnaptickTheme import com.vishal2376.snaptick.util.Constants import com.vishal2376.snaptick.util.DummyTasks +import com.vishal2376.snaptick.util.SoundEvent +import com.vishal2376.snaptick.util.playSound import kotlinx.coroutines.launch import java.time.LocalDate import java.time.YearMonth @@ -247,6 +249,7 @@ fun CalenderScreen( }, onComplete = { if (task.date >= LocalDate.now()) { + playSound(context,SoundEvent.TASK_COMPLETED) onEvent(HomeScreenEvent.OnCompleted(it, !task.isCompleted)) } }, diff --git a/app/src/main/java/com/vishal2376/snaptick/presentation/home_screen/HomeScreen.kt b/app/src/main/java/com/vishal2376/snaptick/presentation/home_screen/HomeScreen.kt index 4d5e079e..60a9beeb 100755 --- a/app/src/main/java/com/vishal2376/snaptick/presentation/home_screen/HomeScreen.kt +++ b/app/src/main/java/com/vishal2376/snaptick/presentation/home_screen/HomeScreen.kt @@ -75,7 +75,9 @@ import com.vishal2376.snaptick.ui.theme.Yellow import com.vishal2376.snaptick.util.Constants import com.vishal2376.snaptick.util.DummyTasks import com.vishal2376.snaptick.util.SettingsStore +import com.vishal2376.snaptick.util.SoundEvent import com.vishal2376.snaptick.util.getFreeTime +import com.vishal2376.snaptick.util.playSound import com.vishal2376.snaptick.util.updateLocale import kotlinx.coroutines.launch @@ -387,6 +389,7 @@ fun HomeScreen( modifier = Modifier.animateItemPlacement(tween(500)) ) { SwipeActionBox(item = task, onAction = { + playSound(context, SoundEvent.TASK_DELETED) onEvent(HomeScreenEvent.OnSwipeTask(it)) showCustomSnackbar( msg = "Task Deleted", @@ -404,6 +407,7 @@ fun HomeScreen( onNavigate("${Routes.EditTaskScreen.name}/$taskId") }, onComplete = { + playSound(context, SoundEvent.TASK_COMPLETED) onEvent(HomeScreenEvent.OnCompleted(it, true)) }, onPomodoro = { taskId ->