@@ -21,14 +21,14 @@ import android.os.SystemClock
2121import android.util.Log
2222import androidx.annotation.StyleRes
2323import androidx.appcompat.app.AppCompatActivity
24+ import androidx.appcompat.view.ContextThemeWrapper
2425import androidx.core.app.NotificationManagerCompat
2526import androidx.emoji2.text.DefaultEmojiCompatConfig
2627import androidx.emoji2.text.EmojiCompat
2728import androidx.security.crypto.EncryptedSharedPreferences
2829import androidx.security.crypto.MasterKey
2930import androidx.work.Configuration
3031import com.fox2code.foxcompat.app.internal.FoxProcessExt
31- import com.fox2code.foxcompat.view.FoxThemeWrapper
3232import com.fox2code.mmm.installer.InstallerInitializer
3333import com.fox2code.mmm.installer.InstallerInitializer.Companion.peekMagiskVersion
3434import com.fox2code.mmm.manager.LocalModuleInfo
@@ -75,9 +75,26 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
7575
7676 @StyleRes
7777 private var managerThemeResId = R .style.Theme_MagiskModuleManager
78- private var markwonThemeContext: FoxThemeWrapper ? = null
78+ private var markwonThemeContext: ContextThemeWrapper ? = null
7979
8080 var markwon: Markwon ? = null
81+ get() {
82+ if (isCrashHandler) return null
83+ if (field != null ) return field
84+ var contextThemeWrapper = markwonThemeContext
85+ if (contextThemeWrapper == null ) {
86+ markwonThemeContext = ContextThemeWrapper (this , managerThemeResId)
87+ contextThemeWrapper = markwonThemeContext
88+ }
89+ field = Markwon .builder(contextThemeWrapper!! ).usePlugin(HtmlPlugin .create()).usePlugin(
90+ ImagesPlugin .create().addSchemeHandler(
91+ OkHttpNetworkSchemeHandler .create(
92+ getHttpClientWithCache()!!
93+ )
94+ )
95+ ).build()
96+ return field
97+ }
8198 private var existingKey: CharArray? = null
8299
83100 var tracker: Tracker ? = null
@@ -134,25 +151,6 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
134151 return existingKey!!
135152 }
136153
137- fun reallyGetMarkwon (): Markwon ? {
138- if (isCrashHandler) return null
139- if (markwon != null ) return markwon
140- var contextThemeWrapper = markwonThemeContext
141- if (contextThemeWrapper == null ) {
142- markwonThemeContext = FoxThemeWrapper (this , managerThemeResId)
143- contextThemeWrapper = markwonThemeContext
144- }
145- this .markwon =
146- Markwon .builder(contextThemeWrapper!! ).usePlugin(HtmlPlugin .create()).usePlugin(
147- ImagesPlugin .create().addSchemeHandler(
148- OkHttpNetworkSchemeHandler .create(
149- getHttpClientWithCache()!!
150- )
151- )
152- ).build()
153- return reallyGetMarkwon().also { this .markwon = it }
154- }
155-
156154 override fun getWorkManagerConfiguration (): Configuration {
157155 return Configuration .Builder ().build()
158156 }
@@ -206,12 +204,7 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
206204
207205 val isLightTheme: Boolean
208206 get() = when (managerThemeResId) {
209- R .style.Theme_MagiskModuleManager ,
210- R .style.Theme_MagiskModuleManager_Monet ,
211- R .style.Theme_MagiskModuleManager_Dark ,
212- R .style.Theme_MagiskModuleManager_Monet_Dark ,
213- R .style.Theme_MagiskModuleManager_Black ,
214- R .style.Theme_MagiskModuleManager_Monet_Black -> false
207+ R .style.Theme_MagiskModuleManager , R .style.Theme_MagiskModuleManager_Monet , R .style.Theme_MagiskModuleManager_Dark , R .style.Theme_MagiskModuleManager_Monet_Dark , R .style.Theme_MagiskModuleManager_Black , R .style.Theme_MagiskModuleManager_Monet_Black -> false
215208
216209 else -> true
217210 }
@@ -346,7 +339,6 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
346339 Timber .w(" ANDROIDACY_CLIENT_ID is empty, disabling AndroidacyRepoData 1" )
347340 editor.apply ()
348341 }
349- reallyGetMarkwon()
350342 }
351343
352344 private val intent: Intent ?
@@ -509,8 +501,10 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
509501 var updateCheckBg: String? = null
510502
511503 init {
512- Shell .setDefaultBuilder(Shell .Builder .create()
513- .setFlags(Shell .FLAG_REDIRECT_STDERR or Shell .FLAG_MOUNT_MASTER ).setTimeout(15 ))
504+ Shell .setDefaultBuilder(
505+ Shell .Builder .create()
506+ .setFlags(Shell .FLAG_REDIRECT_STDERR or Shell .FLAG_MOUNT_MASTER ).setTimeout(15 )
507+ )
514508 // set verbose logging for debug builds
515509 if (BuildConfig .DEBUG ) {
516510 Shell .enableVerboseLogging = true
@@ -609,28 +603,28 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
609603 get() = getSharedPreferences(" mmm" )!! .getBoolean(" pref_dns_over_https" , true )
610604 val isMonetEnabled: Boolean
611605 get() = Build .VERSION .SDK_INT >= Build .VERSION_CODES .S && getSharedPreferences(" mmm" )!! .getBoolean(
612- " pref_enable_monet" ,
613- true
606+ " pref_enable_monet" , true
614607 )
615608 val isBlurEnabled: Boolean
616609 get() = getSharedPreferences(" mmm" )!! .getBoolean(" pref_enable_blur" , false )
617610
618611 val isDeveloper: Boolean
619612 get() {
620613 return if (BuildConfig .DEBUG ) true else getSharedPreferences(" mmm" )!! .getBoolean(
621- " developer" ,
622- false
614+ " developer" , false
623615 )
624616 }
625617 val isDisableLowQualityModuleFilter: Boolean
626618 get() = getSharedPreferences(" mmm" )!! .getBoolean(
627- " pref_disable_low_quality_module_filter" ,
628- false
619+ " pref_disable_low_quality_module_filter" , false
629620 ) && isDeveloper
630621 val isUsingMagiskCommand: Boolean
631622 get() = (peekMagiskVersion() >= Constants .MAGISK_VER_CODE_INSTALL_COMMAND ) && getSharedPreferences(
632623 " mmm"
633- )!! .getBoolean(" pref_use_magisk_install_command" , false ) && isDeveloper && ! InstallerInitializer .isKsu
624+ )!! .getBoolean(
625+ " pref_use_magisk_install_command" ,
626+ false
627+ ) && isDeveloper && ! InstallerInitializer .isKsu
634628
635629 val isBackgroundUpdateCheckEnabled: Boolean
636630 get() {
@@ -639,16 +633,14 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
639633 }
640634 val wrapped = isWrapped
641635 val updateCheckBgTemp = ! wrapped && getSharedPreferences(" mmm" )!! .getBoolean(
642- " pref_background_update_check" ,
643- true
636+ " pref_background_update_check" , true
644637 )
645638 updateCheckBg = updateCheckBgTemp.toString()
646639 return java.lang.Boolean .parseBoolean(updateCheckBg)
647640 }
648641 val isAndroidacyTestMode: Boolean
649642 get() = isDeveloper && getSharedPreferences(" mmm" )!! .getBoolean(
650- " pref_androidacy_test_mode" ,
651- false
643+ " pref_androidacy_test_mode" , false
652644 )
653645
654646 fun setHasGottenRootAccess (bool : Boolean ) {
@@ -657,8 +649,7 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
657649
658650 val isCrashReportingEnabled: Boolean
659651 get() = SentryMain .IS_SENTRY_INSTALLED && getSharedPreferences(" mmm" )!! .getBoolean(
660- " pref_crash_reporting" ,
661- BuildConfig .DEFAULT_ENABLE_CRASH_REPORTING
652+ " pref_crash_reporting" , BuildConfig .DEFAULT_ENABLE_CRASH_REPORTING
662653 )
663654 val bootSharedPreferences: SharedPreferences ?
664655 get() = getSharedPreferences(" mmm_boot" )
@@ -673,8 +664,7 @@ class MainApplication : Application(), Configuration.Provider, ActivityLifecycle
673664
674665 fun isMatomoAllowed (): Boolean {
675666 return getSharedPreferences(" mmm" )!! .getBoolean(
676- " pref_analytics_enabled" ,
677- BuildConfig .DEFAULT_ENABLE_ANALYTICS
667+ " pref_analytics_enabled" , BuildConfig .DEFAULT_ENABLE_ANALYTICS
678668 )
679669 }
680670 }
0 commit comments