package com.androidworks.navsys.wuffit.activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.Toast;
import com.androidworks.navsys.wuffit.R;
import com.androidworks.navsys.wuffit.WuffITApplication;
import com.androidworks.navsys.wuffit.content.Tracker;
public class SelectTracker extends ListActivity {
private TextView footerCountText;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.select_tracker);
findViewById(R.id.pick_tracker).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// Go to select trackers screen
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setData(Contacts.Phones.CONTENT_URI);
startActivityForResult(intent, 1);
}
});
findViewById(R.id.sync_tracker).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// Syncs trackers with contacts
((WuffITApplication) getApplication()).syncTrackers();
}
});
findViewById(R.id.main_menu).setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// Go to select trackers screen
Intent intent = new Intent("com.androidworks.navsys.wuffit.ACTION_MAIN_MENU");
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
}
});
View footer = ((LayoutInflater) getSystemService(
Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.footer_view, null);
footerCountText = (TextView) footer.findViewById(R.id.text2);
getListView().addFooterView(footer);
}
@Override
protected void onActivityResult(int i, int i1, Intent intent) {
if (null == intent) {
Toast.makeText(this, "No Contacts Picked.. Try again", Toast.LENGTH_LONG).show();
} else {
Log.d("WuffITTracker", intent.getDataString());
((WuffITApplication) getApplication()).storeTrackerId(intent.getDataString());
// Toast.makeText(this, "Contact Picked = " + intent.getDataString(), Toast.LENGTH_LONG).show();
}
}
@Override
protected void onResume() {
super.onResume();
updateTrackersOnView();
}
private void updateTrackersOnView() {
Cursor cursor = managedQuery(Tracker.Details.CONTENT_URI,
new String[]{Tracker.Details._ID, Tracker.Details.NAME,
Tracker.Details.NUMBER}, null, null, null);
SimpleCursorAdapter simpleCursorAdapter = new TrackerSimpleAdapter
(this, R.layout.select_tracker_item, cursor,
new String[]{Tracker.Details.NAME, Tracker.Details.NUMBER},
new int[]{android.R.id.text1, android.R.id.text2});
footerCountText.setText("(" + cursor.getCount() + ")");
getListView().setAdapter(simpleCursorAdapter);
}
class TrackerSimpleAdapter extends SimpleCursorAdapter {
public TrackerSimpleAdapter(Context context, int i, Cursor cursor, String[] strings, int[] ints) {
super(context, i, cursor, strings, ints);
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
View v = super.getView(i, view, viewGroup);
View ib = v.findViewById(R.id.delete);
ib.setTag(getCursor().getString(0));
ib.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
// delete the tracker item
Log.d("TrackerSimpleAdapter:OnClick ", "id: " + view.getTag());
((WuffITApplication) getApplication()).deleteTracker((String) view.getTag());
updateTrackersOnView();
}
});
return v;
}
}
}