From b1cfa373b000a8cf6772582a18b264244bf9dcf4 Mon Sep 17 00:00:00 2001 From: h4h13 Date: Wed, 17 Jul 2019 00:21:04 +0530 Subject: [PATCH] Fix crashing on profile, color on now playing themes --- app/src/main/assets/retro-changelog.html | 2 +- .../tageditor/WriteTagsAsyncTask.java | 1 + .../monkey/retromusic/extensions/ColorExt.kt | 21 ++++ .../retromusic/fragments/VolumeFragment.kt | 3 +- .../AdaptivePlaybackControlsFragment.kt | 3 +- .../card/CardPlaybackControlsFragment.kt | 3 +- .../color/ColorPlaybackControlsFragment.kt | 17 +-- .../player/fit/FitPlaybackControlsFragment.kt | 3 +- .../flat/FlatPlaybackControlsFragment.kt | 3 +- .../full/FullPlaybackControlsFragment.kt | 3 +- .../LockScreenPlayerControlsFragment.kt | 3 +- .../material/MaterialControlsFragment.kt | 3 +- .../normal/PlayerPlaybackControlsFragment.kt | 4 +- .../retromusic/model/AbsCustomPlaylist.java | 3 +- .../service/MediaButtonIntentReceiver.kt | 6 +- .../retromusic/service/MusicService.java | 105 ++++++++++-------- .../monkey/retromusic/util/ImageUtil.java | 3 +- ...ragment_color_player_playback_controls.xml | 5 +- app/src/main/res/layout/fragment_volume.xml | 4 +- 19 files changed, 114 insertions(+), 81 deletions(-) create mode 100644 app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt diff --git a/app/src/main/assets/retro-changelog.html b/app/src/main/assets/retro-changelog.html index 4d77c2dd1..8152c9ad4 100644 --- a/app/src/main/assets/retro-changelog.html +++ b/app/src/main/assets/retro-changelog.html @@ -1 +1 @@ -

We're really sorry for Announcing this Retro Music is driving towards pure Android Material Design guidelines we don't want any unnecessary UI elements that don't need for Music player.

v3.2.120

v3.2.105

v3.2.100

v3.2.000

v3.1.900

v3.1.850

v3.1.800

v3.1.700

v3.1.400

v3.1.300

v3.1.240

v3.1.200

v3.0.570

If you see entire app white or dark or black select same theme in settings to fix

FAQ's

*If you face any UI related issues you clear app data and cache, if its not working try to uninstall and install again.

\ No newline at end of file +

We're really sorry for Announcing this Retro Music is driving towards pure Android Material Design guidelines we don't want any unnecessary UI elements that don't need for Music player.

v3.2.125

v3.2.120

v3.2.105

v3.2.100

v3.2.000

v3.1.900

v3.1.850

v3.1.800

v3.1.700

v3.1.400

v3.1.300

v3.1.240

v3.1.200

v3.0.570

If you see entire app white or dark or black select same theme in settings to fix

FAQ's

*If you face any UI related issues you clear app data and cache, if its not working try to uninstall and install again.

\ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java index 8ead2b76a..010a28f83 100644 --- a/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java +++ b/app/src/main/java/code/name/monkey/retromusic/activities/tageditor/WriteTagsAsyncTask.java @@ -133,6 +133,7 @@ public class WriteTagsAsyncTask extends (Activity) context, toBeScanned) : null); } + @NonNull @Override protected Dialog createDialog(@NonNull Context context) { return new MaterialDialog(context, new BottomSheet()) diff --git a/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt new file mode 100644 index 000000000..51a9b9a23 --- /dev/null +++ b/app/src/main/java/code/name/monkey/retromusic/extensions/ColorExt.kt @@ -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) +} \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt index aa4d2abe6..eaa1ad18b 100755 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/VolumeFragment.kt @@ -12,6 +12,7 @@ import android.widget.SeekBar import androidx.fragment.app.Fragment import code.name.monkey.appthemehelper.ThemeStore 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.helper.MusicPlayerRemote import code.name.monkey.retromusic.util.PreferenceUtil @@ -109,7 +110,6 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum } fun setTintable(color: Int) { - ViewUtil.setProgressDrawable(volumeSeekBar, color, true) } @@ -127,7 +127,6 @@ class VolumeFragment : Fragment(), SeekBar.OnSeekBarChangeListener, OnAudioVolum fun setTintableColor(color: Int) { volumeDown.setColorFilter(color, PorterDuff.Mode.SRC_IN) volumeUp.setColorFilter(color, PorterDuff.Mode.SRC_IN) - //TintHelper.setTintAuto(volumeSeekBar, color, false) ViewUtil.setProgressDrawable(volumeSeekBar, color, true) } diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt index 1cd64bb91..ed4cefb15 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/adaptive/AdaptivePlaybackControlsFragment.kt @@ -14,6 +14,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -100,7 +101,7 @@ class AdaptivePlaybackControlsFragment : AbsPlayerControlsFragment() { val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.accentColor(context!!) + ThemeStore.accentColor(context!!).ripAlpha() } TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false) TintHelper.setTintAuto(playPauseButton, colorFinal, true) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt index 5954f6b25..923cef51f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/card/CardPlaybackControlsFragment.kt @@ -14,6 +14,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -127,7 +128,7 @@ class CardPlaybackControlsFragment : AbsPlayerControlsFragment() { val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.accentColor(context!!) + ThemeStore.accentColor(context!!).ripAlpha() } image.setColorFilter(colorFinal, PorterDuff.Mode.SRC_IN) TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context, ColorUtil.isColorLight(colorFinal)), false) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt index 2be99a8dc..2a9164547 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/color/ColorPlaybackControlsFragment.kt @@ -15,14 +15,14 @@ import android.widget.SeekBar import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler import code.name.monkey.retromusic.misc.SimpleOnSeekbarChangeListener import code.name.monkey.retromusic.service.MusicService -import code.name.monkey.retromusic.fragments.base.AbsPlayerControlsFragment 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.* class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() { @@ -99,7 +99,7 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() { title!!.setTextColor(lastPlaybackControlsColor) text!!.setTextColor(lastDisabledPlaybackControlsColor) - setProgressBarColor(lastPlaybackControlsColor, lastDisabledPlaybackControlsColor) + TintHelper.setTintAuto(progressSlider, lastPlaybackControlsColor, false) volumeFragment?.setTintableColor(lastPlaybackControlsColor) @@ -111,17 +111,6 @@ class ColorPlaybackControlsFragment : AbsPlayerControlsFragment() { 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() { TintHelper.setTintAuto(playPauseButton, Color.WHITE, true) TintHelper.setTintAuto(playPauseButton, Color.BLACK, false) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt index 2d24d31c9..fffa948ff 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/fit/FitPlaybackControlsFragment.kt @@ -16,6 +16,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -113,7 +114,7 @@ class FitPlaybackControlsFragment : AbsPlayerControlsFragment() { val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.accentColor(context!!) + ThemeStore.accentColor(context!!).ripAlpha() } volumeFragment?.setTintable(colorFinal) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt index 0eee07935..3c56b1d54 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/flat/FlatPlaybackControlsFragment.kt @@ -15,6 +15,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.MusicProgressViewUpdateHelper.Callback @@ -102,7 +103,7 @@ class FlatPlaybackControlsFragment : AbsPlayerControlsFragment(), Callback { val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.accentColor(context!!) + ThemeStore.accentColor(context!!).ripAlpha() } updateTextColors(colorFinal) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt index 9ca744826..46e00d13f 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/full/FullPlaybackControlsFragment.kt @@ -21,6 +21,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -111,7 +112,7 @@ class FullPlaybackControlsFragment : AbsPlayerControlsFragment(), PopupMenu.OnMe val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.accentColor(context!!) + ThemeStore.accentColor(context!!).ripAlpha() } volumeFragment?.setTintableColor(colorFinal) text.setTextColor(colorFinal) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt index 52511340b..716219101 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/lockscreen/LockScreenPlayerControlsFragment.kt @@ -29,6 +29,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -123,7 +124,7 @@ class LockScreenPlayerControlsFragment : AbsPlayerControlsFragment() { val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.textColorSecondary(context!!) + ThemeStore.textColorSecondary(context!!).ripAlpha() } volumeFragment?.setTintable(colorFinal) ViewUtil.setProgressDrawable(progressSlider, ColorUtil.stripAlpha(colorFinal), true) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt index 96e66e288..091d7ec1d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/material/MaterialControlsFragment.kt @@ -13,6 +13,7 @@ import code.name.monkey.appthemehelper.util.ATHUtil import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -106,7 +107,7 @@ class MaterialControlsFragment : AbsPlayerControlsFragment() { lastPlaybackControlsColor = color color } else { - ThemeStore.textColorSecondary(context!!) + ThemeStore.textColorSecondary(context!!).ripAlpha() } text.setTextColor(colorFinal) ViewUtil.setProgressDrawable(progressSlider, ColorUtil.stripAlpha(colorFinal), true) diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt index 3c445d7f6..77583ede5 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/player/normal/PlayerPlaybackControlsFragment.kt @@ -15,6 +15,7 @@ import code.name.monkey.appthemehelper.util.ColorUtil import code.name.monkey.appthemehelper.util.MaterialValueHelper import code.name.monkey.appthemehelper.util.TintHelper 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.MusicProgressViewUpdateHelper import code.name.monkey.retromusic.helper.PlayPauseButtonOnClickHandler @@ -71,10 +72,9 @@ class PlayerPlaybackControlsFragment : AbsPlayerControlsFragment() { val colorFinal = if (PreferenceUtil.getInstance().adaptiveColor) { color } else { - ThemeStore.accentColor(context!!) + ThemeStore.accentColor(context!!).ripAlpha() } - TintHelper.setTintAuto(playPauseButton, MaterialValueHelper.getPrimaryTextColor(context!!, ColorUtil.isColorLight(colorFinal)), false) TintHelper.setTintAuto(playPauseButton, colorFinal, true) ViewUtil.setProgressDrawable(progressSlider, colorFinal) diff --git a/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java b/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java index 07ea31408..031e48c68 100644 --- a/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java +++ b/app/src/main/java/code/name/monkey/retromusic/model/AbsCustomPlaylist.java @@ -17,9 +17,10 @@ package code.name.monkey.retromusic.model; import android.content.Context; import android.os.Parcel; +import androidx.annotation.NonNull; + import java.util.ArrayList; -import androidx.annotation.NonNull; import io.reactivex.Observable; /** diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt b/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt index b48f34dc8..ab0c95d9e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/MediaButtonIntentReceiver.kt @@ -51,11 +51,11 @@ class MediaButtonIntentReceiver : BroadcastReceiver() { } companion object { - val TAG = MediaButtonIntentReceiver::class.java.simpleName + val TAG: String = MediaButtonIntentReceiver::class.java.simpleName 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 mClickCounter = 0 diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java index 4db87c680..8155bf1ce 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java @@ -29,7 +29,6 @@ import android.graphics.Point; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.media.audiofx.AudioEffect; -import android.media.session.MediaSession; import android.os.Binder; import android.os.Build; 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.PreferenceUtil; 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_PENDING_QUIT; @@ -142,6 +142,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP | PlaybackStateCompat.ACTION_STOP | PlaybackStateCompat.ACTION_SEEK_TO; private final IBinder musicBind = new MusicBinder(); + public boolean pendingQuit = false; private AppWidgetBig appWidgetBig = AppWidgetBig.Companion.getInstance(); private AppWidgetClassic appWidgetClassic = AppWidgetClassic.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 ArrayList playingQueue = new ArrayList<>(); private ArrayList originalPlayingQueue = new ArrayList<>(); @@ -244,20 +244,18 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action != null) { - switch (action) { - case Intent.ACTION_HEADSET_PLUG: - int state = intent.getIntExtra("state", -1); - switch (state) { - case 0: - Log.d(TAG, "Headset unplugged"); - pause(); - break; - case 1: - Log.d(TAG, "Headset plugged"); - play(); - break; - } - break; + if (Intent.ACTION_HEADSET_PLUG.equals(action)) { + int state = intent.getIntExtra("state", -1); + switch (state) { + case 0: + Log.d(TAG, "Headset unplugged"); + pause(); + break; + case 1: + Log.d(TAG, "Headset plugged"); + play(); + break; + } } } } @@ -352,7 +350,10 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP 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() { @Override public void onPlay() { @@ -390,8 +391,9 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP } }); - mediaSession.setFlags(MediaSession.FLAG_HANDLES_TRANSPORT_CONTROLS - | MediaSession.FLAG_HANDLES_MEDIA_BUTTONS); + mediaSession.setFlags(MediaSessionCompat.FLAG_HANDLES_MEDIA_BUTTONS + | MediaSessionCompat.FLAG_HANDLES_TRANSPORT_CONTROLS + ); mediaSession.setMediaButtonReceiver(mediaButtonReceiverPendingIntent); } @@ -417,31 +419,7 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP play(); break; case ACTION_PLAY_PLAYLIST: - Playlist playlist = intent.getParcelableExtra(INTENT_EXTRA_PLAYLIST); - int shuffleMode = intent.getIntExtra(INTENT_EXTRA_SHUFFLE_MODE, getShuffleMode()); - if (playlist != null) { - ArrayList 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(); - } + playFromPlaylist(intent); break; case ACTION_REWIND: back(true); @@ -464,6 +442,45 @@ public class MusicService extends Service implements SharedPreferences.OnSharedP 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 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 public void onDestroy() { diff --git a/app/src/main/java/code/name/monkey/retromusic/util/ImageUtil.java b/app/src/main/java/code/name/monkey/retromusic/util/ImageUtil.java index eccda10b5..1d1dfb3ee 100644 --- a/app/src/main/java/code/name/monkey/retromusic/util/ImageUtil.java +++ b/app/src/main/java/code/name/monkey/retromusic/util/ImageUtil.java @@ -220,7 +220,8 @@ public class ImageUtil { 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 height = image.getHeight(); diff --git a/app/src/main/res/layout/fragment_color_player_playback_controls.xml b/app/src/main/res/layout/fragment_color_player_playback_controls.xml index 74aabe172..2a2ba8d3b 100644 --- a/app/src/main/res/layout/fragment_color_player_playback_controls.xml +++ b/app/src/main/res/layout/fragment_color_player_playback_controls.xml @@ -43,16 +43,13 @@ android:textSize="12sp" tools:ignore="RtlHardcoded,RtlSymmetry" /> - diff --git a/app/src/main/res/layout/fragment_volume.xml b/app/src/main/res/layout/fragment_volume.xml index 658218d59..2a5e2859a 100755 --- a/app/src/main/res/layout/fragment_volume.xml +++ b/app/src/main/res/layout/fragment_volume.xml @@ -1,6 +1,7 @@ + tools:progress="20" />