diff --git a/app/app.iml b/app/app.iml
index d1399de..8b4c814 100644
--- a/app/app.iml
+++ b/app/app.iml
@@ -135,7 +135,6 @@
-
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 c775225..cd404ff 100644
--- a/app/src/main/java/com/example/mear/activities/MainActivity.kt
+++ b/app/src/main/java/com/example/mear/activities/MainActivity.kt
@@ -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
-
}
diff --git a/app/src/main/java/com/example/mear/models/PlayControls.kt b/app/src/main/java/com/example/mear/models/PlayControls.kt
index d019999..7973ab1 100644
--- a/app/src/main/java/com/example/mear/models/PlayControls.kt
+++ b/app/src/main/java/com/example/mear/models/PlayControls.kt
@@ -1,4 +1,4 @@
package com.example.mear.models
-data class PlayControls(val shuffleOn: Boolean) {
+data class PlayControls(val shuffleOn: Boolean, val repeatOn: Boolean) {
}
\ 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 46cf891..153beae 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
@@ -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
}
diff --git a/app/src/main/res/layout/fragment_track_flow.xml b/app/src/main/res/layout/fragment_track_flow.xml
index 2b4b066..c3f3eec 100644
--- a/app/src/main/res/layout/fragment_track_flow.xml
+++ b/app/src/main/res/layout/fragment_track_flow.xml
@@ -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"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 92bd98a..d031cf3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -10,6 +10,8 @@
SOn
SOff
+ ROn
+ ROff
Settings
0:00