PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/fragments/settings/AbsSettingsFragment.kt

97 lines
4.0 KiB
Kotlin
Raw Normal View History

2019-05-11 13:53:20 +00:00
/*
* Copyright (c) 2019 Hemanth Savarala.
*
* Licensed under the GNU General Public License v3
*
* 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.
*
* 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.
*/
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
import androidx.fragment.app.DialogFragment
import androidx.preference.ListPreference
import androidx.preference.Preference
import androidx.preference.PreferenceManager
2019-09-03 17:54:14 +00:00
import code.name.monkey.appthemehelper.common.prefs.supportv7.ATEPreferenceFragmentCompat
2019-09-29 18:24:47 +00:00
import code.name.monkey.appthemehelper.util.ATHUtil
import code.name.monkey.retromusic.R
2020-01-05 18:22:21 +00:00
import code.name.monkey.retromusic.preferences.AlbumCoverStylePreference
import code.name.monkey.retromusic.preferences.AlbumCoverStylePreferenceDialog
import code.name.monkey.retromusic.preferences.BlacklistPreference
import code.name.monkey.retromusic.preferences.BlacklistPreferenceDialog
import code.name.monkey.retromusic.preferences.LibraryPreference
import code.name.monkey.retromusic.preferences.LibraryPreferenceDialog
import code.name.monkey.retromusic.preferences.MaterialListPreference
import code.name.monkey.retromusic.preferences.MaterialListPreferenceDialog
import code.name.monkey.retromusic.preferences.NowPlayingScreenPreference
import code.name.monkey.retromusic.preferences.NowPlayingScreenPreferenceDialog
2019-02-19 10:38:51 +00:00
import code.name.monkey.retromusic.util.NavigationUtil
/**
* @author Hemanth S (h4h13).
*/
2019-09-03 17:54:14 +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) {
2019-08-05 16:13:44 +00:00
Toast.makeText(requireContext(), "$message is Pro version feature.", Toast.LENGTH_SHORT).show()
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))
2019-12-01 15:27:01 +00:00
listView.setBackgroundColor(ATHUtil.resolveColor(requireContext(), R.attr.colorSurface))
2019-02-19 10:38:51 +00:00
listView.overScrollMode = View.OVER_SCROLL_NEVER
listView.setPadding(0, 0, 0, 0)
listView.setPaddingRelative(0, 0, 0, 0)
invalidateSettings()
}
2019-09-03 17:54:14 +00:00
override fun onCreatePreferenceDialog(preference: Preference): DialogFragment? {
return when (preference) {
is LibraryPreference -> LibraryPreferenceDialog.newInstance(preference.key)
is NowPlayingScreenPreference -> NowPlayingScreenPreferenceDialog.newInstance(preference.key)
is AlbumCoverStylePreference -> AlbumCoverStylePreferenceDialog.newInstance(preference.key)
is MaterialListPreference -> {
MaterialListPreferenceDialog.newInstance(preference)
}
is BlacklistPreference -> BlacklistPreferenceDialog.newInstance()
else -> super.onCreatePreferenceDialog(preference)
}
2019-02-19 10:38:51 +00:00
}
}