better error handling + organize imports
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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}"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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.*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user