package com.martin.ionichinabystudio.presenter.impl;
import android.content.Context;
import com.martin.ionichinabystudio.model.entity.Topic;
import com.martin.ionichinabystudio.model.impl.TopicModelImpl;
import com.martin.ionichinabystudio.model.inter.TopicModel;
import com.martin.ionichinabystudio.presenter.inter.OnResultListener;
import com.martin.ionichinabystudio.presenter.inter.TopicPresenter;
import com.martin.ionichinabystudio.ui.view.BaseView;
/**
* @Description 话题Presenter的实现
* @File TopicPresenterImpl.java
* @Package com.martin.ionichinabystudio.presenter.impl
* @Date 2015/7/222:40
* @Author Donghongyu 1358506549@qq.com
* @Version v1.0.0
*/
public class TopicPresenterImpl implements TopicPresenter, OnResultListener {
/*Presenter作为中间层,持有View和Model的引用*/
private BaseView mView;
private TopicModel topicModel;
public TopicPresenterImpl(BaseView view, Context context) {
this.mView = view;
topicModel = new TopicModelImpl(context);
}
@Override
public void getTopics(String tabType, int currentPage) {
//调用View层的加载动画之类的
mView.showLoading();
//调用Model层的加载网络数据的方法
topicModel.getTopics(tabType, currentPage, this);
}
@Override
public void getTopicDetials(Topic topic) {
//调用View层的加载动画之类的
mView.showLoading();
//调用Model层从话题对象中获取话题详情
topicModel.getTopicDetails(topic, this);
}
@Override
public void onSuccess(Object result) {
//调用View层的隐藏加载动画
mView.hideLoading();
//调用视图层的处理接收到数据的方法
mView.setResult(result);
}
@Override
public void onError() {
//调用View层的隐藏加载动画
mView.hideLoading();
//调用View层的显示加载出错
mView.showError();
}
}