@@ -21,7 +21,7 @@ import android.view.View
21
21
import android.widget.Toast
22
22
import androidx.activity.addCallback
23
23
import androidx.activity.result.contract.ActivityResultContracts
24
- import androidx.appcompat.app.AppCompatActivity
24
+ import androidx.appcompat.app.AppCompatDelegate
25
25
import androidx.core.content.ContextCompat
26
26
import androidx.core.content.getSystemService
27
27
import androidx.core.view.forEach
@@ -47,13 +47,14 @@ import com.wireguard.android.model.ObservableTunnel
47
47
import com.wireguard.android.util.ErrorMessages
48
48
import com.wireguard.android.util.QuantityFormatter
49
49
import com.wireguard.android.util.TunnelImporter
50
+ import com.wireguard.android.util.UserKnobs
50
51
import kotlinx.coroutines.Dispatchers
51
52
import kotlinx.coroutines.delay
52
53
import kotlinx.coroutines.launch
53
54
import kotlinx.coroutines.withContext
54
55
import java.io.File
55
56
56
- class TvMainActivity : AppCompatActivity () {
57
+ class TvMainActivity : ThemeChangeAwareActivity () {
57
58
private val tunnelFileImportResultLauncher = registerForActivityResult(object : ActivityResultContracts .GetContent () {
58
59
override fun createIntent (context : Context , input : String ): Intent {
59
60
val intent = super .createIntent(context, input)
@@ -110,6 +111,16 @@ class TvMainActivity : AppCompatActivity() {
110
111
private val filesRoot = ObservableField (" " )
111
112
112
113
override fun onCreate (savedInstanceState : Bundle ? ) {
114
+ if (AppCompatDelegate .getDefaultNightMode() != AppCompatDelegate .MODE_NIGHT_YES ) {
115
+ /* First set it this way to prevent a white flash. */
116
+ AppCompatDelegate .setDefaultNightMode(AppCompatDelegate .MODE_NIGHT_YES )
117
+ if (Build .VERSION .SDK_INT < Build .VERSION_CODES .Q ) {
118
+ /* Then update the preference, which triggers the recreation. */
119
+ lifecycleScope.launch {
120
+ UserKnobs .setDarkTheme(true )
121
+ }
122
+ }
123
+ }
113
124
super .onCreate(savedInstanceState)
114
125
binding = TvActivityBinding .inflate(layoutInflater)
115
126
lifecycleScope.launch {
0 commit comments