Commit 5b28a713 authored by topjohnwu's avatar topjohnwu

Move functions around

parent f1fb7404
...@@ -140,10 +140,10 @@ dependencies { ...@@ -140,10 +140,10 @@ dependencies {
implementation("androidx.preference:preference:1.1.1") implementation("androidx.preference:preference:1.1.1")
implementation("androidx.recyclerview:recyclerview:1.1.0") implementation("androidx.recyclerview:recyclerview:1.1.0")
implementation("androidx.fragment:fragment-ktx:1.2.5") implementation("androidx.fragment:fragment-ktx:1.2.5")
implementation("androidx.work:work-runtime-ktx:2.3.4") implementation("androidx.work:work-runtime-ktx:2.4.0")
implementation("androidx.transition:transition:1.3.1") implementation("androidx.transition:transition:1.3.1")
implementation("androidx.multidex:multidex:2.0.1") implementation("androidx.multidex:multidex:2.0.1")
implementation("androidx.core:core-ktx:1.3.0") implementation("androidx.core:core-ktx:1.3.1")
implementation("androidx.localbroadcastmanager:localbroadcastmanager:1.0.0") implementation("androidx.localbroadcastmanager:localbroadcastmanager:1.0.0")
implementation("com.google.android.material:material:1.2.0-beta01") implementation("com.google.android.material:material:1.2.0-rc01")
} }
...@@ -30,6 +30,6 @@ repositories { ...@@ -30,6 +30,6 @@ repositories {
dependencies { dependencies {
implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar")))) implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
api("org.bouncycastle:bcprov-jdk15on:1.65.01") api("org.bouncycastle:bcprov-jdk15on:1.66")
api("org.bouncycastle:bcpkix-jdk15on:1.65") api("org.bouncycastle:bcpkix-jdk15on:1.66")
} }
...@@ -5,7 +5,6 @@ import android.content.Context ...@@ -5,7 +5,6 @@ import android.content.Context
import android.os.Bundle import android.os.Bundle
import com.topjohnwu.magisk.BuildConfig import com.topjohnwu.magisk.BuildConfig
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.core.utils.Utils
import com.topjohnwu.magisk.core.view.Notifications import com.topjohnwu.magisk.core.view.Notifications
import com.topjohnwu.magisk.core.view.Shortcuts import com.topjohnwu.magisk.core.view.Shortcuts
import com.topjohnwu.magisk.data.network.GithubRawServices import com.topjohnwu.magisk.data.network.GithubRawServices
...@@ -52,7 +51,7 @@ open class SplashActivity : Activity() { ...@@ -52,7 +51,7 @@ open class SplashActivity : Activity() {
Config.initialize() Config.initialize()
handleRepackage() handleRepackage()
Notifications.setup(this) Notifications.setup(this)
Utils.scheduleUpdateCheck(this) UpdateCheckService.schedule(this)
Shortcuts.setup(this) Shortcuts.setup(this)
// Pre-fetch network stuffs // Pre-fetch network stuffs
......
package com.topjohnwu.magisk.core package com.topjohnwu.magisk.core
import android.content.Context import android.content.Context
import androidx.work.CoroutineWorker import androidx.work.*
import androidx.work.WorkerParameters
import com.topjohnwu.magisk.BuildConfig import com.topjohnwu.magisk.BuildConfig
import com.topjohnwu.magisk.core.view.Notifications import com.topjohnwu.magisk.core.view.Notifications
import com.topjohnwu.magisk.data.repository.MagiskRepository import com.topjohnwu.magisk.data.repository.MagiskRepository
...@@ -11,6 +10,7 @@ import kotlinx.coroutines.Dispatchers ...@@ -11,6 +10,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.koin.core.KoinComponent import org.koin.core.KoinComponent
import org.koin.core.inject import org.koin.core.inject
import java.util.concurrent.TimeUnit
class UpdateCheckService(context: Context, workerParams: WorkerParameters) class UpdateCheckService(context: Context, workerParams: WorkerParameters)
: CoroutineWorker(context, workerParams), KoinComponent { : CoroutineWorker(context, workerParams), KoinComponent {
...@@ -30,4 +30,24 @@ class UpdateCheckService(context: Context, workerParams: WorkerParameters) ...@@ -30,4 +30,24 @@ class UpdateCheckService(context: Context, workerParams: WorkerParameters)
Result.success() Result.success()
} ?: Result.failure() } ?: Result.failure()
} }
companion object {
fun schedule(context: Context) {
if (Config.checkUpdate) {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresDeviceIdle(true)
.build()
val request = PeriodicWorkRequestBuilder<UpdateCheckService>(12, TimeUnit.HOURS)
.setConstraints(constraints)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID,
ExistingPeriodicWorkPolicy.REPLACE, request)
} else {
WorkManager.getInstance(context)
.cancelUniqueWork(Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID)
}
}
}
} }
...@@ -6,16 +6,13 @@ import android.content.res.Resources ...@@ -6,16 +6,13 @@ import android.content.res.Resources
import android.net.Uri import android.net.Uri
import android.os.Environment import android.os.Environment
import android.widget.Toast import android.widget.Toast
import androidx.work.*
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.core.Config import com.topjohnwu.magisk.core.Config
import com.topjohnwu.magisk.core.Const import com.topjohnwu.magisk.core.Const
import com.topjohnwu.magisk.core.Info import com.topjohnwu.magisk.core.Info
import com.topjohnwu.magisk.core.UpdateCheckService
import com.topjohnwu.magisk.ktx.get import com.topjohnwu.magisk.ktx.get
import com.topjohnwu.superuser.internal.UiThreadHandler import com.topjohnwu.superuser.internal.UiThreadHandler
import java.io.File import java.io.File
import java.util.concurrent.TimeUnit
object Utils { object Utils {
...@@ -37,26 +34,6 @@ object Utils { ...@@ -37,26 +34,6 @@ object Utils {
|| Config.suMultiuserMode != Config.Value.MULTIUSER_MODE_OWNER_MANAGED) || Config.suMultiuserMode != Config.Value.MULTIUSER_MODE_OWNER_MANAGED)
} }
fun scheduleUpdateCheck(context: Context) {
if (Config.checkUpdate) {
val constraints = Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.setRequiresDeviceIdle(true)
.build()
val request = PeriodicWorkRequest
.Builder(UpdateCheckService::class.java, 12, TimeUnit.HOURS)
.setConstraints(constraints)
.build()
WorkManager.getInstance(context).enqueueUniquePeriodicWork(
Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID,
ExistingPeriodicWorkPolicy.REPLACE, request
)
} else {
WorkManager.getInstance(context)
.cancelUniqueWork(Const.ID.CHECK_MAGISK_UPDATE_WORKER_ID)
}
}
fun openLink(context: Context, link: Uri) { fun openLink(context: Context, link: Uri) {
val intent = Intent(Intent.ACTION_VIEW, link) val intent = Intent(Intent.ACTION_VIEW, link)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
......
...@@ -11,6 +11,7 @@ import com.topjohnwu.magisk.R ...@@ -11,6 +11,7 @@ import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.core.Config import com.topjohnwu.magisk.core.Config
import com.topjohnwu.magisk.core.Const import com.topjohnwu.magisk.core.Const
import com.topjohnwu.magisk.core.Info import com.topjohnwu.magisk.core.Info
import com.topjohnwu.magisk.core.UpdateCheckService
import com.topjohnwu.magisk.core.utils.BiometricHelper import com.topjohnwu.magisk.core.utils.BiometricHelper
import com.topjohnwu.magisk.core.utils.Utils import com.topjohnwu.magisk.core.utils.Utils
import com.topjohnwu.magisk.core.utils.availableLocales import com.topjohnwu.magisk.core.utils.availableLocales
...@@ -154,7 +155,7 @@ object UpdateChecker : SettingsItem.Toggle() { ...@@ -154,7 +155,7 @@ object UpdateChecker : SettingsItem.Toggle() {
override var value = Config.checkUpdate override var value = Config.checkUpdate
set(value) = setV(value, field, { field = it }) { set(value) = setV(value, field, { field = it }) {
Config.checkUpdate = it Config.checkUpdate = it
Utils.scheduleUpdateCheck(get()) UpdateCheckService.schedule(get())
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment