package jm.org.data.area;
import static jm.org.data.area.DBConstants.DOCUMENT_ID;
import static jm.org.data.area.DBConstants.IDS_DOC_DATE;
import static jm.org.data.area.DBConstants.IDS_DOC_DESC;
import static jm.org.data.area.DBConstants.IDS_DOC_DWNLD_URL;
import static jm.org.data.area.DBConstants.IDS_DOC_PUB;
import static jm.org.data.area.DBConstants.IDS_DOC_PUB_DATE;
import static jm.org.data.area.DBConstants.IDS_DOC_TITLE;
import java.util.Arrays;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.Loader;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class ReportDetailViewFragment extends Fragment implements
LoaderManager.LoaderCallbacks<Cursor> {
public static final String TAG = ReportDetailViewFragment.class
.getSimpleName();
//private AreaApplication areaApp;
private ReportDetailViewActivity parentActivity;
// Meta Data for a report
private int docID;
//private String docTitle, docName, pubDate, publisher, dateCreated, docDesc,
private String url;
private ProgressDialog dialog;
private Button btnViewReport;
// private String journalSite;
// private String websiteUrl;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.e(TAG, "ReportDetailViewFragment");
parentActivity = (ReportDetailViewActivity) getActivity();
dialog = new ProgressDialog(parentActivity);
// get Area application inorder to pull from the database
//areaApp = (AreaApplication) getActivity().getApplication();
// To retrieve the document ID from the activity that called this intent
final Bundle reportInfoBundle = getActivity().getIntent().getExtras();
docID = reportInfoBundle.getInt(DOCUMENT_ID);
getLoaderManager().initLoader(0, null, this);
/*
* try { //Cursor document = areaApp.areaData.getReport(docID); Cursor
* document = null;
*
* getActivity().startManagingCursor(document);
*
* document.moveToFirst();
*
* docID = document.getString(document.getColumnIndex(DOCUMENT_ID));
* docTitle = document.getString(document.getColumnIndex(DOC_TITLE));
* docName = document.getString(document.getColumnIndex(DOC_NAME));
* pubDate =
* document.getString(document.getColumnIndex(PUBLICATION_DATE));
* publisher = document.getString(document.getColumnIndex(PUBLISHER));
* dateCreated =
* document.getString(document.getColumnIndex(DATE_CREATED)); docDesc =
* document.getString(document.getColumnIndex(DOCUMENT_ID));
*
* document.close();
*
* } catch(Exception e) { Log.e(TAG,
* "Exception in ReportViewFragement"); }
*/
// Log.d(TAG, String.format("Doc ID: %s, Doc Name %s", docID, docName));
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
dialog = ProgressDialog.show(parentActivity, "",
"Loading. Please wait...", true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.report_view_frag, container,
false);
return view;
}
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
Log.d(TAG, "onCreateLoader: Calling database to get data");
return new ReportAdapter(getActivity(), docID);
}
@Override
public void onLoadFinished(Loader<Cursor> arg0, Cursor cursor) {
if (cursor.moveToFirst()) {
Log.d(TAG,
"Cursor columns "
+ Arrays.toString(cursor.getColumnNames()));
final TextView txtMainTitle = (TextView) getView().findViewById(
R.id.txtMainTitle);
final TextView txtPub = (TextView) getView().findViewById(
R.id.txtPublisher);
final TextView txtPubDate = (TextView) getView().findViewById(
R.id.txtPubDate);
final TextView txtDateCreated = (TextView) getView().findViewById(
R.id.txtDateCreated);
final WebView txtDescription = (WebView) getView().findViewById(
R.id.txtDescription);
txtMainTitle.setText(cursor.getString(cursor
.getColumnIndex(IDS_DOC_TITLE)));
txtPub.setText("Publisher: "
+ cursor.getString(cursor.getColumnIndex(IDS_DOC_PUB)));
txtPubDate
.setText("Publication Date: "
+ cursor.getString(cursor
.getColumnIndex(IDS_DOC_PUB_DATE)));
txtDateCreated.setText("Date Created: "
+ cursor.getString(cursor.getColumnIndex(IDS_DOC_DATE)));
txtDescription.loadData(
cursor.getString(cursor.getColumnIndex(IDS_DOC_DESC)),
"text/html", "utf-8");
url = cursor.getString(cursor.getColumnIndex(IDS_DOC_DWNLD_URL));
Toast.makeText(parentActivity.getBaseContext(), "URL" + url,
Toast.LENGTH_SHORT).show();
if (dialog.isShowing()) {
dialog.dismiss();
}
}
btnViewReport = (Button) getView().findViewById(R.id.btnViewReport);
btnViewReport.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(getActivity()
.getApplicationContext(), ReportWebViewActivity.class);
intent.putExtra(IDS_DOC_DWNLD_URL, url);
startActivity(intent);
}
});
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub
}
public void reload() {
getLoaderManager().restartLoader(0, null, this);
}
}