package com.apjq.todolistretrycounts; import java.util.Collections; import java.util.List; import android.app.Activity; import android.app.FragmentManager; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import android.widget.TextView.OnEditorActionListener; import com.apjq.todolist.dao.TodoDAO; import com.apjq.todolist.data.Todo; import com.apjq.todolist.events.RertyCountPojo; import com.apjq.todolist.events.SyncDataPojoSaved; import com.apjq.todolist.events.SyncDataPojoSynFailed; import com.apjq.todolist.events.SyncDataPojoSynced; import com.apjq.todolist.jobs.SyncDataJob; import com.apjq.todolistretrycounts.R; import com.apjq.todolistretrycounts.EditNameDialog.EditNameDialogListener; import com.path.android.jobqueue.JobManager; import de.greenrobot.event.EventBus; public class MainActivity extends Activity implements EditNameDialogListener { JobManager jobManager; ListView lv; ListAdapter lad; List<Todo> todoList; List<Todo> reloadList; int count; TextView tv; // DAO private TodoDAO dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.listView1); tv=(TextView)findViewById(R.id.retrycount); tv.setText("Retry Counts"); dao = new TodoDAO(this); //Get jobManager Instance from application class jobManager = ToDoApplication.getInstance().getJobManager(); // Set the list adapter and get TODOs list via DAO todoList = dao.getTodos(); Collections.reverse(todoList); System.out.println(todoList); lad = new ListAdapter(this, R.layout.listview_item, todoList); // lv.setAdapter(new ListAdapter(this, dao.getTodos())); lv.setAdapter(lad); EventBus.getDefault().register(this); // lv.setOnItemClickListener(new OnItemClickListener() { // // @Override // public void onItemClick(AdapterView<?> parent, View view, // int position, long id) { // // Todo todo = (Todo) parent.getItemAtPosition(position); // // dao.deleteTodo(todo.getId()); // reload(); // Toast.makeText(getApplicationContext(), "Deleted!", // Toast.LENGTH_LONG).show(); // // } // // }); lv.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Todo todo = (Todo) parent.getItemAtPosition(position); dao.deleteTodo(todo.getId()); reload(); Toast.makeText(getApplicationContext(), "Deleted!", Toast.LENGTH_LONG).show(); return true; } }); } void reload() { todoList.clear(); reloadList = dao.getTodos(); Collections.reverse(reloadList); todoList.addAll(reloadList); lad.notifyDataSetChanged(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.add: showEditDialog(); return true; } return super.onOptionsItemSelected(item); } private void showEditDialog() { FragmentManager fm = getFragmentManager(); EditNameDialog editNameDialog = new EditNameDialog(); editNameDialog.show(fm, "fragment_edit_name"); // EventBus.getDefault().postSticky(new LoggedInEvent(groupList)); } //===========================New Job Starts======================================================== @Override public void onFinishEditDialog(String inputText) { if (!inputText.isEmpty()) { jobManager.addJobInBackground(new SyncDataJob(inputText)); } } //=================================================================================== public void onEventMainThread(SyncDataPojoSaved ignored) { reload(); Toast.makeText(getApplicationContext(), "New TODO added!", Toast.LENGTH_LONG).show(); } public void onEventMainThread(SyncDataPojoSynced ignored) { Toast.makeText(getApplicationContext(), "New TODO Synced!", Toast.LENGTH_LONG).show(); } public void onEventMainThread(SyncDataPojoSynFailed ignored) { reload(); Toast.makeText(getApplicationContext(), "New TODO Sync Failed!", Toast.LENGTH_LONG).show(); } public void onEventMainThread(RertyCountPojo ignored) { count=count+ignored.getCount(); tv.setText("Retry Counts: "+" "+String.valueOf(count)); } @Override protected void onDestroy() { super.onDestroy(); try { EventBus.getDefault().unregister(this); dao.close(); } catch (Throwable t) { // this may crash if registration did not go through. just be safe } } }