Skip to content

Commit b4615ef

Browse files
committed
add warning feedback: no song
1 parent 78a4968 commit b4615ef

File tree

6 files changed

+20
-7
lines changed

6 files changed

+20
-7
lines changed

app/src/main/java/com/junnanhao/next/common/App.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.junnanhao.next.common
22

33
import android.app.Application
4-
import com.junnanhao.next.BuildConfig
54
import com.junnanhao.next.data.DaggerSongsRepositoryComponent
65
import com.junnanhao.next.data.SongsRepositoryComponent
76
import com.junnanhao.next.common.di.ApplicationModule

app/src/main/java/com/junnanhao/next/player/Player.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ class Player private constructor() : IPlayer {
3535
playbackCallback?.onPrepared(currentSong)
3636
player.start()
3737
}
38+
player.setOnErrorListener { mp, what, extra ->
39+
playbackCallback?.onComplete()
40+
false
41+
}
3842
player.prepareAsync()
3943
player.setOnCompletionListener({ playbackCallback?.onComplete() })
4044
// todo: notify playing status changed

app/src/main/java/com/junnanhao/next/ui/player/PlayerContract.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import com.junnanhao.next.data.model.Song
1111
@Suppress("UNUSED")
1212
interface PlayerContract {
1313
interface View : BaseView<Presenter> {
14-
fun showError()
14+
fun showError(error:String)
1515
fun showSongInfo(song: Song?)
1616
fun showPermissionNotGranted()
1717
fun showLoading()

app/src/main/java/com/junnanhao/next/ui/player/PlayerFragment.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ class PlayerFragment : Fragment(), PlayerContract.View {
4343
fun instance(): PlayerFragment {
4444
return PlayerFragment()
4545
}
46+
4647
private val SWIPE_MIN_DISTANCE = 120
4748
private val SWIPE_MAX_OFF_PATH = 250
4849
private val SWIPE_THRESHOLD_VELOCITY = 200
@@ -115,8 +116,9 @@ class PlayerFragment : Fragment(), PlayerContract.View {
115116
return mDetector.onTouchEvent(m)
116117
}
117118

118-
override fun showError() {
119-
Toast.makeText(context, "Error", Toast.LENGTH_SHORT).show()
119+
override fun showError(error: String) {
120+
title.text = error
121+
Toast.makeText(context, error, Toast.LENGTH_SHORT).show()
120122
}
121123

122124
private var DarkVibrantColor: Int = 0

app/src/main/java/com/junnanhao/next/ui/player/PlayerPresenter.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import com.junnanhao.next.player.PlaybackCallback
66
import com.junnanhao.next.player.Player
77
import io.reactivex.android.schedulers.AndroidSchedulers
88
import io.realm.Realm
9+
import timber.log.Timber
910
import java.util.*
1011
import javax.inject.Inject
1112

@@ -21,9 +22,11 @@ class PlayerPresenter @Inject constructor(
2122

2223
val player: Player = Player.instance
2324
val realm: Realm = Realm.getDefaultInstance()
25+
var scanned: Boolean = false
2426

2527
init {
2628
player.playbackCallback = object : PlaybackCallback {
29+
2730
override fun onPrepared(song: Song?) {
2831
mView.showSongInfo(song)
2932
}
@@ -37,7 +40,10 @@ class PlayerPresenter @Inject constructor(
3740
override fun scan() {
3841
mSongsRepository.scanMusic()
3942
.observeOn(AndroidSchedulers.mainThread())
40-
.subscribe({ next() })
43+
.subscribe({ next() },
44+
{ throwable: Throwable? -> Timber.wtf(throwable) },
45+
{ scanned = true })
46+
4147
}
4248

4349
@Inject
@@ -65,8 +71,10 @@ class PlayerPresenter @Inject constructor(
6571
val random = Random()
6672
val song = list.get(random.nextInt(list.size))
6773
player.play(song)
68-
} else {
74+
} else if (!scanned) {
6975
scan()
76+
} else {
77+
mView.showError("没有歌曲")
7078
}
7179
}
7280

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88
jcenter()
99
}
1010
dependencies {
11-
classpath 'com.android.tools.build:gradle:3.0.0-alpha2'
11+
classpath 'com.android.tools.build:gradle:3.0.0-alpha3'
1212
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
1313
classpath "io.realm:realm-gradle-plugin:$realm_version"
1414
// NOTE: Do not place your application dependencies here; they belong

0 commit comments

Comments
 (0)