aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt
diff options
context:
space:
mode:
authorHarsh Shandilya <me@msfjarvis.dev>2020-03-20 20:06:48 +0530
committerJason A. Donenfeld <Jason@zx2c4.com>2020-03-20 22:22:56 -0600
commit04d0b819f60588bed60d8ccaf23b523c92fe2168 (patch)
treed9ea495d597a2a93bba6bf87fcd3f908396d1816 /ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt
parentAddTunnels: rearrange and relabel (diff)
downloadwireguard-android-04d0b819f60588bed60d8ccaf23b523c92fe2168.tar.xz
wireguard-android-04d0b819f60588bed60d8ccaf23b523c92fe2168.zip
Convert activity package to Kotlin
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
Diffstat (limited to 'ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt')
-rw-r--r--ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt42
1 files changed, 42 insertions, 0 deletions
diff --git a/ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt b/ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt
new file mode 100644
index 00000000..bd124cbc
--- /dev/null
+++ b/ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright © 2017-2019 WireGuard LLC. All Rights Reserved.
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package com.wireguard.android.activity
+
+import android.content.SharedPreferences
+import android.content.SharedPreferences.OnSharedPreferenceChangeListener
+import android.os.Build
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.app.AppCompatDelegate
+import com.wireguard.android.Application
+
+abstract class ThemeChangeAwareActivity : AppCompatActivity(), OnSharedPreferenceChangeListener {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
+ Application.getSharedPreferences().registerOnSharedPreferenceChangeListener(this)
+ }
+ }
+
+ override fun onDestroy() {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
+ Application.getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this)
+ }
+ super.onDestroy()
+ }
+
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
+ when (key) {
+ "dark_theme" -> {
+ AppCompatDelegate.setDefaultNightMode(if (sharedPreferences.getBoolean(key, false)) {
+ AppCompatDelegate.MODE_NIGHT_YES
+ } else {
+ AppCompatDelegate.MODE_NIGHT_NO
+ })
+ recreate()
+ }
+ }
+ }
+}