Fix crashing on profile, color on now playing themes
This commit is contained in:
parent
00f33cab3e
commit
b1cfa373b0
19 changed files with 114 additions and 81 deletions
File diff suppressed because one or more lines are too long
|
@ -133,6 +133,7 @@ public class WriteTagsAsyncTask extends
|
||||||
(Activity) context, toBeScanned) : null);
|
(Activity) context, toBeScanned) : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected Dialog createDialog(@NonNull Context context) {
|
protected Dialog createDialog(@NonNull Context context) {
|
||||||
return new MaterialDialog(context, new BottomSheet())
|
return new MaterialDialog(context, new BottomSheet())
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
/*
|
||||||
|
* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package code.name.monkey.retromusic.extensions
|
||||||
|
|
||||||
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
|
|
||||||
|
fun Int.ripAlpha(): Int {
|
||||||
|
return ColorUtil.stripAlpha(this)
|
||||||
|
}
|
|
@ -12,6 +12,7 @@ import android.widget.SeekBar
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import code.name.monkey.appthemehelper.ThemeStore
|
import code.name.monkey.appthemehelper.ThemeStore
|
||||||
import code.name.monkey.appthemehelper.util.ATHUtil
|
import code.name.monkey.appthemehelper.util.ATHUtil
|
||||||
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||||
|
@ -109,7 +110,6 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setTintable(color: Int) {
|
fun setTintable(color: Int) {
|
||||||
|
|
||||||
ViewUtil.setProgressDrawable(volumeSeekBar, color, true)
|
ViewUtil.setProgressDrawable(volumeSeekBar, color, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,7 +127,6 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum
|
||||||
fun setTintableColor(color: Int) {
|
fun setTintableColor(color: Int) {
|
||||||
volumeDown.setColorFilter(color, PorterDuff.Mode.SRC_IN)
|
volumeDown.setColorFilter(color, PorterDuff.Mode.SRC_IN)
|
||||||
volumeUp.setColorFilter(color, PorterDuff.Mode.SRC_IN)
|
volumeUp.setColorFilter(color, PorterDuff.Mode.SRC_IN)
|
||||||
//TintHelper.setTintAuto(volumeSeekBar, color, false)
|
|
||||||
ViewUtil.setProgressDrawable(volumeSeekBar, color, true)
|
ViewUtil.setProgressDrawable(volumeSeekBar, color, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -100,7 +101,7 @@ class AdaptivePlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.accentColor(context!!)
|
ThemeStore.accentColor(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false)
|
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false)
|
||||||
TintHelper.setTintAuto(playPauseButton, colorFinal, true)
|
TintHelper.setTintAuto(playPauseButton, colorFinal, true)
|
||||||
|
|
|
@ -14,6 +14,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -127,7 +128,7 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.accentColor(context!!)
|
ThemeStore.accentColor(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
image.setColorFilter(colorFinal, PorterDuff.Mode.SRC_IN)
|
image.setColorFilter(colorFinal, PorterDuff.Mode.SRC_IN)
|
||||||
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false)
|
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false)
|
||||||
|
|
|
@ -15,14 +15,14 @@ import android.widget.SeekBar
|
||||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener
|
import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener
|
||||||
import code.name.monkey.retromusic.service.MusicService
|
import code.name.monkey.retromusic.service.MusicService
|
||||||
import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment
|
|
||||||
import code.name.monkey.retromusic.util.MusicUtil
|
import code.name.monkey.retromusic.util.MusicUtil
|
||||||
import kotlinx.android.synthetic.main.fragment_player_playback_controls.*
|
import kotlinx.android.synthetic.main.fragment_color_player_playback_controls.*
|
||||||
import kotlinx.android.synthetic.main.media_button.*
|
import kotlinx.android.synthetic.main.media_button.*
|
||||||
|
|
||||||
class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
|
@ -99,7 +99,7 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
title!!.setTextColor(lastPlaybackControlsColor)
|
title!!.setTextColor(lastPlaybackControlsColor)
|
||||||
text!!.setTextColor(lastDisabledPlaybackControlsColor)
|
text!!.setTextColor(lastDisabledPlaybackControlsColor)
|
||||||
|
|
||||||
setProgressBarColor(lastPlaybackControlsColor, lastDisabledPlaybackControlsColor)
|
TintHelper.setTintAuto(progressSlider, lastPlaybackControlsColor, false)
|
||||||
|
|
||||||
volumeFragment?.setTintableColor(lastPlaybackControlsColor)
|
volumeFragment?.setTintableColor(lastPlaybackControlsColor)
|
||||||
|
|
||||||
|
@ -111,17 +111,6 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
updatePrevNextColor()
|
updatePrevNextColor()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setProgressBarColor(c1: Int, c2: Int) {
|
|
||||||
progressSlider.thumbTintList = ColorStateList.valueOf(c1)
|
|
||||||
val ld = progressSlider.progressDrawable as LayerDrawable
|
|
||||||
|
|
||||||
val clipDrawableProgress = ld.findDrawableByLayerId(android.R.id.progress)
|
|
||||||
clipDrawableProgress.setColorFilter(c1, PorterDuff.Mode.SRC_IN)
|
|
||||||
|
|
||||||
val clipDrawableBackground = ld.findDrawableByLayerId(android.R.id.background)
|
|
||||||
clipDrawableBackground.setColorFilter(c2, PorterDuff.Mode.SRC_IN)
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setUpPlayPauseFab() {
|
private fun setUpPlayPauseFab() {
|
||||||
TintHelper.setTintAuto(playPauseButton, Color.WHITE, true)
|
TintHelper.setTintAuto(playPauseButton, Color.WHITE, true)
|
||||||
TintHelper.setTintAuto(playPauseButton, Color.BLACK, false)
|
TintHelper.setTintAuto(playPauseButton, Color.BLACK, false)
|
||||||
|
|
|
@ -16,6 +16,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -113,7 +114,7 @@ class FitPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.accentColor(context!!)
|
ThemeStore.accentColor(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
|
|
||||||
volumeFragment?.setTintable(colorFinal)
|
volumeFragment?.setTintable(colorFinal)
|
||||||
|
|
|
@ -15,6 +15,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper.Callback
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper.Callback
|
||||||
|
@ -102,7 +103,7 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback {
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.accentColor(context!!)
|
ThemeStore.accentColor(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
|
|
||||||
updateTextColors(colorFinal)
|
updateTextColors(colorFinal)
|
||||||
|
|
|
@ -21,6 +21,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -111,7 +112,7 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(), PopupMenu.OnMe
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.accentColor(context!!)
|
ThemeStore.accentColor(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
volumeFragment?.setTintableColor(colorFinal)
|
volumeFragment?.setTintableColor(colorFinal)
|
||||||
text.setTextColor(colorFinal)
|
text.setTextColor(colorFinal)
|
||||||
|
|
|
@ -29,6 +29,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -123,7 +124,7 @@ class LockScreenPlayerControlsFragment : AbsPlayerControlsFragment() {
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.textColorSecondary(context!!)
|
ThemeStore.textColorSecondary(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
volumeFragment?.setTintable(colorFinal)
|
volumeFragment?.setTintable(colorFinal)
|
||||||
ViewUtil.setProgressDrawable(progressSlider, ColorUtil.stripAlpha(colorFinal), true)
|
ViewUtil.setProgressDrawable(progressSlider, ColorUtil.stripAlpha(colorFinal), true)
|
||||||
|
|
|
@ -13,6 +13,7 @@ import code.name.monkey.appthemehelper.util.ATHUtil
|
||||||
import code.name.monkey.appthemehelper.util.ColorUtil
|
import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -106,7 +107,7 @@ class MaterialControlsFragment : AbsPlayerControlsFragment() {
|
||||||
lastPlaybackControlsColor = color
|
lastPlaybackControlsColor = color
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.textColorSecondary(context!!)
|
ThemeStore.textColorSecondary(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
text.setTextColor(colorFinal)
|
text.setTextColor(colorFinal)
|
||||||
ViewUtil.setProgressDrawable(progressSlider, ColorUtil.stripAlpha(colorFinal), true)
|
ViewUtil.setProgressDrawable(progressSlider, ColorUtil.stripAlpha(colorFinal), true)
|
||||||
|
|
|
@ -15,6 +15,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil
|
||||||
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
import code.name.monkey.appthemehelper.util.MaterialValueHelper
|
||||||
import code.name.monkey.appthemehelper.util.TintHelper
|
import code.name.monkey.appthemehelper.util.TintHelper
|
||||||
import code.name.monkey.retromusic.R
|
import code.name.monkey.retromusic.R
|
||||||
|
import code.name.monkey.retromusic.extensions.ripAlpha
|
||||||
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
import code.name.monkey.retromusic.helper.MusicPlayerRemote
|
||||||
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper
|
||||||
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler
|
||||||
|
@ -71,10 +72,9 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment() {
|
||||||
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) {
|
||||||
color
|
color
|
||||||
} else {
|
} else {
|
||||||
ThemeStore.accentColor(context!!)
|
ThemeStore.accentColor(context!!).ripAlpha()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context!!, ColorUtil.isColorLight(colorFinal)), false)
|
TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context!!, ColorUtil.isColorLight(colorFinal)), false)
|
||||||
TintHelper.setTintAuto(playPauseButton, colorFinal, true)
|
TintHelper.setTintAuto(playPauseButton, colorFinal, true)
|
||||||
ViewUtil.setProgressDrawable(progressSlider, colorFinal)
|
ViewUtil.setProgressDrawable(progressSlider, colorFinal)
|
||||||
|
|
|
@ -17,9 +17,10 @@ package code.name.monkey.retromusic.model;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
|
||||||
import io.reactivex.Observable;
|
import io.reactivex.Observable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -51,11 +51,11 @@ class MediaButtonIntentReceiver : BroadcastReceiver() {
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val TAG = MediaButtonIntentReceiver::class.java.simpleName
|
val TAG: String = MediaButtonIntentReceiver::class.java.simpleName
|
||||||
private val DEBUG = BuildConfig.DEBUG
|
private val DEBUG = BuildConfig.DEBUG
|
||||||
private val MSG_HEADSET_DOUBLE_CLICK_TIMEOUT = 2
|
private const val MSG_HEADSET_DOUBLE_CLICK_TIMEOUT = 2
|
||||||
|
|
||||||
private val DOUBLE_CLICK = 400
|
private const val DOUBLE_CLICK = 400
|
||||||
|
|
||||||
private var wakeLock: WakeLock? = null
|
private var wakeLock: WakeLock? = null
|
||||||
private var mClickCounter = 0
|
private var mClickCounter = 0
|
||||||
|
|
|
@ -29,7 +29,6 @@ import android.graphics.Point;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.audiofx.AudioEffect;
|
import android.media.audiofx.AudioEffect;
|
||||||
import android.media.session.MediaSession;
|
|
||||||
import android.os.Binder;
|
import android.os.Binder;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
@ -86,6 +85,7 @@ import code.name.monkey.retromusic.service.playback.Playback;
|
||||||
import code.name.monkey.retromusic.util.MusicUtil;
|
import code.name.monkey.retromusic.util.MusicUtil;
|
||||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||||
import code.name.monkey.retromusic.util.RetroUtil;
|
import code.name.monkey.retromusic.util.RetroUtil;
|
||||||
|
import io.reactivex.schedulers.Schedulers;
|
||||||
|
|
||||||
import static code.name.monkey.retromusic.Constants.ACTION_PAUSE;
|
import static code.name.monkey.retromusic.Constants.ACTION_PAUSE;
|
||||||
import static code.name.monkey.retromusic.Constants.ACTION_PENDING_QUIT;
|
import static code.name.monkey.retromusic.Constants.ACTION_PENDING_QUIT;
|
||||||
|
@ -142,6 +142,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
| PlaybackStateCompat.ACTION_STOP
|
| PlaybackStateCompat.ACTION_STOP
|
||||||
| PlaybackStateCompat.ACTION_SEEK_TO;
|
| PlaybackStateCompat.ACTION_SEEK_TO;
|
||||||
private final IBinder musicBind = new MusicBinder();
|
private final IBinder musicBind = new MusicBinder();
|
||||||
|
public boolean pendingQuit = false;
|
||||||
private AppWidgetBig appWidgetBig = AppWidgetBig.Companion.getInstance();
|
private AppWidgetBig appWidgetBig = AppWidgetBig.Companion.getInstance();
|
||||||
private AppWidgetClassic appWidgetClassic = AppWidgetClassic.Companion.getInstance();
|
private AppWidgetClassic appWidgetClassic = AppWidgetClassic.Companion.getInstance();
|
||||||
private AppWidgetSmall appWidgetSmall = AppWidgetSmall.Companion.getInstance();
|
private AppWidgetSmall appWidgetSmall = AppWidgetSmall.Companion.getInstance();
|
||||||
|
@ -178,7 +179,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
public boolean pendingQuit = false;
|
|
||||||
private Playback playback;
|
private Playback playback;
|
||||||
private ArrayList<Song> playingQueue = new ArrayList<>();
|
private ArrayList<Song> playingQueue = new ArrayList<>();
|
||||||
private ArrayList<Song> originalPlayingQueue = new ArrayList<>();
|
private ArrayList<Song> originalPlayingQueue = new ArrayList<>();
|
||||||
|
@ -244,8 +244,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
String action = intent.getAction();
|
String action = intent.getAction();
|
||||||
if (action != null) {
|
if (action != null) {
|
||||||
switch (action) {
|
if (Intent.ACTION_HEADSET_PLUG.equals(action)) {
|
||||||
case Intent.ACTION_HEADSET_PLUG:
|
|
||||||
int state = intent.getIntExtra("state", -1);
|
int state = intent.getIntExtra("state", -1);
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case 0:
|
case 0:
|
||||||
|
@ -257,7 +256,6 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
play();
|
play();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -352,7 +350,10 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
|
|
||||||
PendingIntent mediaButtonReceiverPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent, 0);
|
PendingIntent mediaButtonReceiverPendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 0, mediaButtonIntent, 0);
|
||||||
|
|
||||||
mediaSession = new MediaSessionCompat(this, "RetroMusicPlayer", mediaButtonReceiverComponentName, mediaButtonReceiverPendingIntent);
|
mediaSession = new MediaSessionCompat(this,
|
||||||
|
"RetroMusicPlayer",
|
||||||
|
mediaButtonReceiverComponentName,
|
||||||
|
mediaButtonReceiverPendingIntent);
|
||||||
mediaSession.setCallback(new MediaSessionCompat.Callback() {
|
mediaSession.setCallback(new MediaSessionCompat.Callback() {
|
||||||
@Override
|
@Override
|
||||||
public void onPlay() {
|
public void onPlay() {
|
||||||
|
@ -390,8 +391,9 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
mediaSession.setFlags(MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS
|
mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS
|
||||||
| MediaSession.FLAG_HANDLES_MEDIA_BUTTONS);
|
| MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS
|
||||||
|
);
|
||||||
|
|
||||||
mediaSession.setMediaButtonReceiver(mediaButtonReceiverPendingIntent);
|
mediaSession.setMediaButtonReceiver(mediaButtonReceiverPendingIntent);
|
||||||
}
|
}
|
||||||
|
@ -417,31 +419,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
play();
|
play();
|
||||||
break;
|
break;
|
||||||
case ACTION_PLAY_PLAYLIST:
|
case ACTION_PLAY_PLAYLIST:
|
||||||
Playlist playlist = intent.getParcelableExtra(INTENT_EXTRA_PLAYLIST);
|
playFromPlaylist(intent);
|
||||||
int shuffleMode = intent.getIntExtra(INTENT_EXTRA_SHUFFLE_MODE, getShuffleMode());
|
|
||||||
if (playlist != null) {
|
|
||||||
ArrayList<Song> playlistSongs;
|
|
||||||
if (playlist instanceof AbsCustomPlaylist) {
|
|
||||||
playlistSongs = ((AbsCustomPlaylist) playlist).getSongs(getApplicationContext()).blockingFirst();
|
|
||||||
} else {
|
|
||||||
//noinspection unchecked
|
|
||||||
playlistSongs = PlaylistSongsLoader.INSTANCE.getPlaylistSongList(getApplicationContext(), playlist.id).blockingFirst();
|
|
||||||
}
|
|
||||||
if (!playlistSongs.isEmpty()) {
|
|
||||||
if (shuffleMode == SHUFFLE_MODE_SHUFFLE) {
|
|
||||||
int startPosition;
|
|
||||||
startPosition = new Random().nextInt(playlistSongs.size());
|
|
||||||
openQueue(playlistSongs, startPosition, true);
|
|
||||||
setShuffleMode(shuffleMode);
|
|
||||||
} else {
|
|
||||||
openQueue(playlistSongs, 0, true);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Toast.makeText(getApplicationContext(), R.string.playlist_is_empty, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
Toast.makeText(getApplicationContext(), R.string.playlist_is_empty, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case ACTION_REWIND:
|
case ACTION_REWIND:
|
||||||
back(true);
|
back(true);
|
||||||
|
@ -464,6 +442,45 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP
|
||||||
return START_STICKY;
|
return START_STICKY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void playFromPlaylist(Intent intent) {
|
||||||
|
Playlist playlist = intent.getParcelableExtra(INTENT_EXTRA_PLAYLIST);
|
||||||
|
int shuffleMode = intent.getIntExtra(INTENT_EXTRA_SHUFFLE_MODE, getShuffleMode());
|
||||||
|
|
||||||
|
if (playlist != null) {
|
||||||
|
if (playlist instanceof AbsCustomPlaylist) {
|
||||||
|
((AbsCustomPlaylist) playlist).getSongs(getApplicationContext())
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.subscribe(songs -> {
|
||||||
|
playSongs(shuffleMode, songs);
|
||||||
|
}, throwable -> {
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
PlaylistSongsLoader.INSTANCE.getPlaylistSongList(getApplicationContext(), playlist.id)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.subscribe(songs -> {
|
||||||
|
playSongs(shuffleMode, songs);
|
||||||
|
}, throwable -> {
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.playlist_is_empty, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void playSongs(int shuffleMode, ArrayList<Song> playlistSongs) {
|
||||||
|
if (!playlistSongs.isEmpty()) {
|
||||||
|
if (shuffleMode == SHUFFLE_MODE_SHUFFLE) {
|
||||||
|
int startPosition;
|
||||||
|
startPosition = new Random().nextInt(playlistSongs.size());
|
||||||
|
openQueue(playlistSongs, startPosition, true);
|
||||||
|
setShuffleMode(shuffleMode);
|
||||||
|
} else {
|
||||||
|
openQueue(playlistSongs, 0, true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Toast.makeText(getApplicationContext(), R.string.playlist_is_empty, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
|
|
|
@ -220,7 +220,8 @@ public class ImageUtil {
|
||||||
return inSampleSize;
|
return inSampleSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Bitmap getResizedBitmap(Bitmap image, int maxSize) {
|
@NonNull
|
||||||
|
public static Bitmap getResizedBitmap(@NonNull Bitmap image, int maxSize) {
|
||||||
int width = image.getWidth();
|
int width = image.getWidth();
|
||||||
int height = image.getHeight();
|
int height = image.getHeight();
|
||||||
|
|
||||||
|
|
|
@ -43,16 +43,13 @@
|
||||||
android:textSize="12sp"
|
android:textSize="12sp"
|
||||||
tools:ignore="RtlHardcoded,RtlSymmetry" />
|
tools:ignore="RtlHardcoded,RtlSymmetry" />
|
||||||
|
|
||||||
<SeekBar
|
<androidx.appcompat.widget.AppCompatSeekBar
|
||||||
android:id="@+id/progressSlider"
|
android:id="@+id/progressSlider"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerVertical="true"
|
android:layout_centerVertical="true"
|
||||||
android:layout_toLeftOf="@id/songTotalTime"
|
android:layout_toLeftOf="@id/songTotalTime"
|
||||||
android:layout_toRightOf="@id/songCurrentProgress"
|
android:layout_toRightOf="@id/songCurrentProgress"
|
||||||
android:maxHeight="3dp"
|
|
||||||
android:progressDrawable="@drawable/color_progress_seek"
|
|
||||||
android:splitTrack="false"
|
|
||||||
tools:ignore="RtlHardcoded,UnusedAttribute"
|
tools:ignore="RtlHardcoded,UnusedAttribute"
|
||||||
tools:progress="20" />
|
tools:progress="20" />
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/viewGroup"
|
android:id="@+id/viewGroup"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -21,8 +22,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:maxHeight="3dp"
|
tools:progress="20" />
|
||||||
android:progressDrawable="@drawable/color_progress_seek" />
|
|
||||||
|
|
||||||
<code.name.monkey.retromusic.views.IconImageView
|
<code.name.monkey.retromusic.views.IconImageView
|
||||||
android:id="@+id/volumeUp"
|
android:id="@+id/volumeUp"
|
||||||
|
|
Loading…
Reference in a new issue