Implemented functionality to repeat the track #23
This commit is contained in:
committed by
amazing-username
parent
040544e630
commit
3d7c293555
@@ -135,7 +135,6 @@
|
|||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_split_apk_resources" />
|
<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/javac" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
|
<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/manifest-checker" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
||||||
|
|||||||
@@ -38,7 +38,8 @@ import kotlinx.coroutines.runBlocking
|
|||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
private var musicService: MusicService? = null
|
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?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
@@ -100,6 +101,9 @@ class MainActivity : AppCompatActivity() {
|
|||||||
ShuffleTracks.setOnClickListener {
|
ShuffleTracks.setOnClickListener {
|
||||||
toggleShuffle()
|
toggleShuffle()
|
||||||
}
|
}
|
||||||
|
RepeatTrack.setOnClickListener {
|
||||||
|
toggleRepeat()
|
||||||
|
}
|
||||||
SettingsLink.setOnClickListener {
|
SettingsLink.setOnClickListener {
|
||||||
val intent = Intent(this, SettingsActivity::class.java)
|
val intent = Intent(this, SettingsActivity::class.java)
|
||||||
try {
|
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() {
|
private fun playSongTrack() {
|
||||||
PlayTrack.isEnabled = false
|
PlayTrack.isEnabled = false
|
||||||
@@ -153,7 +176,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
private fun playNextSongTrack() {
|
private fun playNextSongTrack() {
|
||||||
NextTrack.isEnabled = false
|
NextTrack.isEnabled = false
|
||||||
try {
|
try {
|
||||||
val controls = PlayControls(shuffleOn!!)
|
val controls = PlayControls(shuffleOn!!, repeatOn!!)
|
||||||
musicService!!.playNextTrack(controls)
|
musicService!!.playNextTrack(controls)
|
||||||
|
|
||||||
configureTrackDisplay()
|
configureTrackDisplay()
|
||||||
@@ -167,7 +190,7 @@ class MainActivity : AppCompatActivity() {
|
|||||||
private fun playPreviousSongTrack() {
|
private fun playPreviousSongTrack() {
|
||||||
PreviousTrack.isEnabled = false
|
PreviousTrack.isEnabled = false
|
||||||
try {
|
try {
|
||||||
val controls = PlayControls(shuffleOn!!)
|
val controls = PlayControls(shuffleOn!!, repeatOn!!)
|
||||||
musicService!!.playPreviousTrack(controls)
|
musicService!!.playPreviousTrack(controls)
|
||||||
|
|
||||||
configureTrackDisplay()
|
configureTrackDisplay()
|
||||||
@@ -335,5 +358,4 @@ class MainActivity : AppCompatActivity() {
|
|||||||
|
|
||||||
private var musicHandler: Handler? = Handler()
|
private var musicHandler: Handler? = Handler()
|
||||||
private var shuffleOn: Boolean? = false
|
private var shuffleOn: Boolean? = false
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package com.example.mear.models
|
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 trackPlayer: MediaPlayer? = null
|
||||||
private var currentSongIndex: Int? = null
|
private var currentSongIndex: Int? = null
|
||||||
private var shuffleOn: Boolean? = false
|
private var shuffleOn: Boolean? = false
|
||||||
|
private var repeatOn: Boolean? = false
|
||||||
private val mBinder = LocalBinder()
|
private val mBinder = LocalBinder()
|
||||||
private val seconds = 4
|
private val seconds = 4
|
||||||
|
|
||||||
@@ -131,6 +132,7 @@ class MusicService: Service() {
|
|||||||
}
|
}
|
||||||
fun configureControl(controls: PlayControls) {
|
fun configureControl(controls: PlayControls) {
|
||||||
shuffleOn = controls.shuffleOn
|
shuffleOn = controls.shuffleOn
|
||||||
|
repeatOn = controls.repeatOn
|
||||||
}
|
}
|
||||||
fun playNextTrack(controls: PlayControls) {
|
fun playNextTrack(controls: PlayControls) {
|
||||||
try {
|
try {
|
||||||
@@ -159,6 +161,9 @@ class MusicService: Service() {
|
|||||||
|
|
||||||
private fun fetchSongIndex(playType: PlayTypes): Int {
|
private fun fetchSongIndex(playType: PlayTypes): Int {
|
||||||
var songIndex: Int? = currentSongIndex
|
var songIndex: Int? = currentSongIndex
|
||||||
|
if (repeatOn!!) {
|
||||||
|
return songIndex!!
|
||||||
|
}
|
||||||
val songCount = retrieveSongCount()
|
val songCount = retrieveSongCount()
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -259,9 +264,9 @@ class MusicService: Service() {
|
|||||||
private fun retrieveSongCount(): Int? {
|
private fun retrieveSongCount(): Int? {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
var db = DatabaseManager(this)
|
//var db = DatabaseManager(this)
|
||||||
var trackDb = TrackRepository(this)
|
var trackDb = TrackRepository(this)
|
||||||
val count = trackDb.getSongCount()
|
val count = TrackRepository(this).getSongCount()
|
||||||
|
|
||||||
return count
|
return count
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:layout_marginEnd="4dp"
|
android:layout_marginEnd="4dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:text="ROff"
|
android:text="@string/repeat_off"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
|
|
||||||
<string name="shuffle_on">SOn</string>
|
<string name="shuffle_on">SOn</string>
|
||||||
<string name="shuffle_off">SOff</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="title_activity_settings">Settings</string>
|
||||||
|
|
||||||
<string name="track_start">0:00</string>
|
<string name="track_start">0:00</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user