Commit 32e7d8d2 authored by Mygod's avatar Mygod

Fix direct boot yet again

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