mirror of
https://github.com/2dust/v2rayNG.git
synced 2026-10-29 06:31:54 +00:00
Show service start failure details
Pass the optional failure message from the service layer through `MainServiceEvent` and show it in `MainViewModel` when available. This preserves the existing generic error toast as a fallback while surfacing more specific startup failures to the user.
This commit is contained in:
1 parent
1bd1bceadb
commit
4c7c964e65
3 files changed
+10
-4
No files matched your search
@@ -52,7 +52,9 @@ class MainRepository(
|
|||||||
AppConfig.MSG_STATE_RUNNING -> MainServiceEvent.StateRunning
|
AppConfig.MSG_STATE_RUNNING -> MainServiceEvent.StateRunning
|
||||||
AppConfig.MSG_STATE_NOT_RUNNING -> MainServiceEvent.StateNotRunning
|
AppConfig.MSG_STATE_NOT_RUNNING -> MainServiceEvent.StateNotRunning
|
||||||
AppConfig.MSG_STATE_START_SUCCESS -> MainServiceEvent.StateStartSuccess
|
AppConfig.MSG_STATE_START_SUCCESS -> MainServiceEvent.StateStartSuccess
|
||||||
AppConfig.MSG_STATE_START_FAILURE -> MainServiceEvent.StateStartFailure
|
AppConfig.MSG_STATE_START_FAILURE -> MainServiceEvent.StateStartFailure(
|
||||||
|
safeIntent.getStringExtra("content")
|
||||||
|
)
|
||||||
|
|
||||||
AppConfig.MSG_STATE_STOP_SUCCESS -> MainServiceEvent.StateStopSuccess
|
AppConfig.MSG_STATE_STOP_SUCCESS -> MainServiceEvent.StateStopSuccess
|
||||||
AppConfig.MSG_MEASURE_DELAY_RESULT -> safeIntent
|
AppConfig.MSG_MEASURE_DELAY_RESULT -> safeIntent
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ sealed class MainServiceEvent {
|
|||||||
data object StateRunning : MainServiceEvent()
|
data object StateRunning : MainServiceEvent()
|
||||||
data object StateNotRunning : MainServiceEvent()
|
data object StateNotRunning : MainServiceEvent()
|
||||||
data object StateStartSuccess : MainServiceEvent()
|
data object StateStartSuccess : MainServiceEvent()
|
||||||
data object StateStartFailure : MainServiceEvent()
|
data class StateStartFailure(val message: String? = null) : MainServiceEvent()
|
||||||
data object StateStopSuccess : MainServiceEvent()
|
data object StateStopSuccess : MainServiceEvent()
|
||||||
data class MeasureDelayResult(val result: ConnectionTestResult, val requestId: String) : MainServiceEvent()
|
data class MeasureDelayResult(val result: ConnectionTestResult, val requestId: String) : MainServiceEvent()
|
||||||
data class MeasureDelayCancelled(val requestId: String) : MainServiceEvent()
|
data class MeasureDelayCancelled(val requestId: String) : MainServiceEvent()
|
||||||
|
|||||||
@@ -134,8 +134,12 @@ class MainViewModel(
|
|||||||
updateRunningState(true)
|
updateRunningState(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
MainServiceEvent.StateStartFailure -> {
|
is MainServiceEvent.StateStartFailure -> {
|
||||||
toastError(R.string.toast_services_failure)
|
if (!event.message.isNullOrBlank()) {
|
||||||
|
toastError(event.message)
|
||||||
|
} else {
|
||||||
|
toastError(R.string.toast_services_failure)
|
||||||
|
}
|
||||||
updateRunningState(false)
|
updateRunningState(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user