feat(settings): Smooth theme transitions (#514)

This commit is contained in:
Sadwhy 2024-11-08 16:24:19 +06:00 committed by GitHub
parent b703337a16
commit 95b558118a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 4 deletions

View file

@ -314,6 +314,7 @@ fun Activity.reloadActivity() {
Refresh.all() Refresh.all()
finish() finish()
startActivity(Intent(this, this::class.java)) startActivity(Intent(this, this::class.java))
overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
initActivity(this) initActivity(this)
} }

View file

@ -4,6 +4,8 @@ import android.content.ComponentName
import android.content.Intent import android.content.Intent
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
@ -16,7 +18,6 @@ import ani.dantotsu.databinding.ActivitySettingsThemeBinding
import ani.dantotsu.initActivity import ani.dantotsu.initActivity
import ani.dantotsu.navBarHeight import ani.dantotsu.navBarHeight
import ani.dantotsu.reloadActivity import ani.dantotsu.reloadActivity
import ani.dantotsu.restartApp
import ani.dantotsu.settings.saving.PrefManager import ani.dantotsu.settings.saving.PrefManager
import ani.dantotsu.settings.saving.PrefName import ani.dantotsu.settings.saving.PrefName
import ani.dantotsu.statusBarHeight import ani.dantotsu.statusBarHeight
@ -73,7 +74,7 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
previous = current previous = current
current.alpha = 1f current.alpha = 1f
PrefManager.setVal(PrefName.DarkMode, mode) PrefManager.setVal(PrefName.DarkMode, mode)
reloadActivity() reload()
} }
settingsUiAuto.setOnClickListener { settingsUiAuto.setOnClickListener {
@ -210,7 +211,9 @@ class SettingsThemeActivity : AppCompatActivity(), SimpleDialog.OnDialogResultLi
fun reload() { fun reload() {
PrefManager.setCustomVal("reload", true) PrefManager.setCustomVal("reload", true)
restartApp() Handler(Looper.getMainLooper()).postDelayed({
reloadActivity()
finishAndRemoveTask()
}, 100)
} }
} }