From 4c20a9c319b0e9a68b22f2ded3a955924459f15d Mon Sep 17 00:00:00 2001 From: amazing-username Date: Sat, 20 Apr 2019 19:45:37 -0400 Subject: [PATCH] Start work on Play Count. Able to display the play count but the count numbering is off. #9 --- .../com/example/mear/activities/MainActivity.kt | 17 +++++++++++++++++ .../java/com/example/mear/constants/Interval.kt | 5 +++++ .../mear/playback/service/MusicService.kt | 3 ++- app/src/main/res/menu/popup_menu.xml | 3 +++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/example/mear/constants/Interval.kt diff --git a/app/src/main/java/com/example/mear/activities/MainActivity.kt b/app/src/main/java/com/example/mear/activities/MainActivity.kt index 0c004e0..e2d92a1 100644 --- a/app/src/main/java/com/example/mear/activities/MainActivity.kt +++ b/app/src/main/java/com/example/mear/activities/MainActivity.kt @@ -1,6 +1,7 @@ package com.example.mear.activities import android.Manifest +import android.content.Context import android.content.Intent import android.content.pm.PackageManager import android.graphics.Color @@ -12,6 +13,7 @@ import android.support.v4.content.ContextCompat import android.view.MenuItem import android.view.View import android.widget.PopupMenu +import android.widget.Toast import java.lang.Exception import java.lang.Runnable @@ -30,17 +32,23 @@ import com.example.mear.constants.ControlTypes import com.example.mear.listeners.TrackElaspingChange import com.example.mear.models.PlayControls import com.example.mear.R +import com.example.mear.models.PlayCount +import com.example.mear.repositories.PlayCountRepository import com.example.mear.repositories.RepeatRepository import com.example.mear.repositories.ShuffleRepository +import com.example.mear.repositories.TrackRepository import com.example.mear.util.ConvertByteArray import com.example.mear.util.ExtractCover +import kotlinx.coroutines.delay class MainActivity : BaseServiceActivity() { + private val ctx: Context? = this private var coverArtHandler: Handler? = Handler() private var musicHandler: Handler? = Handler() private var updateLibraryHandler: Handler? = Handler() + private var playCountUpdated: Boolean? = false private var serviceBinded: Boolean? = false private var repeatOn: Boolean? = false private var shuffleOn: Boolean? = false @@ -230,6 +238,7 @@ class MainActivity : BaseServiceActivity() { print(exMsg) } NextTrack.isEnabled = true + playCountUpdated = false } private fun playPreviousSongTrack() { PreviousTrack.isEnabled = false @@ -243,10 +252,12 @@ class MainActivity : BaseServiceActivity() { print(exMsg) } PreviousTrack.isEnabled = true + playCountUpdated = false } override fun configureTrackDisplay() { try { runOnUiThread { + playCountUpdated = false configurePlayControlsDisplay() val currTrack = musicService!!.getCurrentTrack() val trackTitle = currTrack.title @@ -335,6 +346,12 @@ class MainActivity : BaseServiceActivity() { R.id.action_song_view -> { startActivity(Intent(this, SongViewActivity::class.java)) } + R.id.action_song_play_count-> { + val trk = musicService!!.getCurrentTrack() + val pc = PlayCountRepository(this).getPlayCount(trk.id) + val playCount = pc.playCount + Toast.makeText(this, "Song played $playCount times", Toast.LENGTH_LONG).show() + } } true } diff --git a/app/src/main/java/com/example/mear/constants/Interval.kt b/app/src/main/java/com/example/mear/constants/Interval.kt new file mode 100644 index 0000000..ae787e8 --- /dev/null +++ b/app/src/main/java/com/example/mear/constants/Interval.kt @@ -0,0 +1,5 @@ +package com.example.mear.constants + +object Interval { + const val SONG_REWIND = 4 +} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/playback/service/MusicService.kt b/app/src/main/java/com/example/mear/playback/service/MusicService.kt index c3876e6..b993feb 100644 --- a/app/src/main/java/com/example/mear/playback/service/MusicService.kt +++ b/app/src/main/java/com/example/mear/playback/service/MusicService.kt @@ -12,6 +12,7 @@ import java.lang.Exception import kotlin.random.Random import com.example.mear.constants.ControlTypes +import com.example.mear.constants.Interval import com.example.mear.management.MusicFiles import com.example.mear.management.TrackManager import com.example.mear.models.PlayControls @@ -37,7 +38,7 @@ class MusicService: Service() { private var shuffleOn: Boolean? = null private var repeatOn: Boolean? = null private val mBinder = LocalBinder() - private val seconds = 4 + private val seconds = Interval.SONG_REWIND inner class LocalBinder : Binder() { diff --git a/app/src/main/res/menu/popup_menu.xml b/app/src/main/res/menu/popup_menu.xml index 7c3c7ed..643c0ad 100644 --- a/app/src/main/res/menu/popup_menu.xml +++ b/app/src/main/res/menu/popup_menu.xml @@ -7,4 +7,7 @@ + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9c9628..9b93fff 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -35,6 +35,7 @@ Settings Songs + Play Count About