DemoPresenter.kt 3.06 KB
Newer Older
konghaorui committed
1 2 3 4
package com.ydl.component.mvp

import com.google.gson.JsonArray
import com.google.gson.JsonObject
konghaorui committed
5
import com.ydl.component.model.HomeFMBean
konghaorui committed
6 7 8
import com.ydl.media.audio.AudioPlayer
import com.ydl.media.audio.model.Music
import com.ydl.ydlcommon.data.http.RxUtils
9
import com.ydl.ydlcommon.mvp.base.BasePresenter
konghaorui committed
10
import com.ydl.ydlcommon.utils.LogUtil
konghaorui committed
11 12 13 14 15 16
import com.ydl.ydlnet.client.observer.CommonObserver

/**
 * Created by haorui on 2019-09-01 .
 * Des:
 */
17
class DemoPresenter : BasePresenter<DemoContract.View,DemoContract.Model>(),
konghaorui committed
18
    DemoContract.Presenter {
konghaorui committed
19

konghaorui committed
20 21
    override fun loadFmMusic() {
        mModel.getFmMusic()
konghaorui committed
22
            .compose(RxUtils.applySchedulers(mView))
konghaorui committed
23 24
            .subscribe(object : CommonObserver<HomeFMBean>() {
                override fun onError(errorMsg: String) {
konghaorui committed
25
                    LogUtil.d("RxJava loadUsers ---->: $errorMsg")
konghaorui committed
26 27 28
                }

                override fun onSuccess(homeFMBean: HomeFMBean) {
konghaorui committed
29
//                    throw RuntimeException("runtime exception")
konghaorui committed
30 31 32 33 34 35
                    homeFMBean.list?.let {
                        AudioPlayer.get().addPlayList(stringToMusicPlayerList(it))
                        mView.setData("")
                    }
                }
            })
konghaorui committed
36

konghaorui committed
37 38
    }

39
    override fun loadHome() = mModel.getHome()
konghaorui committed
40
        .compose(RxUtils.applySchedulers(mView))
konghaorui committed
41 42 43 44 45
        .subscribe(object : CommonObserver<JsonObject>() {
            override fun onError(errorMsg: String) {
            }

            override fun onSuccess(users: JsonObject) {
konghaorui committed
46 47 48 49
                if (users.getAsJsonObject("data")==null){
                    mView.setData("")
                    return
                }
konghaorui committed
50
                var cateTitle = users.getAsJsonObject("data").getAsJsonArray("askCategoryData").get(0).asJsonObject.get("cateTitle").asString;
51
                mView.setData(cateTitle)
konghaorui committed
52 53 54
            }
        })

55
    override fun loadUsers() = mModel.getUser()
konghaorui committed
56
        .compose(RxUtils.applySchedulers(mView))//使用 Rxlifecycle,使 Disposable 和 Activity 一起销毁
konghaorui committed
57 58
        .subscribe(object : CommonObserver<JsonArray>() {
            override fun onError(errorMsg: String) {
konghaorui committed
59
                LogUtil.d("RxJava loadUsers ---->: $errorMsg")
konghaorui committed
60 61 62 63 64 65 66 67 68 69 70 71
            }

            override fun onSuccess(users: JsonArray) {
                var userName = users.get(0).asJsonObject.get("login").asString
                mView?.setData(userName)
            }
        })

    override fun createModel(): DemoContract.Model {
        return DemoModel()
    }

konghaorui committed
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
    //将列表转为播放器可用列表
    private fun stringToMusicPlayerList(list: List<HomeFMBean.ListBean>): ArrayList<Music> {
        var nlist = ArrayList<Music>()
        try {
            for (i in list.indices) {
                var be = Music()
                be.path = list[i].path
                be.coverPath = list[i].coverPath
                be.title = list[i].title
                be.album = list[i].album
                be.artist = list[i].artist
                nlist.add(be)
            }
        } catch (e: Exception) {
            e.printStackTrace()
        }
        return nlist
    }


konghaorui committed
92
}