Implemented functionality to repeat the track #23
This commit is contained in:
committed by
amazing-username
parent
040544e630
commit
3d7c293555
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user