package uk.ivanc.archimvvm.viewmodel; import android.content.Context; import android.databinding.BaseObservable; import android.view.View; import uk.ivanc.archimvvm.R; import uk.ivanc.archimvvm.model.Repository; import uk.ivanc.archimvvm.view.RepositoryActivity; /** * View model for each item in the repositories RecyclerView */ public class ItemRepoViewModel extends BaseObservable implements ViewModel { private Repository repository; private Context context; public ItemRepoViewModel(Context context, Repository repository) { this.repository = repository; this.context = context; } public String getName() { return repository.name; } public String getDescription() { return repository.description; } public String getStars() { return context.getString(R.string.text_stars, repository.stars); } public String getWatchers() { return context.getString(R.string.text_watchers, repository.watchers); } public String getForks() { return context.getString(R.string.text_forks, repository.forks); } public void onItemClick(View view) { context.startActivity(RepositoryActivity.newIntent(context, repository)); } // Allows recycling ItemRepoViewModels within the recyclerview adapter public void setRepository(Repository repository) { this.repository = repository; notifyChange(); } @Override public void destroy() { //In this case destroy doesn't need to do anything because there is not async calls } }