commit b4cc0b4c94675fe80ec742b4cfbcfbe216bc8395 parent 03f67150eecda7aeccc8cc1aa28ea3e91897ac33 Author: rhunk <101876869+rhunk@users.noreply.github.com> Date: Mon, 15 May 2023 19:07:38 +0200 better error handling + organize imports Diffstat:
11 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ModContext.kt @@ -89,6 +89,10 @@ class ModContext { exitProcess(0) } + fun delayForceCloseApp(delay: Long) = Handler(Looper.getMainLooper()).postDelayed({ + forceCloseApp() + }, delay) + fun forceCloseApp() { Process.killProcess(Process.myPid()) exitProcess(1) diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/bridge/service/BridgeService.kt b/app/src/main/kotlin/me/rhunk/snapenhance/bridge/service/BridgeService.kt @@ -32,7 +32,7 @@ class BridgeService : Service() { runCatching { this@BridgeService.handleMessage(msg) }.onFailure { - Logger.error("Failed to handle message", it) + Logger.xposedLog("Failed to handle message", it) } } }).binder @@ -75,7 +75,7 @@ class BridgeService : Service() { } } - else -> Logger.error("Unknown message type: " + msg.what) + else -> Logger.xposedLog("Unknown message type: " + msg.what) } } @@ -103,7 +103,7 @@ class BridgeService : Service() { reply(MessageLoggerResult(state, message).toMessage(BridgeMessageType.MESSAGE_LOGGER_RESULT.value)) } else -> { - Logger.error(Exception("Unknown message logger action: ${msg.action}")) + Logger.xposedLog(Exception("Unknown message logger action: ${msg.action}")) } } diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt b/app/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt @@ -2,7 +2,6 @@ package me.rhunk.snapenhance.database import android.annotation.SuppressLint import android.database.sqlite.SQLiteDatabase -import de.robv.android.xposed.XposedBridge import me.rhunk.snapenhance.Logger import me.rhunk.snapenhance.ModContext import me.rhunk.snapenhance.database.objects.* diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/downloader/MediaDownloader.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/downloader/MediaDownloader.kt @@ -7,7 +7,6 @@ import android.media.MediaScannerConnection import android.net.Uri import android.widget.ImageView import com.arthenica.ffmpegkit.FFmpegKit -import de.robv.android.xposed.XposedBridge import me.rhunk.snapenhance.Constants import me.rhunk.snapenhance.Constants.ARROYO_URL_KEY_PROTO_PATH import me.rhunk.snapenhance.Logger diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/extras/Notifications.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/extras/Notifications.kt @@ -127,7 +127,7 @@ class Notifications : Feature("Notifications", loadParams = FeatureLoadParams.IN sendNotificationData(notificationData.copy(id = System.nanoTime().toInt(), notification = notificationBuilder.build())) return@onEach }.onFailure { - Logger.error("Failed to send preview notification", it) + Logger.xposedLog("Failed to send preview notification", it) } } } diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/spy/MessageLogger.kt @@ -9,7 +9,6 @@ import me.rhunk.snapenhance.features.Feature import me.rhunk.snapenhance.features.FeatureLoadParams import me.rhunk.snapenhance.hook.HookStage import me.rhunk.snapenhance.hook.Hooker -import me.rhunk.snapenhance.util.getObjectField class MessageLogger : Feature("MessageLogger", loadParams = FeatureLoadParams.INIT_SYNC) { private val messageCache = mutableMapOf<Long, String>() diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/ui/menus/impl/FriendFeedInfoMenu.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/ui/menus/impl/FriendFeedInfoMenu.kt @@ -13,7 +13,6 @@ import android.widget.Button import android.widget.CompoundButton import android.widget.Switch import android.widget.Toast -import de.robv.android.xposed.XposedBridge import me.rhunk.snapenhance.Logger import me.rhunk.snapenhance.config.ConfigProperty import me.rhunk.snapenhance.data.ContentType diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/ui/menus/impl/OperaContextActionMenu.kt b/app/src/main/kotlin/me/rhunk/snapenhance/features/impl/ui/menus/impl/OperaContextActionMenu.kt @@ -7,7 +7,6 @@ import android.view.ViewGroup import android.widget.Button import android.widget.LinearLayout import android.widget.ScrollView -import de.robv.android.xposed.XposedBridge import me.rhunk.snapenhance.Constants import me.rhunk.snapenhance.Logger import me.rhunk.snapenhance.features.impl.downloader.MediaDownloader diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/manager/impl/MappingManager.kt b/app/src/main/kotlin/me/rhunk/snapenhance/manager/impl/MappingManager.kt @@ -18,7 +18,6 @@ import me.rhunk.snapenhance.mapping.impl.EnumMapper import me.rhunk.snapenhance.mapping.impl.OperaPageViewControllerMapper import me.rhunk.snapenhance.mapping.impl.PlusSubscriptionMapper import me.rhunk.snapenhance.util.getObjectField -import java.io.FileNotFoundException import java.nio.charset.StandardCharsets import java.util.concurrent.ConcurrentHashMap @@ -45,11 +44,9 @@ class MappingManager(private val context: ModContext) : Manager { runCatching { loadCached() }.onFailure { - if (it is FileNotFoundException) { - Logger.xposedLog(it) - context.forceCloseApp() - } - Logger.error("Failed to load cached mappings", it) + context.shortToast("Failed to load cached mappings ${it.message}") + Logger.xposedLog(it) + context.delayForceCloseApp(1000) } if (snapBuildNumber != currentBuildNumber) { @@ -58,7 +55,15 @@ class MappingManager(private val context: ModContext) : Manager { } return } - refresh() + runCatching { + refresh() + }.onSuccess { + context.shortToast("Generated mappings for build $snapBuildNumber") + }.onFailure { + context.shortToast("Failed to generate mappings ${it.message}") + Logger.xposedLog(it) + context.delayForceCloseApp(1000) + } } private fun loadCached() { @@ -96,7 +101,7 @@ class MappingManager(private val context: ModContext) : Manager { runCatching { mapper.useClasses(context.androidContext.classLoader, classes, mappings) }.onFailure { - Logger.error("Failed to execute mapper ${mapper.javaClass.simpleName}", it) + Logger.xposedLog("Failed to execute mapper ${mapper.javaClass.simpleName}", it) } }.also { jobs.add(it) } } @@ -105,7 +110,6 @@ class MappingManager(private val context: ModContext) : Manager { @Suppress("UNCHECKED_CAST", "DEPRECATION") private fun refresh() { - context.shortToast("Loading mappings (this may take a while)") val classes: MutableList<Class<*>> = ArrayList() val classLoader = context.androidContext.classLoader diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/PlusSubscriptionMapper.kt b/app/src/main/kotlin/me/rhunk/snapenhance/mapping/impl/PlusSubscriptionMapper.kt @@ -1,6 +1,5 @@ package me.rhunk.snapenhance.mapping.impl -import me.rhunk.snapenhance.Logger import me.rhunk.snapenhance.mapping.Mapper import java.lang.reflect.Field import java.lang.reflect.Method @@ -25,7 +24,6 @@ class PlusSubscriptionMapper : Mapper() { val plusSubscriptionStateClass = loadSubscriptionMethod.parameterTypes[0] //get the first param of the constructor of PlusSubscriptionState which is the SubscriptionInfo class val subscriptionInfoClass = plusSubscriptionStateClass.constructors[0].parameterTypes[0] - Logger.debug("subscriptionInfoClass ${subscriptionInfoClass.name}") mappings["SubscriptionInfoClass"] = subscriptionInfoClass.name } diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/util/download/DownloadServer.kt b/app/src/main/kotlin/me/rhunk/snapenhance/util/download/DownloadServer.kt @@ -1,6 +1,5 @@ package me.rhunk.snapenhance.util.download -import de.robv.android.xposed.XposedBridge import me.rhunk.snapenhance.Logger import me.rhunk.snapenhance.Logger.debug import me.rhunk.snapenhance.ModContext