Fix color notification toggle

This commit is contained in:
h4h13 2019-06-29 22:45:31 +05:30
parent 3d57688717
commit 425d7caddd
10 changed files with 78 additions and 66 deletions

View file

@ -33,7 +33,7 @@ import code.name.monkey.retromusic.mvp.presenter.HomePresenter
import code.name.monkey.retromusic.util.*
import com.bumptech.glide.load.engine.DiskCacheStrategy
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import kotlinx.android.synthetic.main.abs_playlists.*
import kotlinx.android.synthetic.main.fragment_banner_home.*
@ -44,7 +44,7 @@ import kotlin.collections.ArrayList
class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallbacks, HomeContract.HomeView {
private var disposable: Disposable? = null
private var disposable: CompositeDisposable = CompositeDisposable()
private lateinit var homePresenter: HomePresenter
private lateinit var toolbar: Toolbar
@ -53,10 +53,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
}
private fun loadImageFromStorage() {
if (disposable != null) {
disposable?.dispose()
}
disposable = Compressor(context!!)
disposable.add(Compressor(context!!)
.setMaxHeight(300)
.setMaxWidth(300)
.setQuality(75)
@ -72,7 +69,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
}
}) {
userImage.setImageDrawable(ContextCompat.getDrawable(context!!, R.drawable.ic_person_flat))
}
})
}
private val displayMetrics: DisplayMetrics
@ -173,7 +170,7 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
override fun onDestroyView() {
super.onDestroyView()
disposable?.dispose()
disposable.dispose()
homePresenter.unsubscribe()
}
@ -264,13 +261,13 @@ class BannerHomeFragment : AbsMainActivityFragment(), MainActivityFragmentCallba
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(bannerImage!!)
} else {
disposable = Compressor(context!!)
disposable.add(Compressor(context!!)
.setQuality(100)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.compressToBitmapAsFlowable(File(PreferenceUtil.getInstance().bannerImage, USER_BANNER))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { bannerImage?.setImageBitmap(it) }
.subscribe { bitmap -> bannerImage.setImageBitmap(bitmap) })
}
}
loadImageFromStorage()

View file

@ -33,18 +33,12 @@ import code.name.monkey.retromusic.util.NavigationUtil
*/
abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
internal fun showProToastAndNavigate(message: String) {
Toast.makeText(context, "$message is Pro version feature.", Toast.LENGTH_SHORT).show()
NavigationUtil.goToProVersion(activity!!)
}
protected fun setSummary(preference: Preference) {
setSummary(preference, PreferenceManager
.getDefaultSharedPreferences(preference.context)
.getString(preference.key, "")!!)
}
internal fun setSummary(preference: Preference, value: Any) {
val stringValue = value.toString()
if (preference is ListPreference) {
@ -57,6 +51,12 @@ abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
abstract fun invalidateSettings()
protected fun setSummary(preference: Preference) {
setSummary(preference, PreferenceManager
.getDefaultSharedPreferences(preference.context)
.getString(preference.key, "")!!)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
setDivider(ColorDrawable(Color.TRANSPARENT))
@ -68,19 +68,18 @@ abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
}
override fun onDisplayPreferenceDialog(preference: Preference) {
var dialogFragment: DialogFragment? = null
if (preference is NowPlayingScreenPreference) {
dialogFragment = NowPlayingScreenPreferenceDialog.newInstance(preference.key);
} else if (preference is AlbumCoverStylePreference) {
dialogFragment = AlbumCoverStylePreferenceDialog.newInstance(preference.key);
}
if (preference is MaterialListPreference) {
preference.entries
dialogFragment = MaterialListPreferenceDialog.newInstance(preference)
}
if (preference is BlacklistPreference) {
dialogFragment = BlacklistPreferenceDialog.newInstance(preference.key)
var dialogFragment: DialogFragment? = null// Dialog creation could not be handled here. Try with the super method.
// The dialog was created (it was one of our custom Preferences), show the dialog for it
when (preference) {
is NowPlayingScreenPreference -> dialogFragment = NowPlayingScreenPreferenceDialog.newInstance(preference.key)
is AlbumCoverStylePreference -> dialogFragment = AlbumCoverStylePreferenceDialog.newInstance(preference.key)
is MaterialListPreference -> {
preference.entries
dialogFragment = MaterialListPreferenceDialog.newInstance(preference)
}
is BlacklistPreference -> dialogFragment = BlacklistPreferenceDialog.newInstance(preference.key)
}
if (dialogFragment != null) {
// The dialog was created (it was one of our custom Preferences), show the dialog for it
dialogFragment.setTargetFragment(this, 0);
@ -89,6 +88,5 @@ abstract class AbsSettingsFragment : PreferenceFragmentCompat() {
// Dialog creation could not be handled here. Try with the super method.
super.onDisplayPreferenceDialog(preference);
}
}
}

View file

@ -14,40 +14,50 @@
package code.name.monkey.retromusic.fragments.settings
import android.os.Build
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.os.Bundle
import androidx.preference.TwoStatePreference
import code.name.monkey.retromusic.R
import code.name.monkey.retromusic.helper.MusicPlayerRemote
import code.name.monkey.retromusic.util.PreferenceUtil
/**
* @author Hemanth S (h4h13).
*/
class NotificationSettingsFragment : AbsSettingsFragment() {
override fun invalidateSettings() {
val classicNotification: TwoStatePreference = findPreference("classic_notification")!!
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.N) {
classicNotification.isVisible = false
val classicNotification: TwoStatePreference? = findPreference("classic_notification")
if (VERSION.SDK_INT < VERSION_CODES.N) {
classicNotification?.isVisible = false
} else {
classicNotification.isChecked = PreferenceUtil.getInstance().classicNotification()
classicNotification.setOnPreferenceChangeListener { _, newValue ->
// Save preference
PreferenceUtil.getInstance().setClassicNotification(newValue as Boolean)
val service = MusicPlayerRemote.musicService
if (service != null) {
service.initNotification()
service.updateNotification()
classicNotification?.apply {
isChecked = PreferenceUtil.getInstance().classicNotification()
setOnPreferenceChangeListener { _, newValue ->
// Save preference
PreferenceUtil.getInstance().setClassicNotification(newValue as Boolean)
invalidateSettings()
true
}
}
}
true
val coloredNotification: TwoStatePreference? = findPreference("colored_notification")
if (VERSION.SDK_INT >= VERSION_CODES.O) {
coloredNotification?.isEnabled = PreferenceUtil.getInstance().classicNotification()
} else {
coloredNotification?.apply {
isChecked = PreferenceUtil.getInstance().coloredNotification()
setOnPreferenceChangeListener { _, newValue ->
PreferenceUtil.getInstance().setColoredNotification(newValue as Boolean)
true
}
}
}
}
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResource(R.xml.pref_notification)
addPreferencesFromResource(code.name.monkey.retromusic.R.xml.pref_notification)
}
}