package com.kelin.mvvmlight.zhihu.news;
import android.content.Context;
import android.content.Intent;
import android.databinding.ObservableField;
import android.databinding.ObservableInt;
import com.kelin.mvvmlight.base.ViewModel;
import com.kelin.mvvmlight.command.ReplyCommand;
import com.kelin.mvvmlight.zhihu.newsdetail.NewsDetailActivity;
/**
* Created by kelin on 16-4-26.
*/
public class NewItemViewModel implements ViewModel {
//context
private Context context;
//model
public NewsService.News.StoriesBean storiesBean;
//field to presenter
public final ObservableField<String> title = new ObservableField<>();
public final ObservableField<String> imageUrl = new ObservableField<>();
public final ObservableField<String> date = new ObservableField<>();
public ViewStyle viewStyle = new ViewStyle();
//Use class viewStyle to wrap field which is binding to style of view
public static class ViewStyle {
public final ObservableInt titleTextColor = new ObservableInt();
}
//command
public ReplyCommand itemClickCommand = new ReplyCommand(() -> {
this.viewStyle.titleTextColor.set(context.getResources().getColor(android.R.color.darker_gray));
Intent intent = new Intent(context, NewsDetailActivity.class);
intent.putExtra(NewsDetailActivity.EXTRA_KEY_NEWS_ID, storiesBean.getId());
context.startActivity(intent);
});
public NewItemViewModel(Context context, NewsService.News.StoriesBean storiesBean) {
this.context = context;
this.storiesBean = storiesBean;
this.viewStyle.titleTextColor.set(context.getResources().getColor(android.R.color.black));
if (storiesBean.getExtraField() != null) {
date.set(NewsListHelper.changeDateFormat(storiesBean.getExtraField().getDate(), NewsListHelper.DAY_FORMAT, NewsListHelper.DAY_UI_FORMAT));
} else {
title.set(storiesBean.getTitle());
imageUrl.set(storiesBean.getImages().get(0));
}
}
}