diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2020-03-20 20:06:48 +0530 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2020-03-20 22:22:56 -0600 |
commit | 04d0b819f60588bed60d8ccaf23b523c92fe2168 (patch) | |
tree | d9ea495d597a2a93bba6bf87fcd3f908396d1816 /ui/src/main/java/com/wireguard/android/activity/ThemeChangeAwareActivity.kt | |
parent | AddTunnels: rearrange and relabel (diff) | |
download | wireguard-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.kt | 42 |
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() + } + } + } +} |