From 5b326da2f629c415e97a0a7437ccda39807fdc20 Mon Sep 17 00:00:00 2001 From: X1nto Date: Wed, 1 Jul 2020 21:52:56 +0400 Subject: [PATCH] exception handling test 5 --- .../core/downloader/MicrogDownloadService.kt | 15 +------ .../core/downloader/VancedDownloadService.kt | 15 ++----- .../com/vanced/manager/utils/InternetTools.kt | 43 +++++++++++++------ 3 files changed, 35 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/vanced/manager/core/downloader/MicrogDownloadService.kt b/app/src/main/java/com/vanced/manager/core/downloader/MicrogDownloadService.kt index b79c14d5..cbc200e1 100644 --- a/app/src/main/java/com/vanced/manager/core/downloader/MicrogDownloadService.kt +++ b/app/src/main/java/com/vanced/manager/core/downloader/MicrogDownloadService.kt @@ -14,6 +14,7 @@ import com.vanced.manager.R import com.vanced.manager.core.installer.AppInstaller import com.vanced.manager.ui.fragments.HomeFragment import com.vanced.manager.utils.InternetTools.getFileNameFromUrl +import com.vanced.manager.utils.InternetTools.getObjectFromJson import com.vanced.manager.utils.NotificationHelper import com.vanced.manager.utils.NotificationHelper.cancelNotif import com.vanced.manager.utils.NotificationHelper.createBasicNotif @@ -32,19 +33,7 @@ class MicrogDownloadService: Service() { private fun downloadMicrog() { val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE) - val apkUrl = - try { - GetJson().AsJSONObject("https://vanced.app/api/v1/microg.json").get("url").asString - } catch (e: ExecutionException) { - "" - } catch (e: InterruptedException) { - "" - } catch (e: IllegalStateException) { - "" - } catch (e: RuntimeException) { - "" - } - + val apkUrl = getObjectFromJson("https://vanced.app/api/v1/microg.json", "url") val channel = 420 PRDownloader.download(apkUrl, filesDir.path, "microg.apk") diff --git a/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloadService.kt b/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloadService.kt index afa37e94..34dc1477 100644 --- a/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloadService.kt +++ b/app/src/main/java/com/vanced/manager/core/downloader/VancedDownloadService.kt @@ -5,6 +5,7 @@ import android.content.Context import android.content.Intent import android.os.Build import android.os.IBinder +import android.widget.Toast import androidx.localbroadcastmanager.content.LocalBroadcastManager import androidx.preference.PreferenceManager import com.dezlum.codelabs.getjson.GetJson @@ -18,6 +19,7 @@ import com.vanced.manager.core.installer.SplitInstaller import com.vanced.manager.ui.fragments.HomeFragment import com.vanced.manager.utils.InternetTools.baseUrl import com.vanced.manager.utils.InternetTools.getFileNameFromUrl +import com.vanced.manager.utils.InternetTools.getObjectFromJson import com.vanced.manager.utils.NotificationHelper.cancelNotif import com.vanced.manager.utils.NotificationHelper.createBasicNotif import com.vanced.manager.utils.NotificationHelper.displayDownloadNotif @@ -38,18 +40,7 @@ class VancedDownloadService: Service() { type: String = "arch" ) { val baseUrl = PreferenceManager.getDefaultSharedPreferences(this).getString("install_url", baseUrl) - val vancedVer = - try { - GetJson().AsJSONObject("https://vanced.app/api/v1/vanced.json").get("url").asString - } catch (e: ExecutionException) { - "" - } catch (e: InterruptedException) { - "" - } catch (e: IllegalStateException) { - "" - } catch (e: RuntimeException) { - "" - } + val vancedVer = getObjectFromJson("https://vanced.app/api/v1/vanced.json", "version") val prefs = getSharedPreferences("installPrefs", Context.MODE_PRIVATE) val variant = PreferenceManager.getDefaultSharedPreferences(this).getString("vanced_variant", "nonroot") diff --git a/app/src/main/java/com/vanced/manager/utils/InternetTools.kt b/app/src/main/java/com/vanced/manager/utils/InternetTools.kt index 124bc443..bd3b0283 100644 --- a/app/src/main/java/com/vanced/manager/utils/InternetTools.kt +++ b/app/src/main/java/com/vanced/manager/utils/InternetTools.kt @@ -8,7 +8,6 @@ import androidx.preference.PreferenceManager import com.dezlum.codelabs.getjson.GetJson import com.vanced.manager.BuildConfig import com.vanced.manager.R -import java.lang.Exception import java.lang.IllegalStateException import java.lang.RuntimeException import java.util.concurrent.ExecutionException @@ -26,33 +25,51 @@ object InternetTools { fun displayJsonString(json: String, obj: String, context: Context): String { val installUrl = PreferenceManager.getDefaultSharedPreferences(context).getString("install_url", baseUrl) - return try { - GetJson().AsJSONObject("$installUrl/$json").get(obj).asString + try { + return GetJson().AsJSONObject("$installUrl/$json").get(obj).asString } catch (e: ExecutionException) { - context.getString(R.string.unavailable) + e.printStackTrace() } catch (e: InterruptedException) { - context.getString(R.string.unavailable) + e.printStackTrace() } catch (e: IllegalStateException) { - context.getString(R.string.unavailable) + e.printStackTrace() } catch (e: RuntimeException) { - context.getString(R.string.unavailable) + e.printStackTrace() } + return context.getString(R.string.unavailable) } fun displayJsonInt(json: String, obj: String, context: Context): Int { val installUrl = PreferenceManager.getDefaultSharedPreferences(context).getString("install_url", baseUrl) - return try { - GetJson().AsJSONObject("$installUrl/$json").get(obj).asInt + try { + return GetJson().AsJSONObject("$installUrl/$json").get(obj).asInt } catch (e: ExecutionException) { - 0 + e.printStackTrace() } catch (e: InterruptedException) { - 0 + e.printStackTrace() } catch (e: IllegalStateException) { - 0 + e.printStackTrace() } catch (e: RuntimeException) { - 0 + e.printStackTrace() + } + return 0 + + } + + fun getObjectFromJson(url: String, obj: String): String { + try { + return GetJson().AsJSONObject(url).get(obj).asString + } catch (e: ExecutionException) { + e.printStackTrace() + } catch (e: InterruptedException) { + e.printStackTrace() + } catch (e: IllegalStateException) { + e.printStackTrace() + } catch (e: RuntimeException) { + e.printStackTrace() } + return "" } fun isUpdateAvailable(): Boolean {