Commit 32e7d8d2 authored by Mygod's avatar Mygod

Fix direct boot yet again

parent 6bce1366
......@@ -37,7 +37,6 @@ import android.os.UserManager
import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat
import androidx.core.content.getSystemService
import androidx.work.Configuration
import com.crashlytics.android.Crashlytics
import com.github.shadowsocks.acl.Acl
import com.github.shadowsocks.aidl.ShadowsocksConnection
......@@ -56,14 +55,14 @@ import java.io.File
import java.io.IOException
import kotlin.reflect.KClass
object Core : Configuration.Provider {
object Core {
const val TAG = "Core"
lateinit var app: Application
lateinit var configureIntent: (Context) -> PendingIntent
val connectivity by lazy { app.getSystemService<ConnectivityManager>()!! }
val packageInfo: PackageInfo by lazy { getPackageInfo(app.packageName) }
val deviceStorage by lazy { if (Build.VERSION.SDK_INT < 24) app else DeviceStorageApp(app) }
val deviceStorage by lazy { DeviceStorageApp(app) }
val analytics: FirebaseAnalytics by lazy { FirebaseAnalytics.getInstance(deviceStorage) }
val directBootSupported by lazy {
Build.VERSION.SDK_INT >= 24 && app.getSystemService<DevicePolicyManager>()?.storageEncryptionStatus ==
......@@ -84,7 +83,7 @@ object Core : Configuration.Provider {
return result
}
fun <T> init(app: T, configureClass: KClass<out Any>) where T : Application, T : Configuration.Provider {
fun init(app: Application, configureClass: KClass<out Any>) {
this.app = app
this.configureIntent = {
PendingIntent.getActivity(it, 0, Intent(it, configureClass.java)
......@@ -137,8 +136,6 @@ object Core : Configuration.Provider {
}
}
override fun getWorkManagerConfiguration() = Configuration.Builder().build()
fun getPackageInfo(packageName: String) = app.packageManager.getPackageInfo(packageName,
if (Build.VERSION.SDK_INT >= 28) PackageManager.GET_SIGNING_CERTIFICATES
else @Suppress("DEPRECATION") PackageManager.GET_SIGNATURES)!!
......
......@@ -21,15 +21,15 @@
package com.github.shadowsocks.utils
import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.app.Application
import android.content.Context
import android.os.Build
import androidx.work.Configuration
@SuppressLint("Registered")
@TargetApi(24)
class DeviceStorageApp(context: Context) : Application() {
class DeviceStorageApp(context: Context) : Application(), Configuration.Provider {
init {
attachBaseContext(context.createDeviceProtectedStorageContext())
attachBaseContext(if (Build.VERSION.SDK_INT >= 24) context.createDeviceProtectedStorageContext() else context)
}
/**
......@@ -37,4 +37,6 @@ class DeviceStorageApp(context: Context) : Application() {
* protected storage.
*/
override fun getApplicationContext() = this
override fun getWorkManagerConfiguration() = Configuration.Builder().build()
}
......@@ -21,17 +21,17 @@
package com.github.shadowsocks
import android.app.Application
import android.content.res.Configuration
import androidx.appcompat.app.AppCompatDelegate
import androidx.work.Configuration
class App : Application(), Configuration.Provider by Core {
class App : Application() {
override fun onCreate() {
super.onCreate()
Core.init(this, MainActivity::class)
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
}
override fun onConfigurationChanged(newConfig: android.content.res.Configuration) {
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
Core.updateNotificationChannels()
}
......
......@@ -21,16 +21,16 @@
package com.github.shadowsocks.tv
import android.app.Application
import androidx.work.Configuration
import android.content.res.Configuration
import com.github.shadowsocks.Core
class App : Application(), Configuration.Provider by Core {
class App : Application() {
override fun onCreate() {
super.onCreate()
Core.init(this, MainActivity::class)
}
override fun onConfigurationChanged(newConfig: android.content.res.Configuration) {
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
Core.updateNotificationChannels()
}
......
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