mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	More coroutine network call fixes
This commit is contained in:
		@@ -6,6 +6,8 @@ import eu.kanade.tachiyomi.data.updater.UpdateResult
 | 
			
		||||
import eu.kanade.tachiyomi.network.GET
 | 
			
		||||
import eu.kanade.tachiyomi.network.NetworkHelper
 | 
			
		||||
import eu.kanade.tachiyomi.network.await
 | 
			
		||||
import kotlinx.coroutines.Dispatchers
 | 
			
		||||
import kotlinx.coroutines.withContext
 | 
			
		||||
import okhttp3.OkHttpClient
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
import uy.kohesive.injekt.api.get
 | 
			
		||||
@@ -23,7 +25,9 @@ class DevRepoUpdateChecker : UpdateChecker() {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    override suspend fun checkForUpdate(): UpdateResult {
 | 
			
		||||
        val response = client.newCall(GET(DevRepoRelease.LATEST_URL)).await(assertSuccess = false)
 | 
			
		||||
        val response = withContext(Dispatchers.IO) {
 | 
			
		||||
            client.newCall(GET(DevRepoRelease.LATEST_URL)).await(assertSuccess = false)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Get latest repo version number from header in format "Location: tachiyomi-r1512.apk"
 | 
			
		||||
        val latestVersionNumber: String = versionRegex.find(response.header("Location")!!)!!.groupValues[1]
 | 
			
		||||
 
 | 
			
		||||
@@ -12,9 +12,7 @@ import eu.kanade.tachiyomi.extension.util.ExtensionInstallReceiver
 | 
			
		||||
import eu.kanade.tachiyomi.extension.util.ExtensionInstaller
 | 
			
		||||
import eu.kanade.tachiyomi.extension.util.ExtensionLoader
 | 
			
		||||
import eu.kanade.tachiyomi.source.SourceManager
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchIO
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchNow
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchUI
 | 
			
		||||
import kotlinx.coroutines.async
 | 
			
		||||
import rx.Observable
 | 
			
		||||
import uy.kohesive.injekt.Injekt
 | 
			
		||||
@@ -146,16 +144,14 @@ class ExtensionManager(
 | 
			
		||||
     * Finds the available extensions in the [api] and updates [availableExtensions].
 | 
			
		||||
     */
 | 
			
		||||
    fun findAvailableExtensions() {
 | 
			
		||||
        launchIO {
 | 
			
		||||
        launchNow {
 | 
			
		||||
            val extensions: List<Extension.Available> = try {
 | 
			
		||||
                api.findExtensions()
 | 
			
		||||
            } catch (e: Exception) {
 | 
			
		||||
                emptyList()
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            launchUI {
 | 
			
		||||
                availableExtensions = extensions
 | 
			
		||||
            }
 | 
			
		||||
            availableExtensions = extensions
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,8 +16,7 @@ import eu.kanade.tachiyomi.data.updater.UpdaterJob
 | 
			
		||||
import eu.kanade.tachiyomi.data.updater.UpdaterService
 | 
			
		||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
 | 
			
		||||
import eu.kanade.tachiyomi.ui.main.ChangelogDialogController
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchIO
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchUI
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.launchNow
 | 
			
		||||
import eu.kanade.tachiyomi.util.lang.toTimestampString
 | 
			
		||||
import eu.kanade.tachiyomi.util.preference.*
 | 
			
		||||
import eu.kanade.tachiyomi.util.system.toast
 | 
			
		||||
@@ -119,28 +118,23 @@ class SettingsAboutController : SettingsController() {
 | 
			
		||||
 | 
			
		||||
        activity?.toast(R.string.update_check_look_for_updates)
 | 
			
		||||
 | 
			
		||||
        launchIO {
 | 
			
		||||
        launchNow {
 | 
			
		||||
            try {
 | 
			
		||||
                val result = updateChecker.checkForUpdate()
 | 
			
		||||
                launchUI {
 | 
			
		||||
                    when (result) {
 | 
			
		||||
                        is UpdateResult.NewUpdate<*> -> {
 | 
			
		||||
                            val body = result.release.info
 | 
			
		||||
                            val url = result.release.downloadLink
 | 
			
		||||
                when (val result = updateChecker.checkForUpdate()) {
 | 
			
		||||
                    is UpdateResult.NewUpdate<*> -> {
 | 
			
		||||
                        val body = result.release.info
 | 
			
		||||
                        val url = result.release.downloadLink
 | 
			
		||||
 | 
			
		||||
                            // Create confirmation window
 | 
			
		||||
                            NewUpdateDialogController(body, url).showDialog(router)
 | 
			
		||||
                        }
 | 
			
		||||
                        is UpdateResult.NoNewUpdate -> {
 | 
			
		||||
                            activity?.toast(R.string.update_check_no_new_updates)
 | 
			
		||||
                        }
 | 
			
		||||
                        // Create confirmation window
 | 
			
		||||
                        NewUpdateDialogController(body, url).showDialog(router)
 | 
			
		||||
                    }
 | 
			
		||||
                    is UpdateResult.NoNewUpdate -> {
 | 
			
		||||
                        activity?.toast(R.string.update_check_no_new_updates)
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            } catch (error: Exception) {
 | 
			
		||||
                launchUI {
 | 
			
		||||
                    activity?.toast(error.message)
 | 
			
		||||
                    Timber.e(error)
 | 
			
		||||
                }
 | 
			
		||||
                activity?.toast(error.message)
 | 
			
		||||
                Timber.e(error)
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user