From cf402a27c231febfa2f693a9606577e6b6dfff25 Mon Sep 17 00:00:00 2001 From: h4h13 Date: Sun, 13 Oct 2019 00:35:17 +0530 Subject: [PATCH] Fix crashing when switching between tabs fast --- app/build.gradle | 4 +- .../dialogs/CreatePlaylistDialog.kt | 7 +- .../dialogs/RenamePlaylistDialog.kt | 4 -- .../retromusic/dialogs/SleepTimerDialog.kt | 71 ------------------- .../mainactivity/PlaylistsFragment.kt | 2 +- .../mvp/presenter/AlbumDetailsPresenter.kt | 16 ++--- .../mvp/presenter/AlbumPresenter.kt | 5 +- .../mvp/presenter/ArtistDetailsPresenter.kt | 14 ++-- .../mvp/presenter/ArtistPresenter.kt | 15 +--- .../mvp/presenter/GenreDetailsPresenter.kt | 13 +--- .../mvp/presenter/GenrePresenter.kt | 10 +-- .../mvp/presenter/PlaylistPresenter.kt | 10 +-- .../mvp/presenter/PlaylistSongsPresenter.kt | 9 +-- .../mvp/presenter/SearchPresenter.kt | 2 +- .../retromusic/mvp/presenter/SongPresenter.kt | 4 +- 15 files changed, 27 insertions(+), 159 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ccf7efa2..918d6b78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,8 +13,8 @@ android { vectorDrawables.useSupportLibrary = true applicationId "code.name.monkey.retromusic" - versionCode 381 - versionName '3.4.400-beta07' + versionCode 382 + versionName '3.4.400-beta08' multiDexEnabled true diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt index b571f85f..0ccb5a69 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/CreatePlaylistDialog.kt @@ -19,7 +19,6 @@ import android.os.Bundle import android.provider.MediaStore import android.widget.TextView import androidx.fragment.app.DialogFragment -import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R.layout @@ -30,8 +29,6 @@ import code.name.monkey.retromusic.util.PlaylistsUtil import code.name.monkey.retromusic.util.PreferenceUtil import com.afollestad.materialdialogs.LayoutMode import com.afollestad.materialdialogs.MaterialDialog -import com.afollestad.materialdialogs.WhichButton -import com.afollestad.materialdialogs.actions.getActionButton import com.afollestad.materialdialogs.bottomsheets.BottomSheet import com.afollestad.materialdialogs.customview.customView import com.afollestad.materialdialogs.customview.getCustomView @@ -67,7 +64,6 @@ class CreatePlaylistDialog : DialogFragment() { } } } - getActionButton(WhichButton.POSITIVE).updateTextColor(ThemeStore.accentColor(context)) } val dialogView = materialDialog.getCustomView() @@ -77,12 +73,11 @@ class CreatePlaylistDialog : DialogFragment() { MaterialUtil.setTint(actionNewPlaylistContainer, false) val playlistId = arguments!!.getLong(MediaStore.Audio.Playlists.Members.PLAYLIST_ID) - playlistView.appHandleColor().setText(PlaylistsUtil.getNameForPlaylist(context!!, playlistId), TextView.BufferType.EDITABLE) + playlistView.appHandleColor().setText(PlaylistsUtil.getNameForPlaylist(requireContext(), playlistId), TextView.BufferType.EDITABLE) return materialDialog } companion object { - private const val SONGS = "songs" @JvmOverloads fun create(song: Song? = null): CreatePlaylistDialog { val list = ArrayList() diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt index 391bf11c..cd39a301 100644 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/RenamePlaylistDialog.kt @@ -19,7 +19,6 @@ import android.os.Bundle import android.provider.MediaStore.Audio.Playlists.Members.PLAYLIST_ID import android.widget.TextView import androidx.fragment.app.DialogFragment -import code.name.monkey.appthemehelper.ThemeStore import code.name.monkey.appthemehelper.util.MaterialUtil import code.name.monkey.retromusic.R import code.name.monkey.retromusic.R.layout @@ -29,8 +28,6 @@ import code.name.monkey.retromusic.util.PlaylistsUtil import code.name.monkey.retromusic.util.PreferenceUtil import com.afollestad.materialdialogs.LayoutMode import com.afollestad.materialdialogs.MaterialDialog -import com.afollestad.materialdialogs.WhichButton -import com.afollestad.materialdialogs.actions.getActionButton import com.afollestad.materialdialogs.bottomsheets.BottomSheet import com.afollestad.materialdialogs.customview.customView import com.afollestad.materialdialogs.customview.getCustomView @@ -55,7 +52,6 @@ class RenamePlaylistDialog : DialogFragment() { PlaylistsUtil.renamePlaylist(context, playlistId, playlistView.text!!.toString()) } } - getActionButton(WhichButton.POSITIVE).updateTextColor(ThemeStore.accentColor(context)) } val dialogView = materialDialog.getCustomView() diff --git a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt index 66051a27..2050a240 100755 --- a/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt +++ b/app/src/main/java/code/name/monkey/retromusic/dialogs/SleepTimerDialog.kt @@ -181,78 +181,7 @@ class SleepTimerDialog : DialogFragment() { updateCancelButton() } } - - /* override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(R.layout.dialog_sleep_timer, container, false) - }*/ - private fun setProgressBarColor(dark: Int) { ViewUtil.setProgressDrawable(progressSlider = seekBar, newColor = dark) } - - /*override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - - MaterialUtil.setTint(actionCancel, false) - - title.setTextColor(ThemeStore.textColorPrimary(context!!)) - timerDisplay!!.setTextColor(ThemeStore.textColorSecondary(context!!)) - - timerUpdater = TimerUpdater() - - seekArcProgress = PreferenceUtil.getInstance().lastSleepTimerValue - updateTimeDisplayTime() - seekBar.progress = seekArcProgress - - setProgressBarColor(ThemeStore.accentColor(context!!)) - - seekBar.setOnSeekBarChangeListener(object : SeekBar.OnSeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar, i: Int, b: Boolean) { - if (i < 1) { - seekBar.progress = 1 - return - } - seekArcProgress = i - updateTimeDisplayTime() - } - - override fun onStartTrackingTouch(seekBar: SeekBar) { - - } - - override fun onStopTrackingTouch(seekBar: SeekBar) { - PreferenceUtil.getInstance().lastSleepTimerValue = seekArcProgress - } - }) - - actionCancel.apply { - icon = ContextCompat.getDrawable(context, R.drawable.ic_close_white_24dp) - setOnClickListener { - val previous = makeTimerPendingIntent(PendingIntent.FLAG_NO_CREATE) - if (previous != null) { - val am = activity!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager - am.cancel(previous) - previous.cancel() - Toast.makeText(activity, activity!!.resources.getString(R.string.sleep_timer_canceled), Toast.LENGTH_SHORT).show() - } - dismiss() - } - } - actionSet.apply { - icon = ContextCompat.getDrawable(context, R.drawable.ic_time_lapse_white_24dp) - MaterialUtil.setTint(actionSet) - setOnClickListener { - val minutes = seekArcProgress - val pi = makeTimerPendingIntent(PendingIntent.FLAG_CANCEL_CURRENT) - val nextSleepTimerElapsedTime = SystemClock.elapsedRealtime() + minutes * 60 * 1000 - PreferenceUtil.getInstance().setNextSleepTimerElapsedRealtime(nextSleepTimerElapsedTime) - val am = activity!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager - am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, nextSleepTimerElapsedTime, pi) - Toast.makeText(activity, activity!!.resources.getString(R.string.sleep_timer_set, minutes), Toast.LENGTH_SHORT).show() - dismiss() - } - } - }*/ - - } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/PlaylistsFragment.kt b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/PlaylistsFragment.kt index 341075b4..de76a10d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/PlaylistsFragment.kt +++ b/app/src/main/java/code/name/monkey/retromusic/fragments/mainactivity/PlaylistsFragment.kt @@ -50,8 +50,8 @@ class PlaylistsFragment : AbsLibraryPagerRecyclerViewFragment { override fun loadMore(artistId: Int) { disposable += repository.getArtistByIdFlowable(artistId) .map { - view.loadArtistImage(it) + view?.loadArtistImage(it) return@map it.albums } .map { it.filter { filterAlbum -> album.id != filterAlbum.id } } - .subscribe { + .subscribe({ if (it.isEmpty()) { return@subscribe } - view.moreAlbums(ArrayList(it)) - } + view?.moreAlbums(ArrayList(it)) + }, { t -> println(t) }) } override fun loadAlbum(albumId: Int) { disposable += repository.getAlbumFlowable(albumId) .doOnComplete { - view.complete() + view?.complete() } - .subscribe { + .subscribe({ album = it - view.album(it) - } + view?.album(it) + }, { t -> println(t) }) } override fun detachView() { diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt index bbb2027f..0ba96d25 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/AlbumPresenter.kt @@ -42,16 +42,17 @@ interface AlbumsPresenter : Presenter { private var disposable: Disposable? = null private fun showList(albums: ArrayList) { - if (albums.isNotEmpty()) view.albums(albums) else view.showEmptyView() + view?.albums(albums) } override fun detachView() { super.detachView() disposable?.dispose() } + override fun loadAlbums() { disposable = repository.allAlbumsFlowable - .subscribe { this.showList(it) } + .subscribe({ view?.albums(it) }, { t -> println(t) }) } } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt index 96098e10..ca24a318 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistDetailsPresenter.kt @@ -51,7 +51,7 @@ interface ArtistDetailsPresenter : Presenter { cache: String?) { disposable += repository.artistInfoFloable(name, lang, cache) .subscribe { - view.artistInfo(it) + view?.artistInfo(it) } } @@ -60,20 +60,16 @@ interface ArtistDetailsPresenter : Presenter { override fun loadArtist(artistId: Int) { disposable += repository.getArtistByIdFlowable(artistId) .doOnComplete { - view.complete() - } - .subscribe { - this.showArtist(it) + view?.complete() } + .subscribe({ + view?.artist(it) + }, { t -> println(t) }) } override fun detachView() { super.detachView() disposable.dispose() } - - private fun showArtist(artist: Artist) { - view.artist(artist) - } } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt index eeae3f48..c77f380d 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/ArtistPresenter.kt @@ -14,14 +14,12 @@ package code.name.monkey.retromusic.mvp.presenter -import code.name.monkey.retromusic.helper.SearchQueryHelper.songs import code.name.monkey.retromusic.model.Artist import code.name.monkey.retromusic.mvp.BaseView import code.name.monkey.retromusic.mvp.Presenter import code.name.monkey.retromusic.mvp.PresenterImpl import code.name.monkey.retromusic.providers.interfaces.Repository import io.reactivex.disposables.Disposable -import io.reactivex.functions.Consumer import javax.inject.Inject interface ArtistsView : BaseView { @@ -38,13 +36,6 @@ interface ArtistsPresenter : Presenter { private var disposable: Disposable? = null - private fun showList(artists: ArrayList) { - if (songs.isNotEmpty()) - view.artists(artists) - else - view.showEmptyView() - } - override fun detachView() { super.detachView() disposable?.dispose() @@ -52,11 +43,7 @@ interface ArtistsPresenter : Presenter { override fun loadArtists() { disposable = repository.allArtistsFlowable - .subscribe({ - view.artists(it) - }, { - println(it) - }) + .subscribe({ view?.artists(it) }, { t -> println(t) }) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt index ecb1f07d..d62ab123 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenreDetailsPresenter.kt @@ -48,18 +48,7 @@ interface GenreDetailsPresenter : Presenter { override fun loadGenreSongs(genreId: Int) { disposable = repository.getGenreFlowable(genreId) - .subscribe { - showGenre(it) - } - - } - - private fun showGenre(songs: ArrayList) { - if (songs.isNotEmpty()) { - view.songs(songs) - } else { - view.showEmptyView() - } + .subscribe({ view?.songs(it) }, { t -> println(t) }) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt index addd7773..399a4a97 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/GenrePresenter.kt @@ -41,15 +41,7 @@ interface GenresPresenter : Presenter { override fun loadGenres() { disposable = repository.allGenresFlowable - .subscribe { this.showList(it) } - } - - private fun showList(genres: ArrayList) { - if (genres.isNotEmpty()) { - view.genres(genres) - } else { - view.showEmptyView() - } + .subscribe({ view.genres(it) }, { t -> println(t) }) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt index 4a64d56c..022f5610 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistPresenter.kt @@ -43,15 +43,7 @@ interface PlaylistsPresenter : Presenter { override fun playlists() { disposable = repository.allPlaylistsFlowable - .subscribe { this.showList(it) } - } - - private fun showList(arrayList: ArrayList) { - if (arrayList.isEmpty()) { - view.showEmptyView() - } else { - view.playlists(arrayList) - } + .subscribe({ view?.playlists(it) }, { t -> println(t) }) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt index c651689f..0a992894 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/PlaylistSongsPresenter.kt @@ -41,19 +41,12 @@ interface PlaylistSongsPresenter : Presenter { override fun loadPlaylistSongs(playlist: Playlist) { disposable = repository.getPlaylistSongsFlowable(playlist) - .subscribe { - view.songs(it) - } + .subscribe({ view?.songs(it) }, { t -> println(t) }) } override fun detachView() { super.detachView() disposable?.dispose() } - - override fun attachView(view: PlaylistSongsView) { - super.attachView(view) - } - } } \ No newline at end of file diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SearchPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SearchPresenter.kt index 42e527a0..53e1b925 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SearchPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SearchPresenter.kt @@ -46,7 +46,7 @@ interface SearchPresenter : Presenter { } override fun search(query: String?) { - view.showData(repository.search(query)) + view?.showData(repository.search(query)) } } } diff --git a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt index 3f3a639c..e8ec4f1e 100644 --- a/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt +++ b/app/src/main/java/code/name/monkey/retromusic/mvp/presenter/SongPresenter.kt @@ -42,9 +42,7 @@ interface SongPresenter : Presenter { override fun loadSongs() { disposable = repository.allSongsFlowable - .subscribe({ - view?.songs(it) - }, { t -> print(t) }) + .subscribe({ view?.songs(it) }, { t -> print(t) }) } override fun detachView() {