IHomeBaseContract.kt 4.24 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
package com.yidianling.home.constants

import android.content.Context
import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlcommon.mvp.base.IModel
import com.ydl.ydlcommon.mvp.base.IPresenter
import com.ydl.ydlcommon.mvp.base.IView
import com.yidianling.home.model.bean.*
import io.reactivex.Observable

/**
 * @author <a href="https://www.jianshu.com/u/c1e5310dd724">xujian</a>
 * @描述: 壹点灵首页约束类
 * @Copyright Copyright (c) 2019
 * @Company 壹点灵
 * @date 2019/02/13
 */
class IHomeBaseContract {

    interface View : IView {
        /**
         * 首页数据回调接口
         */
        fun homeDataResponse(list: MutableList<HomePagerDataBean>)

        /**
         * 头部数据回调
         */
        fun homeHeadResponse(homeHeaderBean: HomeHeaderBean)

        /**
         * 首页数据请求失败接口
         */
        fun homeDataFail(msg: String)

        /**
         * 获取倾述数据回调
         */
        fun confideDataResponse(data: HomeConfideBean, selectPosition: Int)

        /**
         * 获取咨询数据回调
         */
        fun consultDataResponse(data: HomeConsultBean, selectPosition: Int)

        /**
         * 问答模块数据回调
         */
        fun askDataResponse(data: HomeAskBean, position: Int)

        /**
         * 首页问答 - 点赞
         */
        fun askZan(position: Int, index: Int, id: String)

        /**
         * 首页问答 - 关注
         */
        fun askFocus(position: Int, id: String)

        /**
         * 获取倾述列表数据
         * @param type 倾述类型
         * @param selectPosition 选中的position
         */
        fun getConfideData(type: String, selectPosition: Int)

        /**
         * 获取咨询列表数据
         */
        fun getConsultData(type: String, selectPosition: Int)

        fun showHomeProgress()

        fun showRefreshLayout()

        fun dismissHomeProgress()

        fun resetModuleTabPosition()


    }

    interface Presenter<V : IView> : IPresenter<V> {
        /**
         * 获取首页本地缓存
         */
88
        fun localHomeData(context: Context, fileName: String)
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107

        /**
         * 刷新首页数据请求
         */
        fun refreshHomeData()

        /**
         * 获取首页数据请求
         */
        fun loadHomeData()

        /**
         *获取倾述列表
         */
        fun getConfideData(type: String, selectPosition: Int)

        /**
         *获取咨询列表
         */
108
        fun getConsultData(type: String, selectPosition: Int, isCancelHome: Boolean = true)
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182

        /**
         * 首页问答 - 点赞
         */
        fun askZan(position: Int, index: Int, id: String)

        /**
         * 首页问答 - 关注
         */
        fun askFocus(position: Int, id: String)

        /**
         * 保存临时数据
         */
        fun saveTempData(list: MutableList<HomePagerDataBean>)

        /**
         * 获取临时数据
         */
        fun getHomeItemFromTempData(dataBean: HomeItemBaseBean, type: Int): Any
    }

    interface Model : IModel {
        /**
         * 首页头部 分类&Banner请求
         */
        fun headerRequest(): Observable<HomeHeaderBean>

        /**
         * 首页电台请求
         */
        fun fmRequest(): Observable<HomeFMBean>

        /**
         * 首页课程请求
         */
        fun courseRequest(): Observable<HomeCourseBean>

        /**
         * 首页测试题请求
         */
        fun testRequest(): Observable<BaseAPIResponse<MutableList<HomeTestItemBean>>>

        /**
         * 首页咨询请求
         */
        fun consultRequest(category: String): Observable<HomeConsultBean>

        /**
         * 首页倾听请求
         */
        fun confideRequest(goodType: String): Observable<HomeConfideBean>

        /**
         * 首页问答请求
         */
        fun askRequest(): Observable<HomeAskBean>

        /**
         * 首页文章请求
         */
        fun articleRequest(): Observable<HomeArticleBean>

        /**
         * 首页问答 - 点赞
         */
        fun askZan(id: String): Observable<AskResultBean>

        /**
         * 首页问答 - 关注
         */
        fun askFocus(id: String): Observable<AskResultBean>
    }
}