forked from stud179277/Timer
83 lines
3.9 KiB
Kotlin
83 lines
3.9 KiB
Kotlin
package com.example.timert
|
||
|
||
import android.content.Context
|
||
import android.content.pm.PackageManager
|
||
import android.os.Bundle
|
||
import android.widget.Switch
|
||
import android.widget.TextView
|
||
import androidx.appcompat.app.AppCompatActivity
|
||
import androidx.appcompat.app.AppCompatDelegate
|
||
import android.widget.Button
|
||
import androidx.appcompat.app.AlertDialog
|
||
import androidx.core.text.HtmlCompat
|
||
|
||
class SettingsActivity : AppCompatActivity() {
|
||
override fun onCreate(savedInstanceState: Bundle?) {
|
||
super.onCreate(savedInstanceState)
|
||
setContentView(R.layout.activity_settings2)
|
||
|
||
val versionTextView: TextView = findViewById(R.id.versionTextView)
|
||
val darkModeSwitch: Switch = findViewById(R.id.darkModeSwitch)
|
||
val aboutButton: Button = findViewById(R.id.aboutButton)
|
||
val developersButton: Button = findViewById(R.id.developersButton)
|
||
|
||
// Получаем сохраненное состояние темы из SharedPreferences
|
||
val sharedPreferences = getSharedPreferences("AppSettings", Context.MODE_PRIVATE)
|
||
val isDarkMode = sharedPreferences.getBoolean("DarkMode", false) // По умолчанию - светлая тема
|
||
darkModeSwitch.isChecked = isDarkMode
|
||
|
||
// Применяем тему
|
||
if (isDarkMode) {
|
||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||
} else {
|
||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||
}
|
||
|
||
try {
|
||
val packageInfo = packageManager.getPackageInfo(packageName, 0)
|
||
val versionName = packageInfo.versionName
|
||
versionTextView.text = "Версия: $versionName"
|
||
} catch (e: PackageManager.NameNotFoundException) {
|
||
versionTextView.text = "Версия: Неизвестно"
|
||
}
|
||
|
||
// Устанавливаем слушатель для Switch
|
||
darkModeSwitch.setOnCheckedChangeListener { _, isChecked ->
|
||
// Сохраняем состояние темы в SharedPreferences
|
||
val editor = sharedPreferences.edit()
|
||
editor.putBoolean("DarkMode", isChecked)
|
||
editor.apply()
|
||
|
||
// Применяем тему
|
||
if (isChecked) {
|
||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES)
|
||
} else {
|
||
AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO)
|
||
}
|
||
}
|
||
|
||
// Обработчик нажатия на кнопку "О программе"
|
||
aboutButton.setOnClickListener {
|
||
AlertDialog.Builder(this)
|
||
.setTitle("О программе")
|
||
.setMessage("Краткое описание пользования приложением.\n\nНапример: Это приложение позволяет тренироваться, чтобы быть как арнольдшварцнигер 😄")
|
||
.setPositiveButton("ОК", null)
|
||
.show()
|
||
}
|
||
|
||
// Обработчик нажатия на кнопку "Разработчики"
|
||
developersButton.setOnClickListener {
|
||
AlertDialog.Builder(this)
|
||
.setTitle("Разработчики")
|
||
.setMessage(HtmlCompat.fromHtml(
|
||
"<p style='margin-left: 2em;'><b>Вятский государственный университет</b></p><br>" +
|
||
"<p style='margin-left: 2em;'>Емцова Надежда Александровна</p>" +
|
||
"<p style='margin-left: 2em;'>Новиков Николай Алексеевич</p>" +
|
||
"<p style='margin-left: 2em;'>Пискун Алёна Викторовна</p>",
|
||
HtmlCompat.FROM_HTML_MODE_LEGACY
|
||
))
|
||
.setPositiveButton("ОК", null)
|
||
.show()
|
||
}
|
||
}
|
||
} |