package uk.ivanc.archimvvm.view;
import android.content.Context;
import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import uk.ivanc.archimvvm.R;
import uk.ivanc.archimvvm.databinding.RepositoryActivityBinding;
import uk.ivanc.archimvvm.model.Repository;
import uk.ivanc.archimvvm.viewmodel.RepositoryViewModel;
public class RepositoryActivity extends AppCompatActivity {
private static final String EXTRA_REPOSITORY = "EXTRA_REPOSITORY";
private RepositoryActivityBinding binding;
private RepositoryViewModel repositoryViewModel;
public static Intent newIntent(Context context, Repository repository) {
Intent intent = new Intent(context, RepositoryActivity.class);
intent.putExtra(EXTRA_REPOSITORY, repository);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.repository_activity);
setSupportActionBar(binding.toolbar);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
Repository repository = getIntent().getParcelableExtra(EXTRA_REPOSITORY);
repositoryViewModel = new RepositoryViewModel(this, repository);
binding.setViewModel(repositoryViewModel);
//Currently there is no way of setting an activity title using data binding
setTitle(repository.name);
}
@Override
protected void onDestroy() {
super.onDestroy();
repositoryViewModel.destroy();
}
}