ArticleDetailViewModel.java 2.27 KB

package com.people.webview.vm;

import com.wd.common.UIViewModel;
import com.people.webview.model.ArticleDetailFetcher;
import org.json.JSONObject;
import androidx.lifecycle.LifecycleOwner;

/**
 * 视频详情ViewModel
 *
 * @author xujiawei
 */
public class ArticleDetailViewModel extends UIViewModel {
    private IArticleDetailDataListener mDataListener;

    private ArticleDetailFetcher mArticleDetailFetcher;

    /**
     * 注册vm回调对象
     *
     * @param lifecycleOwner 生命周期对象
     * @param listener 监听对象
     */
    public void observerDataListener(LifecycleOwner lifecycleOwner, IArticleDetailDataListener listener) {
        if (mDataListener == null) {
            mDataListener = observe(lifecycleOwner, listener, IArticleDetailDataListener.class);
        } else {
            observeRepeat(lifecycleOwner, listener, mDataListener);
        }
    }

    public void requestDetailData(String contentId,String relId,String relType) {
        if (mArticleDetailFetcher == null) {
            mArticleDetailFetcher = new ArticleDetailFetcher(mDataListener);
        }
        mArticleDetailFetcher.requestDetail(contentId,relId,relType);
    }

    public void requestPageData(String method, String url, JSONObject parameters,String callbackId) {
        if (mArticleDetailFetcher == null) {
            mArticleDetailFetcher = new ArticleDetailFetcher(mDataListener);
        }
        mArticleDetailFetcher.requestPageData(method, url, parameters,callbackId);
    }

    public void requestH5DetailData(String contentId,String relType,String relId) {
        if (mArticleDetailFetcher == null) {
            mArticleDetailFetcher = new ArticleDetailFetcher(mDataListener);
        }
        mArticleDetailFetcher.getNewsDetail(contentId,relType,relId);
    }

    /**
     *  获取推荐列表
     * @param contentId     当前数据id
     * @param relId         当前内容关系id
     * @param channelId     频道id
     */
    public void getRecList(String contentId,String relId,String channelId){
        if (mArticleDetailFetcher == null) {
            mArticleDetailFetcher = new ArticleDetailFetcher(mDataListener);
        }
        //推荐类型:1.详情推荐;2.搜索推荐
        mArticleDetailFetcher.getRecList(contentId,relId,channelId,1);
    }

}