package com.novoda.todoapp.tasks;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.novoda.notils.caster.Views;
import com.novoda.todoapp.BaseActivity;
import com.novoda.todoapp.R;
import com.novoda.todoapp.TodoApplication;
import com.novoda.todoapp.tasks.view.loading.AndroidTasksLoadingDisplayer;
import com.novoda.todoapp.navigation.AndroidNavigator;
import com.novoda.todoapp.tasks.displayer.TasksActionListener;
import com.novoda.todoapp.tasks.presenter.TasksPresenter;
import com.novoda.todoapp.tasks.view.TasksView;
public class TasksActivity extends BaseActivity {
private static final String KEY_FILTER = "KEY_FILTER";
private TasksView tasksView;
private TasksPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tasks_activity);
tasksView = Views.findById(this, R.id.content);
presenter = new TasksPresenter(
TodoApplication.TASKS_SERVICE,
tasksView,
new AndroidTasksLoadingDisplayer(tasksView.getLoadingView(), tasksView.getContentView()),
new AndroidNavigator(this)
);
if (savedInstanceState != null && savedInstanceState.containsKey(KEY_FILTER)) {
presenter.setInitialFilterTo(TasksActionListener.Filter.valueOf(savedInstanceState.getString(KEY_FILTER)));
}
}
@Override
protected void onStart() {
super.onStart();
presenter.startPresenting();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(tasksView.getMenuResId(), menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return tasksView.onOptionsItemSelected(item) || super.onOptionsItemSelected(item);
}
@Override
protected void onStop() {
super.onStop();
presenter.stopPresenting();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putString(KEY_FILTER, presenter.getCurrentFilter().name());
super.onSaveInstanceState(outState);
}
}