package io.github.droidkaigi.confsched.activity;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.databinding.DataBindingUtil;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.MenuItem;
import org.parceler.Parcels;
import javax.inject.Inject;
import io.github.droidkaigi.confsched.R;
import io.github.droidkaigi.confsched.fragment.SessionDetailFragment;
import io.github.droidkaigi.confsched.model.Session;
import io.github.droidkaigi.confsched.util.AnalyticsTracker;
public class SessionDetailActivity extends BaseActivity {
@Inject
AnalyticsTracker analyticsTracker;
public static Intent createIntent(@NonNull Context context, @NonNull Session session) {
Intent intent = new Intent(context, SessionDetailActivity.class);
intent.putExtra(Session.class.getSimpleName(), Parcels.wrap(session));
return intent;
}
static void startForResult(@NonNull Activity activity, @NonNull Session session, int requestCode) {
Intent intent = createIntent(activity, session);
activity.startActivityForResult(intent, requestCode);
}
static void startForResult(@NonNull Fragment fragment, @NonNull Session session, int requestCode) {
Intent intent = createIntent(fragment.getContext(), session);
fragment.startActivityForResult(intent, requestCode);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DataBindingUtil.setContentView(this, R.layout.activity_session_detail);
getComponent().inject(this);
Session session = Parcels.unwrap(getIntent().getParcelableExtra(Session.class.getSimpleName()));
replaceFragment(SessionDetailFragment.create(session));
}
private void replaceFragment(Fragment fragment) {
final FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_view, fragment, fragment.getClass().getSimpleName());
ft.commit();
}
@Override
protected void onStart() {
super.onStart();
analyticsTracker.sendScreenView("session_detail");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
}
return super.onOptionsItemSelected(item);
}
@Override
public void onBackPressed() {
finish();
}
}