diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractDebuggerAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractDebuggerAction.kt index d742d11cdb..58ad2e29ab 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractDebuggerAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractDebuggerAction.kt @@ -23,10 +23,10 @@ abstract class AbstractDebuggerAction( override var enabled = true override var icon: Drawable? = null - protected val debugClient: IDEDebugClientImpl - get() = IDEDebugClientImpl.requireInstance() + protected val debugClient: IDEDebugClientImpl? + get() = IDEDebugClientImpl.getInstance() - protected open fun checkEnabled(data: ActionData): Boolean = debugClient.isVmConnected() + protected open fun checkEnabled(data: ActionData): Boolean = debugClient?.isVmConnected() == true override fun prepare(data: ActionData) { super.prepare(data) @@ -34,4 +34,4 @@ abstract class AbstractDebuggerAction( icon = ContextCompat.getDrawable(data.requireContext(), iconRes) enabled = checkEnabled(data) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractStepAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractStepAction.kt index 15cb38927c..5fd6d0e757 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractStepAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/AbstractStepAction.kt @@ -8,6 +8,8 @@ abstract class AbstractStepAction( @DrawableRes iconRes: Int ): AbstractDebuggerAction(iconRes) { - override fun checkEnabled(data: ActionData): Boolean = - debugClient.connectionState >= DebuggerConnectionState.AWAITING_BREAKPOINT -} \ No newline at end of file + override fun checkEnabled(data: ActionData): Boolean { + val client = debugClient ?: return false + return client.connectionState >= DebuggerConnectionState.AWAITING_BREAKPOINT + } +} diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/KillVmAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/KillVmAction.kt index 9db30da5bb..28c995dc78 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/KillVmAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/KillVmAction.kt @@ -17,6 +17,6 @@ class KillVmAction( override var tooltipTag = TooltipTag.DEBUGGER_ACTION_KILL override suspend fun execAction(data: ActionData) { - debugClient.killVm() + debugClient?.killVm() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/StepIntoAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/StepIntoAction.kt index 43378db54a..6c31f8271d 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/StepIntoAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/StepIntoAction.kt @@ -17,6 +17,6 @@ class StepIntoAction( override var tooltipTag = TooltipTag.DEBUGGER_ACTION_STEP_INTO override suspend fun execAction(data: ActionData) { - debugClient.stepInto() + debugClient?.stepInto() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/StepOutAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/StepOutAction.kt index a98fbec8c4..823af23d89 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/StepOutAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/StepOutAction.kt @@ -17,6 +17,6 @@ class StepOutAction( override var tooltipTag = TooltipTag.DEBUGGER_ACTION_STEP_OUT override suspend fun execAction(data: ActionData) { - debugClient.stepOut() + debugClient?.stepOut() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/StepOverAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/StepOverAction.kt index aeac21edef..c9957b255d 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/StepOverAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/StepOverAction.kt @@ -17,6 +17,6 @@ class StepOverAction( override var tooltipTag = TooltipTag.DEBUGGER_ACTION_STEP_OVER override suspend fun execAction(data: ActionData) { - debugClient.stepOver() + debugClient?.stepOver() } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/itsaky/androidide/actions/debug/SuspendResumeVmAction.kt b/app/src/main/java/com/itsaky/androidide/actions/debug/SuspendResumeVmAction.kt index 0c666456eb..e76bf508ea 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/debug/SuspendResumeVmAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/debug/SuspendResumeVmAction.kt @@ -22,7 +22,7 @@ class SuspendResumeVmAction( override fun prepare(data: ActionData) { super.prepare(data) val context = data.requireContext() - val isSuspended = debugClient.isVmSuspended() + val isSuspended = debugClient?.isVmSuspended() == true if (isSuspended) { label = context.getString(R.string.debugger_resume) icon = ContextCompat.getDrawable(context, R.drawable.ic_run) @@ -33,10 +33,11 @@ class SuspendResumeVmAction( } override suspend fun execAction(data: ActionData) { - if (debugClient.isVmSuspended()) { - debugClient.resumeVm() + val client = debugClient ?: return + if (client.isVmSuspended()) { + client.resumeVm() } else { - debugClient.suspendVm() + client.suspendVm() } } -} \ No newline at end of file +}