| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- package com.sduduzog.slimlauncher
- import androidx.lifecycle.ViewModelProviders
- import android.content.SharedPreferences
- import android.content.res.Resources
- import android.os.Bundle
- import androidx.appcompat.app.AppCompatActivity
- import androidx.navigation.NavController
- import androidx.navigation.NavDestination
- import androidx.navigation.Navigation.findNavController
- import com.sduduzog.slimlauncher.ui.main.model.MainViewModel
- class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener, NavController.OnNavigatedListener {
- private lateinit var settings: SharedPreferences
- private val label = "main_fragment"
- private lateinit var currentLabel: String
- private lateinit var viewModel: MainViewModel
- private lateinit var navigator: NavController
- var onBackPressedListener: OnBackPressedListener? = null
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.main_activity)
- settings = getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
- settings.registerOnSharedPreferenceChangeListener(this)
- navigator = findNavController(this, R.id.nav_host_fragment)
- navigator.addOnNavigatedListener(this)
- viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
- }
- override fun onStart() {
- super.onStart()
- viewModel.updateApps()
- }
- override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, s: String?) {
- if (s.equals(getString(R.string.prefs_settings_key_theme), true)) {
- recreate()
- }
- }
- override fun getTheme(): Resources.Theme {
- val theme = super.getTheme()
- settings = getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
- val active = settings.getInt(getString(R.string.prefs_settings_key_theme), 0)
- theme.applyStyle(resolveTheme(active), true)
- return theme
- }
- override fun onBackPressed() {
- if (currentLabel != label)
- super.onBackPressed()
- else onBackPressedListener?.onBackPressed()
- }
- override fun onNavigated(controller: NavController, destination: NavDestination) {
- currentLabel = destination.label.toString()
- }
- companion object {
- fun resolveTheme(i: Int): Int {
- when (i) {
- 1 -> {
- return R.style.AppDarkTheme
- }
- 2 -> {
- return R.style.AppGreyTheme
- }
- 3 -> {
- return R.style.AppTealTheme
- }
- 4 -> {
- return R.style.AppPinkTheme
- }
- }
- return R.style.AppTheme
- }
- }
- interface OnBackPressedListener{
- fun onBackPressed()
- }
- }
|