Skip to content

Commit 84d00de

Browse files
committed
增加第一次消息通知
1 parent 9b98fdb commit 84d00de

9 files changed

Lines changed: 80 additions & 5 deletions

File tree

app/src/main/java/com/cyl/musiclake/api/PlaylistApiService.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.cyl.musicapi.playlist.CollectResult
55
import com.cyl.musicapi.playlist.MusicInfo
66
import com.cyl.musicapi.playlist.UserInfo
77
import com.cyl.musiclake.bean.MessageInfoBean
8+
import com.cyl.musiclake.bean.NoticeInfo
89
import io.reactivex.Observable
910
import okhttp3.ResponseBody
1011
import retrofit2.http.*
@@ -22,6 +23,13 @@ interface PlaylistApiService {
2223
*/
2324
@GET
2425
fun checkMusicApiJs(@Url url: String): Observable<String>
26+
/**
27+
* 获取音乐接口api的最新通知
28+
* @param url 请求链接 https://music-lake-android.zzsun.cc/notice.json
29+
* @return
30+
*/
31+
@GET
32+
fun checkMusicLakeNotice(@Url url: String): Observable<NoticeInfo>
2533

2634
/**
2735
* 获取聊天信息

app/src/main/java/com/cyl/musiclake/api/PlaylistApiServiceImpl.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.cyl.musiclake.api
33
import com.cyl.musicapi.BaseApiImpl
44
import com.cyl.musicapi.playlist.*
55
import com.cyl.musiclake.bean.Music
6+
import com.cyl.musiclake.bean.NoticeInfo
67
import com.cyl.musiclake.bean.Playlist
78
import com.cyl.musiclake.common.Constants
89
import com.cyl.musiclake.net.ApiManager
@@ -24,6 +25,13 @@ object PlaylistApiServiceImpl {
2425
val token: String?
2526
get() = UserStatus.getUserInfo()?.token
2627

28+
/**
29+
* 获取全部歌单
30+
*/
31+
fun getMusicLakeNotice(): Observable<NoticeInfo> {
32+
val url = "https://music-lake-android.zzsun.cc/notice.json"
33+
return playlistApiService.checkMusicLakeNotice(url)
34+
}
2735
/**
2836
* 获取全部歌单
2937
*/
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.cyl.musiclake.bean
2+
3+
import com.google.gson.annotations.SerializedName
4+
5+
class NoticeInfo {
6+
@SerializedName("id")
7+
var id = 0
8+
@SerializedName("message")
9+
var message = ""
10+
}

app/src/main/java/com/cyl/musiclake/ui/OnlinePlaylistUtils.kt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,14 @@ import com.cyl.musiclake.MusicApp
66
import com.cyl.musiclake.R
77
import com.cyl.musiclake.api.PlaylistApiServiceImpl
88
import com.cyl.musiclake.bean.Music
9+
import com.cyl.musiclake.bean.NoticeInfo
910
import com.cyl.musiclake.bean.Playlist
1011
import com.cyl.musiclake.common.Constants
1112
import com.cyl.musiclake.event.MyPlaylistEvent
1213
import com.cyl.musiclake.net.ApiManager
1314
import com.cyl.musiclake.net.RequestCallBack
1415
import com.cyl.musiclake.ui.my.user.UserStatus
16+
import com.cyl.musiclake.utils.SPUtils
1517
import com.cyl.musiclake.utils.ToastUtils
1618
import org.greenrobot.eventbus.EventBus
1719
import java.util.*
@@ -64,6 +66,25 @@ object OnlinePlaylistUtils {
6466
}
6567

6668

69+
/**
70+
* 获取最新通知消息
71+
*/
72+
fun getMusicNoticeInfo(success: (NoticeInfo) -> Unit, fail: (String) -> Unit) {
73+
ApiManager.request(PlaylistApiServiceImpl.getMusicLakeNotice(), object : RequestCallBack<NoticeInfo> {
74+
override fun success(result: NoticeInfo) {
75+
val noticeCode = SPUtils.getAnyByKey(SPUtils.SP_KEY_NOTICE_CODE, -1)
76+
if (noticeCode < result.id) {
77+
success.invoke(result)
78+
}
79+
}
80+
81+
override fun error(msg: String) {
82+
fail.invoke(msg)
83+
}
84+
})
85+
}
86+
87+
6788
/**
6889
* 获取在线歌单
6990
*/

app/src/main/java/com/cyl/musiclake/ui/chat/ChatModel.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package com.cyl.musiclake.ui.chat
22

3-
import com.cyl.musiclake.api.PlaylistApiService
43
import com.cyl.musiclake.api.PlaylistApiServiceImpl
54
import com.cyl.musiclake.bean.MessageInfoBean
6-
import com.cyl.musiclake.common.Constants
75
import com.cyl.musiclake.net.ApiManager
86
import com.cyl.musiclake.net.RequestCallBack
9-
import io.reactivex.Observable
107
import org.litepal.LitePal
11-
import org.litepal.crud.LitePalSupport
128

139

1410
/**

app/src/main/java/com/cyl/musiclake/ui/music/my/MyMusicContract.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package com.cyl.musiclake.ui.music.my
22

33
import com.cyl.musiclake.ui.base.BaseContract
44
import com.cyl.musiclake.bean.Music
5+
import com.cyl.musiclake.bean.NoticeInfo
56
import com.cyl.musiclake.bean.Playlist
67

78
interface MyMusicContract {
@@ -18,6 +19,7 @@ interface MyMusicContract {
1819

1920
fun showDownloadList(musicList: MutableList<Music>)
2021

22+
fun showNoticeInfo(notice: NoticeInfo)
2123
}
2224

2325
interface Presenter : BaseContract.BasePresenter<View> {

app/src/main/java/com/cyl/musiclake/ui/music/my/MyMusicFragment.kt

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ package com.cyl.musiclake.ui.music.my
33
import android.content.Intent
44
import android.os.Bundle
55
import android.support.v7.widget.LinearLayoutManager
6+
import com.afollestad.materialdialogs.MaterialDialog
67
import com.cyl.musiclake.R
78
import com.cyl.musiclake.ui.base.BaseFragment
89
import com.cyl.musiclake.bean.Music
10+
import com.cyl.musiclake.bean.NoticeInfo
911
import com.cyl.musiclake.bean.Playlist
1012
import com.cyl.musiclake.common.Constants
1113
import com.cyl.musiclake.common.NavigationHelper
@@ -16,16 +18,31 @@ import com.cyl.musiclake.ui.music.dialog.CreatePlaylistDialog
1618
import com.cyl.musiclake.ui.music.playlist.PlaylistAdapter
1719
import com.cyl.musiclake.ui.music.playlist.PlaylistManagerActivity
1820
import com.cyl.musiclake.ui.my.user.UserStatus
21+
import com.cyl.musiclake.utils.SPUtils
1922
import com.cyl.musiclake.utils.ToastUtils
2023
import kotlinx.android.synthetic.main.frag_local.*
2124
import org.greenrobot.eventbus.EventBus
2225
import org.greenrobot.eventbus.Subscribe
2326
import org.greenrobot.eventbus.ThreadMode
27+
import org.jetbrains.anko.support.v4.alert
28+
import org.jetbrains.anko.yesButton
2429

2530
/**
2631
* Created by Monkey on 2015/6/29.
2732
*/
2833
class MyMusicFragment : BaseFragment<MyMusicPresenter>(), MyMusicContract.View {
34+
35+
override fun showNoticeInfo(notice: NoticeInfo) {
36+
alert {
37+
isCancelable = false
38+
title = "提示"
39+
message = notice.message
40+
yesButton {
41+
SPUtils.putAnyCommit(SPUtils.SP_KEY_NOTICE_CODE, notice.id)
42+
}
43+
}.show()
44+
}
45+
2946
private var playlists = mutableListOf<Playlist>()
3047
private var mAdapter: PlaylistAdapter? = null
3148

@@ -44,8 +61,11 @@ class MyMusicFragment : BaseFragment<MyMusicPresenter>(), MyMusicContract.View {
4461
playlistRcv.adapter = mAdapter
4562
mAdapter?.bindToRecyclerView(playlistRcv)
4663

64+
//加载通知
65+
mPresenter?.loadMusicLakeNotice()
4766
}
4867

68+
4969
override fun initInjector() {
5070
mFragmentComponent.inject(this)
5171
}
@@ -146,7 +166,7 @@ class MyMusicFragment : BaseFragment<MyMusicPresenter>(), MyMusicContract.View {
146166
super.retryLoading()
147167
if (UserStatus.getLoginStatus() && UserStatus.getTokenStatus()) {
148168
mPresenter?.loadPlaylist()
149-
}else{
169+
} else {
150170
ToastUtils.show("请先登录")
151171
}
152172
}

app/src/main/java/com/cyl/musiclake/ui/music/my/MyMusicPresenter.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,15 @@ constructor() : BasePresenter<MyMusicContract.View>(), MyMusicContract.Presenter
7676
updateDownload()
7777
}
7878

79+
fun loadMusicLakeNotice() {
80+
OnlinePlaylistUtils.getMusicNoticeInfo(
81+
success = {
82+
mView?.showNoticeInfo(it)
83+
}, fail = {
84+
}
85+
)
86+
}
87+
7988
override fun loadPlaylist(playlist: Playlist?) {
8089
val mIsLogin = UserStatus.getLoginStatus()
8190
if (mIsLogin) {

app/src/main/java/com/cyl/musiclake/utils/SPUtils.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public class SPUtils {
1919
* 第一次进入应用
2020
*/
2121
public static final String SP_KEY_FIRST_COMING = "first_coming";
22+
public static final String SP_KEY_NOTICE_CODE = "notice_code";
2223

2324
/**
2425
* 桌面歌词锁定

0 commit comments

Comments
 (0)