Skip to content

Commit b2e0318

Browse files
committed
daast add suppor
1 parent 016c20c commit b2e0318

File tree

8 files changed

+99
-19
lines changed

8 files changed

+99
-19
lines changed

app/src/main/java/ru/vvdev/radiolibrary/TestService.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ package ru.vvdev.radiolibrary
22

33
import android.os.Handler
44
import android.os.Looper
5+
import android.util.Log
56
import com.google.gson.Gson
67
import com.likhanov.radioplayer.model.NotificationData
78
import com.likhanov.radioplayer.radio.RadioService
9+
import com.likhanov.radioplayer.radio.RadioServiceCallback
810
import io.socket.client.IO
911
import io.socket.client.Socket
1012
import org.json.JSONArray
@@ -21,9 +23,23 @@ class TestService : RadioService() {
2123
super.onCreate()
2224
init(this, TestService::class.java)
2325
updateUrl("http://icecast-studio21.cdnvideo.ru/S21_1")
26+
setAd("http://a.adwolf.ru/3145/getCode?pp=bl&ps=cmi&p2=jf&plp=f&pli=b&pop=k&dl=http://www.newradio.ru/")
2427
setSessionActivity(MainActivity::class.java)
2528
setActivityForNotificationIntent(MainActivity::class.java)
2629
initSockets()
30+
setCallback(object : RadioServiceCallback{
31+
override fun onDaastStart(image: String, link: String) {
32+
Log.d("DaastTag", "onDaastStart, image = $image, link = $link")
33+
}
34+
35+
override fun onDaastEnd() {
36+
Log.d("DaastTag", "onDaastEnd")
37+
}
38+
39+
override fun onDaastError() {
40+
Log.d("DaastTag", "onDaastError")
41+
}
42+
})
2743
}
2844

2945
override fun onDestroy() {

radioplayer/src/main/java/com/likhanov/radioplayer/playback/Playback.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ interface Callback {
7676
* @param error to be added to the PlaybackState
7777
*/
7878
void onError(String error);
79+
80+
void onDaastStart(String image, String link);
81+
void onDaastEnd();
82+
void onDaastError();
7983
}
8084

8185
void setCallback(Callback callback);

radioplayer/src/main/java/com/likhanov/radioplayer/playback/PlaybackManager.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,18 @@ class PlaybackManager(val playback: Playback, private val serviceCallback: Playb
144144
updatePlaybackState(error)
145145
}
146146

147+
override fun onDaastStart(image: String?, link: String?) {
148+
serviceCallback.onDaastStart(image ?: "", link ?: "")
149+
}
150+
151+
override fun onDaastEnd() {
152+
serviceCallback.onDaastEnd()
153+
}
154+
155+
override fun onDaastError() {
156+
serviceCallback.onDaastError()
157+
}
158+
147159
interface PlaybackServiceCallback {
148160
fun onPlaybackStart()
149161

@@ -154,5 +166,9 @@ class PlaybackManager(val playback: Playback, private val serviceCallback: Playb
154166
fun onPlaybackStateUpdated(state: PlaybackStateCompat)
155167

156168
fun onPlaybackMetadataUpdated(metadata: MediaMetadataCompat)
169+
170+
fun onDaastStart(image: String, link: String)
171+
fun onDaastEnd()
172+
fun onDaastError()
157173
}
158174
}

radioplayer/src/main/java/com/likhanov/radioplayer/playback/Player.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ class Player(private var url: String = "", private val listener: RadioPlayerCall
4848
mPlayback.setDaastUrl(adUrl)
4949
}
5050

51+
fun daastClicked() = mPlayback.daastClicked()
52+
5153
fun updateUrl(url: String, masterStream: Boolean = false) {
5254
this.url = url
5355
this.masterStream = masterStream

radioplayer/src/main/java/com/likhanov/radioplayer/playback/RadioPlayback.kt

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.likhanov.radioplayer.playback
22

33
import android.support.v4.media.session.PlaybackStateCompat
4+
import android.util.Log
45

56
class RadioPlayback(url: String) : Playback {
67

@@ -10,8 +11,14 @@ class RadioPlayback(url: String) : Playback {
1011

1112
private val playerCallback: RadioPlayerCallback = object : RadioPlayerCallback() {
1213

13-
override fun onDaastSkip() {
14+
override fun onDaastError() {
15+
callback?.onDaastError()
16+
}
1417

18+
override fun onMeta(p0: String?) {
19+
}
20+
21+
override fun onDaastSkip() {
1522
}
1623

1724
override fun onPlay() {
@@ -22,6 +29,14 @@ class RadioPlayback(url: String) : Playback {
2229
callback?.onPlaybackStatusChanged(PlaybackStateCompat.STATE_PAUSED)
2330
}
2431

32+
override fun onDaastStart(p0: String?, p1: String?, p2: String?) {
33+
callback?.onDaastStart(p1, p2)
34+
}
35+
36+
override fun onDaastEnd() {
37+
callback?.onDaastEnd()
38+
}
39+
2540
override fun onError(p0: String?, p1: Int) {
2641
callback?.onError("Player error $p0, $p1")
2742
releaseResources()
@@ -73,6 +88,8 @@ class RadioPlayback(url: String) : Playback {
7388

7489
fun setAd(url: String) = player.setAd(url)
7590

91+
fun daastClicked() = player.daastClicked()
92+
7693
override fun seekTo(position: Long) {
7794

7895
}

radioplayer/src/main/java/com/likhanov/radioplayer/radio/RadioService.kt

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.likhanov.radioplayer.radio
22

33
import android.app.PendingIntent
4-
import android.app.Service
54
import android.content.BroadcastReceiver
65
import android.content.Context
76
import android.content.Intent
@@ -12,7 +11,6 @@ import android.media.AudioManager
1211
import android.os.Build
1312
import android.os.Bundle
1413
import android.os.Handler
15-
import android.os.Message
1614
import android.support.v4.content.ContextCompat
1715
import android.support.v4.media.MediaBrowserCompat
1816
import android.support.v4.media.MediaBrowserServiceCompat
@@ -27,11 +25,10 @@ import com.likhanov.radioplayer.playback.PlaybackManager
2725
import com.likhanov.radioplayer.playback.RadioPlayback
2826
import com.likhanov.radioplayer.util.Store
2927
import io.reactivex.disposables.CompositeDisposable
30-
import java.lang.ref.WeakReference
3128

3229

3330
open class RadioService : MediaBrowserServiceCompat(), PlaybackManager.PlaybackServiceCallback,
34-
AudioManager.OnAudioFocusChangeListener, RadioServiceCallback {
31+
AudioManager.OnAudioFocusChangeListener, RadioServiceListener {
3532

3633
init {
3734
System.loadLibrary("startrek_player")
@@ -54,6 +51,7 @@ open class RadioService : MediaBrowserServiceCompat(), PlaybackManager.PlaybackS
5451
private var lastData: NotificationData? = null
5552
private lateinit var service: MediaBrowserServiceCompat
5653
private lateinit var serviceClass: Class<*>
54+
private var radioServiceCallback: RadioServiceCallback? = null
5755

5856
companion object {
5957
const val MEDIA_ID_ROOT = "__ROOT__"
@@ -124,6 +122,10 @@ open class RadioService : MediaBrowserServiceCompat(), PlaybackManager.PlaybackS
124122
disposable.dispose()
125123
}
126124

125+
override fun setCallback(callback: RadioServiceCallback) {
126+
this.radioServiceCallback = callback
127+
}
128+
127129
override fun isPlaying() = playback.playing()
128130

129131
override fun isPaused() = playback.isPaused()
@@ -134,6 +136,8 @@ open class RadioService : MediaBrowserServiceCompat(), PlaybackManager.PlaybackS
134136

135137
override fun setAd(url: String) = playback.setAd(url)
136138

139+
override fun daastClicked() = playback.daastClicked()
140+
137141
override fun setSessionActivity(activity: Class<*>) {
138142
val intent = Intent(applicationContext, activity)
139143
val pendingIntent = PendingIntent.getActivity(applicationContext, 99, intent, PendingIntent.FLAG_UPDATE_CURRENT)
@@ -196,6 +200,18 @@ open class RadioService : MediaBrowserServiceCompat(), PlaybackManager.PlaybackS
196200
session.setMetadata(metadata)
197201
}
198202

203+
override fun onDaastStart(image: String, link: String) {
204+
radioServiceCallback?.onDaastStart(image, link)
205+
}
206+
207+
override fun onDaastEnd() {
208+
radioServiceCallback?.onDaastEnd()
209+
}
210+
211+
override fun onDaastError() {
212+
radioServiceCallback?.onDaastError()
213+
}
214+
199215
override fun onLoadChildren(parentId: String, result: Result<MutableList<MediaBrowserCompat.MediaItem>>) {
200216

201217
}
Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,7 @@
11
package com.likhanov.radioplayer.radio
22

3-
import android.support.v4.media.MediaBrowserServiceCompat
4-
import com.likhanov.radioplayer.model.NotificationData
5-
63
interface RadioServiceCallback {
7-
fun init(service: MediaBrowserServiceCompat, serviceClass: Class<*>)
8-
fun updateUrl(url: String, masterStream: Boolean = false)
9-
fun setAd(url:String)
10-
fun setSessionActivity(activity: Class<*>)
11-
fun updateNotification(data: NotificationData?)
12-
fun setDefaultDrawable(drawableRes: Int)
13-
fun setActivityForNotificationIntent(activity: Class<*>)
14-
fun setNotificationDrawable(drawableRes: Int)
15-
fun isPlaying(): Boolean
16-
fun isPaused(): Boolean
17-
fun isRestarted(): Boolean
4+
fun onDaastStart(image: String, link: String)
5+
fun onDaastEnd()
6+
fun onDaastError()
187
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package com.likhanov.radioplayer.radio
2+
3+
import android.support.v4.media.MediaBrowserServiceCompat
4+
import com.likhanov.radioplayer.model.NotificationData
5+
6+
interface RadioServiceListener {
7+
fun init(service: MediaBrowserServiceCompat, serviceClass: Class<*>)
8+
fun updateUrl(url: String, masterStream: Boolean = false)
9+
fun setAd(url:String)
10+
fun setSessionActivity(activity: Class<*>)
11+
fun updateNotification(data: NotificationData?)
12+
fun setDefaultDrawable(drawableRes: Int)
13+
fun setActivityForNotificationIntent(activity: Class<*>)
14+
fun setNotificationDrawable(drawableRes: Int)
15+
fun isPlaying(): Boolean
16+
fun isPaused(): Boolean
17+
fun isRestarted(): Boolean
18+
fun setCallback(callback: RadioServiceCallback)
19+
fun daastClicked()
20+
}

0 commit comments

Comments
 (0)