better error handling + organize imports

This commit is contained in:
rhunk
2023-05-15 19:07:38 +02:00
parent 03f67150ee
commit b4cc0b4c94
11 changed files with 21 additions and 21 deletions

View File

@@ -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)

View File

@@ -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}"))
}
}

View File

@@ -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.*

View File

@@ -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

View File

@@ -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)
}
}
}

View File

@@ -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>()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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
}

View File

@@ -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