package jm.org.data.area; import static jm.org.data.area.DBConstants.DOCUMENT_ID; import static jm.org.data.area.DBConstants.DOC_TITLE; import static jm.org.data.area.DBConstants.IDS_DOC_AUTH_STR; import static jm.org.data.area.DBConstants.IDS_DOC_DWNLD_URL; import static jm.org.data.area.DBConstants.IDS_DOC_ID; import static jm.org.data.area.DBConstants.IDS_DOC_TITLE; import static jm.org.data.area.AreaConstants.*; import java.util.Arrays; import com.google.analytics.tracking.android.EasyTracker; import com.google.analytics.tracking.android.MapBuilder; import android.app.ProgressDialog; import android.content.Intent; import android.database.Cursor; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.ListFragment; import android.support.v4.app.LoaderManager; import android.support.v4.content.Loader; import android.support.v4.widget.SimpleCursorAdapter; import android.util.Log; import android.view.View; import android.widget.ListView; import android.widget.TextView; public class HomeReportListFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> { public final String TAG = getClass().getSimpleName(); private ProgressDialog dialog; SimpleCursorAdapter mAdapter; @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); dialog = new ProgressDialog(getActivity()); dialog = ProgressDialog.show(getActivity(), "", "Loading. Please wait...", true); String[] from = { IDS_DOC_TITLE, IDS_DOC_AUTH_STR }; int[] to = { R.id.list_item_title, R.id.list_item_desc }; // tAdapter = new SimpleCursorAdapter(getActivity(), // R.layout.list_reports_item, null, from, to, 0); mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.list_item_dual, null, from, to, 0); SimpleCursorAdapter.ViewBinder binder = new SimpleCursorAdapter.ViewBinder() { @Override public boolean setViewValue(View arg0, Cursor arg1, int arg2) { // TODO Auto-generated method stub TextView tv = (TextView) arg0; tv.setTextColor(Color.parseColor("#004B51")); return false; } }; mAdapter.setViewBinder(binder); setListAdapter(mAdapter); getLoaderManager().initLoader(0, null, this); setEmptyText("No indicators found"); setListShown(false); } @Override public void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); Cursor cursor = (Cursor) getListAdapter().getItem(position); String item = cursor.getString(cursor.getColumnIndex(IDS_DOC_ID)); int item_id = cursor.getInt(cursor.getColumnIndex(DOCUMENT_ID)); String itemTitle = cursor.getString(cursor .getColumnIndex(IDS_DOC_TITLE)); String item_url = cursor.getString(cursor.getColumnIndex(IDS_DOC_DWNLD_URL)); Log.d(TAG, "Report selected is: " + item + " Title is: " + itemTitle); // May return null if a EasyTracker has not yet been initialized with a // property ID. EasyTracker easyTracker = EasyTracker.getInstance(getActivity()); // MapBuilder.createEvent().build() returns a Map of event fields and values // that are set and sent with the hit. easyTracker.send(MapBuilder .createEvent("ui_action", // Event category (required) "Home_Reports_List_Selction", // Event action (required) "Report selected is: " + item + " Title is: " + itemTitle, // Event label null) // Event value .build() ); // Launch Report View Intent intent = new Intent(getActivity().getApplicationContext(), ReportDetailViewActivity.class); intent.putExtra(DOCUMENT_ID, item_id); intent.putExtra(DOC_TITLE, itemTitle); intent.putExtra(IDS_DOC_ID, item); intent.putExtra(IDS_DOC_DWNLD_URL, item_url); // intent.putExtra(BING_URL, itemURL); startActivity(intent); } @Override public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) { return new HomeListAdapter(getActivity(), IDS_SEARCH); } @Override public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) { if (cursor != null) { Log.e(TAG, String.format( "Report list Cursor size: %d. Cursor columns: %s. Cursor column count: %d", cursor.getCount(), Arrays.toString(cursor.getColumnNames()), cursor.getCount())); mAdapter.swapCursor(cursor); if (isResumed()) { setListShown(true); } else { setListShownNoAnimation(true); } } setEmptyText("No reports downloaded yet"); setListShown(true); if (dialog.isShowing()) { dialog.dismiss(); } } @Override public void onLoaderReset(Loader<Cursor> arg0) { //mAdapter.swapCursor(null); } public void reload() { getLoaderManager().restartLoader(0, null, this); } /*@Override public void onResume(){ String[] from = { IDS_DOC_TITLE, IDS_DOC_AUTH_STR }; int[] to = { R.id.list_item_title, R.id.list_item_desc }; // tAdapter = new SimpleCursorAdapter(getActivity(), // R.layout.list_reports_item, null, from, to, 0); mAdapter = new SimpleCursorAdapter(getActivity(), R.layout.list_item_dual, null, from, to, 0); setListAdapter(mAdapter); getLoaderManager().initLoader(0, null, this); super.onResume(); } @Override public void onStop() { try { super.onStop(); if (this.mAdapter !=null){ this.mAdapter.getCursor().close(); this.mAdapter = null; } //this.getLoaderManager().destroyLoader(0); if (this.mActivityListCursorObj != null) { this.mActivityListCursorObj.close(); } super.onStop(); } catch (Exception error) { Log.d(TAG, "Error in stopping Adapter" + error.getStackTrace()); }// end try/catch (Exception error) }// end onStop */ }