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.support.v7.app.ActionBar;
import android.view.MenuItem;
import org.parceler.Parcels;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import io.github.droidkaigi.confsched.R;
import io.github.droidkaigi.confsched.dao.SessionDao;
import io.github.droidkaigi.confsched.databinding.ActivitySearchedSessionsBinding;
import io.github.droidkaigi.confsched.fragment.SearchedSessionsFragment;
import io.github.droidkaigi.confsched.fragment.SessionsFragment;
import io.github.droidkaigi.confsched.model.SearchGroup;
import io.github.droidkaigi.confsched.model.Session;
import io.github.droidkaigi.confsched.util.AnalyticsTracker;
import io.github.droidkaigi.confsched.util.AppUtil;
public class SearchedSessionsActivity extends BaseActivity implements SessionsFragment.OnChangeSessionListener {
@Inject
AnalyticsTracker analyticsTracker;
@Inject
SessionDao dao;
private ActivitySearchedSessionsBinding binding;
private List<Session> statusChangedSession =new ArrayList<>();
public static Intent createIntent(@NonNull Context context, @NonNull SearchGroup searchGroup) {
Intent intent = new Intent(context, SearchedSessionsActivity.class);
intent.putExtra(SearchGroup.class.getSimpleName(), Parcels.wrap(searchGroup));
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_searched_sessions);
getComponent().inject(this);
SearchGroup searchGroup = Parcels.unwrap(getIntent().getParcelableExtra(SearchGroup.class.getSimpleName()));
initToolbar(searchGroup);
AppUtil.setTaskDescription(this, searchGroup.getName(), AppUtil.getThemeColorPrimary(this));
if(savedInstanceState == null) {
replaceFragment(SearchedSessionsFragment.newInstance(searchGroup));
}
}
private void initToolbar(SearchGroup searchGroup) {
setSupportActionBar(binding.toolbar);
ActionBar bar = getSupportActionBar();
if (bar != null) {
bar.setDisplayHomeAsUpEnabled(true);
bar.setDisplayShowHomeEnabled(true);
bar.setDisplayShowTitleEnabled(false);
bar.setHomeButtonEnabled(true);
}
binding.toolbar.setTitle(searchGroup.getName());
}
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("searchedSessions");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
onBackPressed();
}
return super.onOptionsItemSelected(item);
}
@Override
public void onChangeSession(List<Session> sessions) {
statusChangedSession.addAll(sessions);
}
@Override
public void finish() {
Intent intent = new Intent();
intent.putExtra(SearchActivity.RESULT_STATUS_CHANGED_SESSIONS, Parcels.wrap(statusChangedSession));
setResult(Activity.RESULT_OK, intent);
super.finish();
}
}