2019-05-11 13:53:20 +00:00
|
|
|
/*
|
2020-10-06 08:46:04 +00:00
|
|
|
* Copyright (c) 2020 Hemanth Savarla.
|
2019-05-11 13:53:20 +00:00
|
|
|
*
|
|
|
|
* Licensed under the GNU General Public License v3
|
|
|
|
*
|
2020-10-06 08:46:04 +00:00
|
|
|
* This is free software: you can redistribute it and/or modify it
|
|
|
|
* under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
|
2019-05-11 13:53:20 +00:00
|
|
|
*
|
|
|
|
* This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
|
|
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
* See the GNU General Public License for more details.
|
2020-10-06 08:46:04 +00:00
|
|
|
*
|
2019-05-11 13:53:20 +00:00
|
|
|
*/
|
2019-04-20 05:29:45 +00:00
|
|
|
package code.name.monkey.retromusic.fragments.settings
|
2019-02-19 10:38:51 +00:00
|
|
|
|
|
|
|
import android.graphics.Color
|
|
|
|
import android.graphics.drawable.ColorDrawable
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.view.View
|
|
|
|
import android.widget.Toast
|
2021-12-02 18:33:04 +00:00
|
|
|
import androidx.core.view.ViewCompat
|
2021-10-22 06:44:53 +00:00
|
|
|
import androidx.core.view.updatePadding
|
2019-02-19 10:38:51 +00:00
|
|
|
import androidx.preference.ListPreference
|
|
|
|
import androidx.preference.Preference
|
|
|
|
import androidx.preference.PreferenceManager
|
2020-05-24 18:04:50 +00:00
|
|
|
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat
|
2021-09-22 12:00:02 +00:00
|
|
|
import code.name.monkey.retromusic.activities.OnThemeChangedListener
|
2021-12-02 18:33:04 +00:00
|
|
|
import code.name.monkey.retromusic.extensions.safeGetBottomInsets
|
2020-02-26 16:49:24 +00:00
|
|
|
import code.name.monkey.retromusic.preferences.*
|
2019-02-19 10:38:51 +00:00
|
|
|
import code.name.monkey.retromusic.util.NavigationUtil
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Hemanth S (h4h13).
|
|
|
|
*/
|
|
|
|
|
2020-05-24 18:04:50 +00:00
|
|
|
abstract class AbsSettingsFragment : ATEPreferenceFragmentCompat() {
|
2019-06-29 17:15:31 +00:00
|
|
|
|
2019-02-19 10:38:51 +00:00
|
|
|
internal fun showProToastAndNavigate(message: String) {
|
2020-02-26 16:49:24 +00:00
|
|
|
Toast.makeText(requireContext(), "$message is Pro version feature.", Toast.LENGTH_SHORT)
|
|
|
|
.show()
|
2019-08-05 16:13:44 +00:00
|
|
|
NavigationUtil.goToProVersion(requireActivity())
|
2019-02-19 10:38:51 +00:00
|
|
|
}
|
|
|
|
|
2019-12-01 11:28:57 +00:00
|
|
|
internal fun setSummary(preference: Preference, value: Any?) {
|
2019-02-19 10:38:51 +00:00
|
|
|
val stringValue = value.toString()
|
|
|
|
if (preference is ListPreference) {
|
|
|
|
val index = preference.findIndexOfValue(stringValue)
|
|
|
|
preference.setSummary(if (index >= 0) preference.entries[index] else null)
|
|
|
|
} else {
|
|
|
|
preference.summary = stringValue
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
abstract fun invalidateSettings()
|
|
|
|
|
2019-12-01 11:28:57 +00:00
|
|
|
protected fun setSummary(preference: Preference?) {
|
|
|
|
preference?.let {
|
2020-01-05 18:22:21 +00:00
|
|
|
setSummary(
|
|
|
|
it, PreferenceManager
|
2019-12-01 11:28:57 +00:00
|
|
|
.getDefaultSharedPreferences(it.context)
|
2020-01-05 18:22:21 +00:00
|
|
|
.getString(it.key, "")
|
|
|
|
)
|
2019-12-01 11:28:57 +00:00
|
|
|
}
|
2019-06-29 17:15:31 +00:00
|
|
|
}
|
|
|
|
|
2019-02-19 10:38:51 +00:00
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
|
|
super.onViewCreated(view, savedInstanceState)
|
|
|
|
setDivider(ColorDrawable(Color.TRANSPARENT))
|
2021-12-02 18:33:04 +00:00
|
|
|
// CollapsingToolbarLayout consumes insets and insets are not passed to child views
|
|
|
|
// So we get insets from root view
|
2021-10-22 06:44:53 +00:00
|
|
|
// https://github.com/material-components/material-components-android/issues/1310
|
2021-12-02 18:33:04 +00:00
|
|
|
ViewCompat.setOnApplyWindowInsetsListener(
|
|
|
|
view
|
|
|
|
) { _, insets ->
|
|
|
|
listView.updatePadding(bottom = insets.safeGetBottomInsets())
|
|
|
|
insets
|
2021-10-22 06:44:53 +00:00
|
|
|
}
|
2019-02-19 10:38:51 +00:00
|
|
|
invalidateSettings()
|
|
|
|
}
|
|
|
|
|
2021-11-30 19:14:40 +00:00
|
|
|
override fun onDisplayPreferenceDialog(preference: Preference) {
|
2020-05-23 13:53:10 +00:00
|
|
|
when (preference) {
|
|
|
|
is LibraryPreference -> {
|
|
|
|
val fragment = LibraryPreferenceDialog.newInstance()
|
|
|
|
fragment.show(childFragmentManager, preference.key)
|
2019-09-03 17:54:14 +00:00
|
|
|
}
|
2020-05-23 13:53:10 +00:00
|
|
|
is NowPlayingScreenPreference -> {
|
|
|
|
val fragment = NowPlayingScreenPreferenceDialog.newInstance()
|
|
|
|
fragment.show(childFragmentManager, preference.key)
|
|
|
|
}
|
|
|
|
is AlbumCoverStylePreference -> {
|
|
|
|
val fragment = AlbumCoverStylePreferenceDialog.newInstance()
|
|
|
|
fragment.show(childFragmentManager, preference.key)
|
|
|
|
}
|
|
|
|
is BlacklistPreference -> {
|
|
|
|
val fragment = BlacklistPreferenceDialog.newInstance()
|
|
|
|
fragment.show(childFragmentManager, preference.key)
|
|
|
|
}
|
2021-09-08 18:30:20 +00:00
|
|
|
is DurationPreference -> {
|
|
|
|
val fragment = DurationPreferenceDialog.newInstance()
|
|
|
|
fragment.show(childFragmentManager, preference.key)
|
|
|
|
}
|
2020-05-23 13:53:10 +00:00
|
|
|
else -> super.onDisplayPreferenceDialog(preference)
|
2019-09-03 17:54:14 +00:00
|
|
|
}
|
2019-02-19 10:38:51 +00:00
|
|
|
}
|
2021-09-22 12:00:02 +00:00
|
|
|
|
|
|
|
fun restartActivity() {
|
|
|
|
if (activity is OnThemeChangedListener) {
|
|
|
|
(activity as OnThemeChangedListener).onThemeValuesChanged()
|
|
|
|
} else {
|
|
|
|
activity?.recreate()
|
|
|
|
}
|
|
|
|
}
|
2019-02-19 10:38:51 +00:00
|
|
|
}
|