diff --git a/app/src/main/java/com/itsaky/androidide/actions/build/ProjectSyncAction.kt b/app/src/main/java/com/itsaky/androidide/actions/build/ProjectSyncAction.kt index 32ab3238b..27610c87b 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/build/ProjectSyncAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/build/ProjectSyncAction.kt @@ -23,8 +23,6 @@ import com.itsaky.androidide.actions.ActionData import com.itsaky.androidide.actions.BaseBuildAction import com.itsaky.androidide.resources.R import com.itsaky.androidide.resources.R.string -import com.itsaky.androidide.utils.flashSuccess -import kotlinx.coroutines.runBlocking /** * Triggers a project sync request. @@ -42,9 +40,7 @@ class ProjectSyncAction(context: Context, override val order: Int) : BaseBuildAc } override suspend fun execAction(data: ActionData): Any { - return data.requireActivity().apply { - runBlocking { saveAll() } - } + return data.requireActivity().saveAll() } override fun postExec(data: ActionData, result: Any) { diff --git a/app/src/main/java/com/itsaky/androidide/actions/etc/PreviewLayoutAction.kt b/app/src/main/java/com/itsaky/androidide/actions/etc/PreviewLayoutAction.kt index 5b93d86bb..cc26ebdfe 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/etc/PreviewLayoutAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/etc/PreviewLayoutAction.kt @@ -31,7 +31,6 @@ import com.itsaky.androidide.activities.editor.EditorHandlerActivity import com.itsaky.androidide.editor.ui.IDEEditor import com.itsaky.androidide.resources.R import com.itsaky.androidide.uidesigner.UIDesignerActivity -import kotlinx.coroutines.runBlocking import java.io.File /** @author Akash Yadav */ @@ -90,10 +89,9 @@ class PreviewLayoutAction(context: Context, override val order: Int) : EditorRel } } - // TODO: Migrate to coroutines override suspend fun execAction(data: ActionData): Boolean { val activity = data.requireActivity() - runBlocking { activity.saveAll() } + activity.saveAll() return true } @@ -109,7 +107,7 @@ class PreviewLayoutAction(context: Context, override val order: Int) : EditorRel } private fun ActionData.requireEditor(): IDEEditor { - return this.getEditor() - ?: throw IllegalArgumentException("An editor instance is required but none was provided") + return this.getEditor() ?: throw IllegalArgumentException( + "An editor instance is required but none was provided") } } diff --git a/app/src/main/java/com/itsaky/androidide/actions/file/SaveFileAction.kt b/app/src/main/java/com/itsaky/androidide/actions/file/SaveFileAction.kt index b02ed4c64..a506bf0d0 100644 --- a/app/src/main/java/com/itsaky/androidide/actions/file/SaveFileAction.kt +++ b/app/src/main/java/com/itsaky/androidide/actions/file/SaveFileAction.kt @@ -26,10 +26,7 @@ import com.itsaky.androidide.projects.ProjectManagerImpl import com.itsaky.androidide.resources.R import com.itsaky.androidide.utils.ILogger import com.itsaky.androidide.utils.flashError -import com.itsaky.androidide.utils.flashInfo import com.itsaky.androidide.utils.flashSuccess -import kotlinx.coroutines.delay -import kotlinx.coroutines.runBlocking /** @author Akash Yadav */ class SaveFileAction(context: Context, override val order: Int) : EditorRelatedAction() { @@ -47,13 +44,11 @@ class SaveFileAction(context: Context, override val order: Int) : EditorRelatedA override fun prepare(data: ActionData) { super.prepare(data) - val context = - data.getActivity() - ?: run { - visible = false - enabled = false - return - } + val context = data.getActivity() ?: run { + visible = false + enabled = false + return + } visible = context.editorViewModel.getOpenedFiles().isNotEmpty() enabled = context.areFilesModified() && !context.areFilesSaving() @@ -69,7 +64,7 @@ class SaveFileAction(context: Context, override val order: Int) : EditorRelatedA return try { // Cannot use context.saveAll() because this.execAction is called on non-UI thread // and saveAll call will result in UI actions - ResultWrapper(result = runBlocking { context.saveAllResult() }) + ResultWrapper(result = context.saveAllResult()) } catch (error: Throwable) { log.error("Failed to save file", error) ResultWrapper() diff --git a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/ProjectManagerImpl.kt b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/ProjectManagerImpl.kt index 02d6f1dc5..079017d44 100644 --- a/subprojects/projects/src/main/java/com/itsaky/androidide/projects/ProjectManagerImpl.kt +++ b/subprojects/projects/src/main/java/com/itsaky/androidide/projects/ProjectManagerImpl.kt @@ -51,7 +51,6 @@ import kotlinx.coroutines.awaitAll import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.toList -import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe