Cleanup stuffs

This commit is contained in:
topjohnwu 2020-02-22 01:28:33 -08:00
parent 581419b6a3
commit c6b3f06b95
8 changed files with 33 additions and 84 deletions

View File

@ -32,7 +32,7 @@ android {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro', 'proguard-kotlin.pro'
'proguard-rules.pro'
}
}

View File

@ -1,20 +0,0 @@
## So every class is case insensitive to avoid some bizare problems
-dontusemixedcaseclassnames
## If reflection issues come up uncomment this, that should temporarily fix it
#-keep class kotlin.** { *; }
#-keep class kotlin.Metadata { *; }
#-keepclassmembers class kotlin.Metadata {
# public <methods>;
#}
## Never warn about Kotlin, it should work as-is
-dontwarn kotlin.**
## Removes runtime null checks - doesn't really matter if it crashes on kotlin or java NPE
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
}
## Useless option for dex
-dontpreverify

View File

@ -16,6 +16,15 @@
# public *;
#}
# Kotlin
-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
public static void checkExpressionValueIsNotNull(...);
public static void checkNotNullExpressionValue(...);
public static void checkReturnedValueIsNotNull(...);
public static void checkFieldIsNotNull(...);
public static void checkParameterIsNotNull(...);
}
# Stubs
-keep class a.* { *; }

View File

@ -1,15 +0,0 @@
package a;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.work.WorkerParameters;
import com.topjohnwu.magisk.core.UpdateCheckService;
public class g extends w<UpdateCheckService> {
/* Stub */
public g(@NonNull Context context, @NonNull WorkerParameters workerParams) {
super(context, workerParams);
}
}

View File

@ -1,17 +1,12 @@
package a
import android.content.Context
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.topjohnwu.magisk.core.App
import com.topjohnwu.magisk.core.GeneralReceiver
import com.topjohnwu.magisk.core.SplashActivity
import com.topjohnwu.magisk.core.base.BaseWorkerWrapper
import com.topjohnwu.magisk.core.download.DownloadService
import com.topjohnwu.magisk.legacy.flash.FlashActivity
import com.topjohnwu.magisk.legacy.surequest.SuRequestActivity
import com.topjohnwu.magisk.ui.MainActivity
import java.lang.reflect.ParameterizedType
class b : MainActivity()
@ -29,27 +24,3 @@ class h : GeneralReceiver()
class j : DownloadService()
class m : SuRequestActivity()
/**
* Wrapper class to workaround Proguard rule :
* -keep class * extends Worker
* */
abstract class w<T : BaseWorkerWrapper>(
context: Context,
workerParams: WorkerParameters
) : Worker(context, workerParams) {
private var base: T? = null
override fun doWork() = base?.doWork() ?: Result.failure()
override fun onStopped() = base?.onStopped() ?: Unit
init {
try {
base = ((javaClass.genericSuperclass as ParameterizedType)
.actualTypeArguments[0] as Class<T>).newInstance()
base?.attachWorker(this)
} catch (e : java.lang.Exception) {}
}
}

View File

@ -147,7 +147,6 @@ object ClassMap {
MainActivity::class.java to a.b::class.java,
SplashActivity::class.java to a.c::class.java,
FlashActivity::class.java to a.f::class.java,
UpdateCheckService::class.java to a.g::class.java,
GeneralReceiver::class.java to a.h::class.java,
DownloadService::class.java to a.j::class.java,
SuRequestActivity::class.java to a.m::class.java,

View File

@ -1,18 +1,20 @@
package com.topjohnwu.magisk.core
import androidx.work.ListenableWorker
import android.content.Context
import androidx.work.Worker
import androidx.work.WorkerParameters
import com.topjohnwu.magisk.BuildConfig
import com.topjohnwu.magisk.core.base.BaseWorkerWrapper
import com.topjohnwu.magisk.core.view.Notifications
import com.topjohnwu.magisk.data.repository.MagiskRepository
import com.topjohnwu.magisk.extensions.inject
import com.topjohnwu.superuser.Shell
class UpdateCheckService : BaseWorkerWrapper() {
class UpdateCheckService(context: Context, workerParams: WorkerParameters)
: Worker(context, workerParams) {
private val magiskRepo: MagiskRepository by inject()
override fun doWork(): ListenableWorker.Result {
override fun doWork(): Result {
// Make sure shell initializer was ran
Shell.getShell()
return runCatching {
@ -21,9 +23,9 @@ class UpdateCheckService : BaseWorkerWrapper() {
Notifications.managerUpdate(applicationContext)
else if (Info.env.magiskVersionCode < Info.remote.magisk.versionCode)
Notifications.magiskUpdate(applicationContext)
ListenableWorker.Result.success()
Result.success()
}.getOrElse {
ListenableWorker.Result.failure()
Result.failure()
}
}
}

View File

@ -7,9 +7,11 @@ import android.net.Uri
import android.os.Environment
import android.widget.Toast
import androidx.work.*
import com.topjohnwu.magisk.BuildConfig
import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.core.*
import com.topjohnwu.magisk.core.Config
import com.topjohnwu.magisk.core.Const
import com.topjohnwu.magisk.core.Info
import com.topjohnwu.magisk.core.UpdateCheckService
import com.topjohnwu.magisk.extensions.get
import com.topjohnwu.superuser.internal.UiThreadHandler
import java.io.File
@ -38,19 +40,20 @@ object Utils {
fun scheduleUpdateCheck(context: Context) {
if (Config.checkUpdate) {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresDeviceIdle(true)
.build()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresDeviceIdle(true)
.build()
val request = PeriodicWorkRequest
.Builder(ClassMap[UpdateCheckService::class.java] as Class<Worker>, 12, TimeUnit.HOURS)
.setConstraints(constraints)
.build()
.Builder(UpdateCheckService::class.java, 12, TimeUnit.HOURS)
.setConstraints(constraints)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID,
ExistingPeriodicWorkPolicy.REPLACE, request)
Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID,
ExistingPeriodicWorkPolicy.REPLACE, request
)
} else {
WorkManager.getInstance(context)
.cancelUniqueWork(Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID)
.cancelUniqueWork(Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID)
}
}
@ -67,7 +70,7 @@ object Utils {
}
}
fun ensureDownloadPath(path : String) =
fun ensureDownloadPath(path: String) =
File(Environment.getExternalStorageDirectory(), path).run {
if ((exists() && isDirectory) || mkdirs()) this else null
}