From bb2b8ff2f4379ef473c5e30b84e233a7405448f9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:30:21 +0000 Subject: [PATCH 1/2] Initial plan From e17713bc806d3339767720b7cc604b106bca11ed Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 19 Apr 2026 16:38:21 +0000 Subject: [PATCH 2/2] Convert sealed class Event to sealed interface Event following Circuit best practices Agent-Logs-Url: https://github.com/hossain-khan/android-remote-notify/sessions/a0ebbadf-e5a2-48f8-9264-abecd99251b6 Co-authored-by: hossain-khan <99822+hossain-khan@users.noreply.github.com> --- .../remotenotify/ui/about/AboutAppScreen.kt | 14 +++++----- .../ui/addalert/AddNewRemoteAlert.kt | 18 ++++++------ .../AlertCheckLogViewerScreen.kt | 16 +++++------ .../ui/alertlist/AlertsListScreen.kt | 18 ++++++------ .../ConfigureNotificationMediumScreen.kt | 12 ++++---- .../NotificationMediumListScreen.kt | 12 ++++---- .../ui/backup/BackupRestoreScreen.kt | 22 +++++++-------- .../ui/devportal/DeveloperPortalScreen.kt | 28 +++++++++---------- 8 files changed, 70 insertions(+), 70 deletions(-) diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/about/AboutAppScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/about/AboutAppScreen.kt index 80d01da..56146ad 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/about/AboutAppScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/about/AboutAppScreen.kt @@ -72,18 +72,18 @@ data object AboutAppScreen : Screen { val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { - data object GoBack : Event() + sealed interface Event : CircuitUiEvent { + data object GoBack : Event - data object OpenGitHubProject : Event() + data object OpenGitHubProject : Event - data object OpenLearnMoreSheet : Event() + data object OpenLearnMoreSheet : Event - data object DismissLearnMoreSheet : Event() + data object DismissLearnMoreSheet : Event - data object OpenBackupRestore : Event() + data object OpenBackupRestore : Event - data object OpenDeveloperPortal : Event() + data object OpenDeveloperPortal : Event } } diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/addalert/AddNewRemoteAlert.kt b/app/src/main/java/dev/hossain/remotenotify/ui/addalert/AddNewRemoteAlert.kt index 270d0a2..630cf9c 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/addalert/AddNewRemoteAlert.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/addalert/AddNewRemoteAlert.kt @@ -90,28 +90,28 @@ data class AddNewRemoteAlertScreen( val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { + sealed interface Event : CircuitUiEvent { data class SaveNotification( val notification: RemoteAlert, - ) : Event() + ) : Event - data object NavigateBack : Event() + data object NavigateBack : Event - data object ShowBatteryOptimizationSheet : Event() + data object ShowBatteryOptimizationSheet : Event - data object DismissBatteryOptimizationSheet : Event() + data object DismissBatteryOptimizationSheet : Event - data object OpenBatterySettings : Event() + data object OpenBatterySettings : Event - data object HideBatteryOptimizationReminder : Event() + data object HideBatteryOptimizationReminder : Event data class UpdateAlertType( val alertType: AlertType, - ) : Event() + ) : Event data class UpdateThreshold( val value: Int, - ) : Event() + ) : Event } } diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/alertchecklog/AlertCheckLogViewerScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/alertchecklog/AlertCheckLogViewerScreen.kt index 6840c4f..9c53097 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/alertchecklog/AlertCheckLogViewerScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/alertchecklog/AlertCheckLogViewerScreen.kt @@ -126,29 +126,29 @@ data object AlertCheckLogViewerScreen : Screen { val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { - data object NavigateBack : Event() + sealed interface Event : CircuitUiEvent { + data object NavigateBack : Event - data object ToggleTriggeredOnly : Event() + data object ToggleTriggeredOnly : Event data class FilterByAlertType( val alertType: AlertType?, - ) : Event() + ) : Event data class FilterByNotifierType( val notifierType: NotifierType?, - ) : Event() + ) : Event data class FilterByDateRange( val startDate: Long?, val endDate: Long?, - ) : Event() + ) : Event - data object ClearFilters : Event() + data object ClearFilters : Event data class ExportLogs( val logs: List, - ) : Event() + ) : Event } } diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/alertlist/AlertsListScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/alertlist/AlertsListScreen.kt index 19caacb..4f18cb7 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/alertlist/AlertsListScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/alertlist/AlertsListScreen.kt @@ -96,26 +96,26 @@ data object AlertsListScreen : Screen { val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { + sealed interface Event : CircuitUiEvent { data class DeleteNotification( val notification: RemoteAlert, - ) : Event() + ) : Event data class EditRemoteAlert( val notification: RemoteAlert, - ) : Event() + ) : Event - data object AddNotification : Event() + data object AddNotification : Event - data object AddNotificationDestination : Event() + data object AddNotificationDestination : Event - data object NavigateToAbout : Event() + data object NavigateToAbout : Event - data object ShowEducationSheet : Event() + data object ShowEducationSheet : Event - data object DismissEducationSheet : Event() + data object DismissEducationSheet : Event - data object ViewAllLogs : Event() + data object ViewAllLogs : Event } } diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumconfig/ConfigureNotificationMediumScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumconfig/ConfigureNotificationMediumScreen.kt index 9cba763..6dc6d2c 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumconfig/ConfigureNotificationMediumScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumconfig/ConfigureNotificationMediumScreen.kt @@ -90,18 +90,18 @@ data class ConfigureNotificationMediumScreen constructor( val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { + sealed interface Event : CircuitUiEvent { data class UpdateConfigValue( val alertMediumConfig: AlertMediumConfig?, - ) : Event() + ) : Event - data object SaveConfig : Event() + data object SaveConfig : Event - data object TestConfig : Event() + data object TestConfig : Event - data object DismissSnackbar : Event() + data object DismissSnackbar : Event - data object NavigateBack : Event() + data object NavigateBack : Event } @Parcelize diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumlist/NotificationMediumListScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumlist/NotificationMediumListScreen.kt index e8a643c..70402b8 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumlist/NotificationMediumListScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/alertmediumlist/NotificationMediumListScreen.kt @@ -113,14 +113,14 @@ data object NotificationMediumListScreen : Screen { /** * Represents events that can occur on the [NotificationMediumListScreen]. */ - sealed class Event : CircuitUiEvent { + sealed interface Event : CircuitUiEvent { /** * Event triggered when the user wants to edit the configuration of a notification medium. * @property notifierType The type of the notifier to edit. */ data class EditMediumConfig( val notifierType: NotifierType, - ) : Event() + ) : Event /** * Event triggered when the user wants to reset the configuration of a notification medium. @@ -128,7 +128,7 @@ data object NotificationMediumListScreen : Screen { */ data class ResetMediumConfig( val notifierType: NotifierType, - ) : Event() + ) : Event /** * Event triggered when the worker interval is updated. @@ -136,17 +136,17 @@ data object NotificationMediumListScreen : Screen { */ data class OnWorkerIntervalUpdated( val minutes: Long, - ) : Event() + ) : Event /** * Event triggered when the user wants to share feedback. */ - data object ShareFeedback : Event() + data object ShareFeedback : Event /** * Event triggered when the user wants to navigate back. */ - data object NavigateBack : Event() + data object NavigateBack : Event } } diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/backup/BackupRestoreScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/backup/BackupRestoreScreen.kt index c9ada32..355c12b 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/backup/BackupRestoreScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/backup/BackupRestoreScreen.kt @@ -96,33 +96,33 @@ data object BackupRestoreScreen : Screen { val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { - data object GoBack : Event() + sealed interface Event : CircuitUiEvent { + data object GoBack : Event - data object ShowExportDialog : Event() + data object ShowExportDialog : Event - data object DismissExportDialog : Event() + data object DismissExportDialog : Event data class ExportConfig( val password: String, val uri: Uri, - ) : Event() + ) : Event data class ImportFileSelected( val uri: Uri, - ) : Event() + ) : Event data class PasswordEntered( val password: String, - ) : Event() + ) : Event - data object DismissImportPasswordDialog : Event() + data object DismissImportPasswordDialog : Event - data object ConfirmImport : Event() + data object ConfirmImport : Event - data object DismissImportConfirmDialog : Event() + data object DismissImportConfirmDialog : Event - data object ClearMessage : Event() + data object ClearMessage : Event } } diff --git a/app/src/main/java/dev/hossain/remotenotify/ui/devportal/DeveloperPortalScreen.kt b/app/src/main/java/dev/hossain/remotenotify/ui/devportal/DeveloperPortalScreen.kt index 80a6ff3..c446d51 100644 --- a/app/src/main/java/dev/hossain/remotenotify/ui/devportal/DeveloperPortalScreen.kt +++ b/app/src/main/java/dev/hossain/remotenotify/ui/devportal/DeveloperPortalScreen.kt @@ -109,38 +109,38 @@ data object DeveloperPortalScreen : Screen { val eventSink: (Event) -> Unit, ) : CircuitUiState - sealed class Event : CircuitUiEvent { - data object GoBack : Event() + sealed interface Event : CircuitUiEvent { + data object GoBack : Event data class SimulateBatteryAlert( val simulatedLevel: Int, - ) : Event() + ) : Event data class SimulateStorageAlert( val simulatedStorageGb: Int, - ) : Event() + ) : Event data class TestNotificationChannel( val channelType: NotifierType, - ) : Event() + ) : Event - data object NavigateToAlertsList : Event() + data object NavigateToAlertsList : Event - data object ShowClearLogsDialog : Event() + data object ShowClearLogsDialog : Event - data object DismissClearLogsDialog : Event() + data object DismissClearLogsDialog : Event - data object ConfirmClearLogs : Event() + data object ConfirmClearLogs : Event - data object ShowBatteryOptSheet : Event() + data object ShowBatteryOptSheet : Event - data object DismissBatteryOptSheet : Event() + data object DismissBatteryOptSheet : Event - data object ResetBatteryOptPreference : Event() + data object ResetBatteryOptPreference : Event - data object OpenBatterySettings : Event() + data object OpenBatterySettings : Event - data object TriggerOneTimeWork : Event() + data object TriggerOneTimeWork : Event } }