package com.liuguangqiang.idaily.ui.viewmodel;
import android.content.Context;
import android.view.View;
import com.liuguangqiang.idaily.R;
import com.liuguangqiang.idaily.domain.entity.BaseEntity;
import com.liuguangqiang.idaily.domain.entity.Story;
import com.liuguangqiang.idaily.ui.adapter.StoryAdapter;
import com.liuguangqiang.idaily.ui.model.MainModel;
import com.liuguangqiang.idaily.ui.view.MainView;
import com.liuguangqiang.idaily.ui.view.RequestView;
import com.liuguangqiang.idaily.utils.events.TopStoriesEvent;
import com.liuguangqiang.idaily.utils.navigator.Navigator;
import com.liuguangqiang.support.utils.IntentUtils;
import com.liuguangqiang.support.widgets.recyclerview.OnPageListener;
import com.liuguangqiang.support.widgets.recyclerview.adapter.AbsRVAdapter;
import java.util.List;
import javax.inject.Inject;
import de.greenrobot.event.EventBus;
/**
* Created by Eric on 15/6/26.
*/
public class MainViewModel extends AbsRecyclerViewModel<BaseEntity> implements MainView, RequestView<BaseEntity>, AbsRVAdapter.OnItemClickListener {
private Context context;
private MainModel mainModel;
private StoryAdapter adapter;
@Inject
public MainViewModel(Context context, MainModel mainModel) {
this.context = context;
this.mainModel = mainModel;
mainModel.setView(this, this);
adapter = new StoryAdapter(context, getData());
adapter.setOnItemClickListener(this);
requestData();
}
public StoryAdapter getAdapter() {
return adapter;
}
@Override
public void onItemClick(View view, int position) {
BaseEntity entity = data.get(position);
if (entity instanceof Story) {
Navigator.getInstance().openStory(context, (Story) entity);
}
}
@Override
public void requestData() {
super.requestData();
mainModel.getDaily();
}
@Override
public void bindTopStories(List<Story> stories) {
TopStoriesEvent event = new TopStoriesEvent(stories);
EventBus.getDefault().post(event);
}
public OnPageListener getOnPageListener() {
return new OnPageListener() {
@Override
public void onPage() {
requestData();
}
};
}
public View.OnClickListener getOnClickListener() {
return new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_github:
IntentUtils.skipToBrowser(v.getContext(), "https://github.com/liuguangqiang/Idaily");
break;
}
}
};
}
}