From e98bf952ceb7d6a4c5150b8a942fb54df7b17d92 Mon Sep 17 00:00:00 2001 From: Udit Karode Date: Tue, 31 Mar 2020 15:11:35 +0530 Subject: [PATCH] activities: MainActivity: enhancements * bind service on resume * if the bound service is cached, avoid rebinding * use glide to set playback state drawables --- .../able/activities/MainActivity.kt | 24 +++++++++++++------ .../uditkarode/able/services/MusicService.kt | 1 - 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/io/github/uditkarode/able/activities/MainActivity.kt b/app/src/main/java/io/github/uditkarode/able/activities/MainActivity.kt index be1ff7de..e4c667ec 100644 --- a/app/src/main/java/io/github/uditkarode/able/activities/MainActivity.kt +++ b/app/src/main/java/io/github/uditkarode/able/activities/MainActivity.kt @@ -30,10 +30,10 @@ import android.os.IBinder import android.text.Html import android.view.TouchDelegate import android.view.View -import android.view.ViewParent import androidx.appcompat.app.AppCompatActivity import androidx.core.text.HtmlCompat import androidx.viewpager.widget.ViewPager +import com.bumptech.glide.Glide import com.flurry.android.FlurryAgent import com.google.android.material.bottomnavigation.BottomNavigationView import io.github.inflationx.calligraphy3.CalligraphyConfig @@ -159,21 +159,30 @@ class MainActivity : AppCompatActivity(), Search.SongCallback { override fun onServiceDisconnected(name: ComponentName) { } } - - bindEvent(BindServiceEvent()) } @Subscribe private fun bindEvent(bindServiceEvent: BindServiceEvent){ - bindServiceEvent.toString() /* because the IDE doesn't like it unused */ - if(Shared.serviceRunning(MusicService::class.java, this@MainActivity)) bindService(Intent(this@MainActivity, MusicService::class.java), serviceConn, Context.BIND_IMPORTANT) + if(!Shared.serviceLinked()){ + bindServiceEvent.toString() /* because the IDE doesn't like it unused */ + if(Shared.serviceRunning(MusicService::class.java, this@MainActivity)) + bindService(Intent(this@MainActivity, MusicService::class.java), + serviceConn, Context.BIND_IMPORTANT) + } else { + mService = Shared.mService + songChange(GetSongChangedEvent()) + playPauseEvent(GetPlayPauseEvent(mService!!.mediaPlayer.run { + if(this.isPlaying) SongState.playing + else SongState.paused + })) + } } @Subscribe(threadMode = ThreadMode.MAIN) fun playPauseEvent(playPauseEvent: GetPlayPauseEvent){ playing = playPauseEvent.state == SongState.playing - if(playing) bb_icon.setImageDrawable(getDrawable(R.drawable.pause)) - else bb_icon.setImageDrawable(getDrawable(R.drawable.play)) + if(playing) Glide.with(this).load(R.drawable.pause).into(bb_icon) + else Glide.with(this).load(R.drawable.play).into(bb_icon) if(playing) startSeekbarUpdates() else { @@ -243,6 +252,7 @@ class MainActivity : AppCompatActivity(), Search.SongCallback { override fun onResume() { super.onResume() + bindEvent(BindServiceEvent()) if(!EventBus.getDefault().isRegistered(this)) EventBus.getDefault().register(this) } diff --git a/app/src/main/java/io/github/uditkarode/able/services/MusicService.kt b/app/src/main/java/io/github/uditkarode/able/services/MusicService.kt index 045cd528..3eee1719 100644 --- a/app/src/main/java/io/github/uditkarode/able/services/MusicService.kt +++ b/app/src/main/java/io/github/uditkarode/able/services/MusicService.kt @@ -26,7 +26,6 @@ import android.content.Intent import android.content.IntentFilter import android.graphics.BitmapFactory import android.media.* -import android.media.session.MediaController import android.media.session.MediaSession import android.media.session.PlaybackState import android.os.Binder