Implemented functionality to repeat the track #23

This commit is contained in:
amazing-username
2019-03-10 10:28:17 -04:00
committed by amazing-username
parent 040544e630
commit 3d7c293555
6 changed files with 37 additions and 9 deletions
-1
View File
@@ -135,7 +135,6 @@
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_split_apk_resources" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint_jar" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
@@ -38,7 +38,8 @@ import kotlinx.coroutines.runBlocking
class MainActivity : AppCompatActivity() {
private var musicService: MusicService? = null
private var serviceBinded: Boolean? = null
private var serviceBinded: Boolean? = false
private var repeatOn: Boolean? = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -100,6 +101,9 @@ class MainActivity : AppCompatActivity() {
ShuffleTracks.setOnClickListener {
toggleShuffle()
}
RepeatTrack.setOnClickListener {
toggleRepeat()
}
SettingsLink.setOnClickListener {
val intent = Intent(this, SettingsActivity::class.java)
try {
@@ -134,6 +138,25 @@ class MainActivity : AppCompatActivity() {
}
}
}
private fun toggleRepeat() {
val repeatText = RepeatTrack.text.toString()
val on = resources.getString(R.string.repeat_on)
val off = resources.getString(R.string.repeat_off)
when (repeatText) {
on -> {
repeatOn = false
RepeatTrack.text = off
}
off -> {
repeatOn = true
RepeatTrack.text = on
}
else -> {
repeatOn = false
RepeatTrack.text = off
}
}
}
private fun playSongTrack() {
PlayTrack.isEnabled = false
@@ -153,7 +176,7 @@ class MainActivity : AppCompatActivity() {
private fun playNextSongTrack() {
NextTrack.isEnabled = false
try {
val controls = PlayControls(shuffleOn!!)
val controls = PlayControls(shuffleOn!!, repeatOn!!)
musicService!!.playNextTrack(controls)
configureTrackDisplay()
@@ -167,7 +190,7 @@ class MainActivity : AppCompatActivity() {
private fun playPreviousSongTrack() {
PreviousTrack.isEnabled = false
try {
val controls = PlayControls(shuffleOn!!)
val controls = PlayControls(shuffleOn!!, repeatOn!!)
musicService!!.playPreviousTrack(controls)
configureTrackDisplay()
@@ -335,5 +358,4 @@ class MainActivity : AppCompatActivity() {
private var musicHandler: Handler? = Handler()
private var shuffleOn: Boolean? = false
}
@@ -1,4 +1,4 @@
package com.example.mear.models
data class PlayControls(val shuffleOn: Boolean) {
data class PlayControls(val shuffleOn: Boolean, val repeatOn: Boolean) {
}
@@ -24,6 +24,7 @@ class MusicService: Service() {
private var trackPlayer: MediaPlayer? = null
private var currentSongIndex: Int? = null
private var shuffleOn: Boolean? = false
private var repeatOn: Boolean? = false
private val mBinder = LocalBinder()
private val seconds = 4
@@ -131,6 +132,7 @@ class MusicService: Service() {
}
fun configureControl(controls: PlayControls) {
shuffleOn = controls.shuffleOn
repeatOn = controls.repeatOn
}
fun playNextTrack(controls: PlayControls) {
try {
@@ -159,6 +161,9 @@ class MusicService: Service() {
private fun fetchSongIndex(playType: PlayTypes): Int {
var songIndex: Int? = currentSongIndex
if (repeatOn!!) {
return songIndex!!
}
val songCount = retrieveSongCount()
try {
@@ -259,9 +264,9 @@ class MusicService: Service() {
private fun retrieveSongCount(): Int? {
try {
var db = DatabaseManager(this)
//var db = DatabaseManager(this)
var trackDb = TrackRepository(this)
val count = trackDb.getSongCount()
val count = TrackRepository(this).getSongCount()
return count
}
@@ -24,7 +24,7 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="4dp"
android:layout_marginBottom="8dp"
android:text="ROff"
android:text="@string/repeat_off"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
+2
View File
@@ -10,6 +10,8 @@
<string name="shuffle_on">SOn</string>
<string name="shuffle_off">SOff</string>
<string name="repeat_on">ROn</string>
<string name="repeat_off">ROff</string>
<string name="title_activity_settings">Settings</string>
<string name="track_start">0:00</string>