/**
* @author Damond Howard
*/
package com.project.smartpump;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.concurrent.ExecutionException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.InputSource;
import org.xml.sax.XMLReader;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.XmlResourceParser;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.project.classes.NoDefaultSpinner;
import com.project.classes.PreferencesHelper;
import com.project.classes.Vehicle;
public class CarInfoActivity extends Activity implements OnItemSelectedListener
{
Context context = this;
private static final String TAG = "Fuel Economy Query";
private static final String SERVER_URL = "http://www.fueleconomy.gov/ws/rest/vehicle/menu/";
private static String full_URL1;
private static String full_URL2;
private static String full_URL3;
private static String full_URL4;
private static ArrayList<String> SpinnerList1 = new ArrayList<String>();
private static ArrayList<String> SpinnerList2 = new ArrayList<String>();
private static ArrayList<String> SpinnerList3 = new ArrayList<String>();
private static ArrayList<String> VehicleIDList = new ArrayList<String>();
private static URL FedGov;
private static Boolean falloutbool = false;
private boolean firstRunCheckYearSpinner = true;
private boolean firstRunCheckMakeSpinner = true;
private boolean firstRunCheckModelSpinner = true;
private boolean firstRunCheckOptionSpinner = true;
Button AddVehicle,Reset;
Spinner make_spinner, model_spinner,options_spinner;
NoDefaultSpinner year_spinner;
String make,model,year;
String vID;
String MPG;
boolean profileWasMade = false;
private static ArrayAdapter<CharSequence> adapter = null, makeAdapter = null,modelAdapter = null, optionsAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{ super.onCreate(savedInstanceState);
final PreferencesHelper prefs = new PreferencesHelper(this);
// Activate Clickable Icon Button
ActionBar smartPumpIcon = getActionBar();
smartPumpIcon.setDisplayHomeAsUpEnabled(true);
System.out.println("Initializing components in car info");
setContentView(R.layout.car_info);
AddVehicle = (Button)findViewById(R.id.AddV);
Reset = (Button)findViewById(R.id.ResetV);
year_spinner = (NoDefaultSpinner)findViewById(R.id.spinnerYear);
make_spinner = (Spinner)findViewById(R.id.spinnerMake);
model_spinner = (Spinner)findViewById(R.id.spinnerModel);
options_spinner = (Spinner)findViewById(R.id.spinnerOptions);
System.out.println("Got past view finding");
make_spinner.setEnabled(false);
make_spinner.setClickable(false);
model_spinner.setEnabled(false);
model_spinner.setClickable(false);
options_spinner.setEnabled(false);
options_spinner.setClickable(false);
adapter = ArrayAdapter.createFromResource(CarInfoActivity.this, R.array.years_spinner, android.R.layout.simple_spinner_dropdown_item
);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.notifyDataSetChanged();
year_spinner.setAdapter(adapter);
year_spinner.setPrompt("Select Vehicle Year");
year_spinner.setSelection(-1);
System.out.println("Making item selector 1");
year_spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
year = year_spinner.getSelectedItem().toString();
Log.i(TAG, "Query Database...");
StringBuilder RequestURL = new StringBuilder(SERVER_URL);
RequestURL.append("make?year=" + year_spinner.getSelectedItem());
full_URL1 = RequestURL.toString();
AsyncDownloader downloader = new AsyncDownloader();
downloader.execute();
try {
downloader.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] MakeLists = new String[SpinnerList1.size()];
MakeLists = SpinnerList1.toArray(MakeLists);
makeAdapter = new ArrayAdapter<CharSequence>(CarInfoActivity.this, android.R.layout.simple_spinner_dropdown_item
, MakeLists);
// Specify the layout to use when the list of choices appears
makeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
makeAdapter.notifyDataSetChanged();
make_spinner.setEnabled(true);
make_spinner.setClickable(true);
make_spinner.setAdapter(makeAdapter);
make_spinner.setSelection(-1, false);
try{
makeAdapter.notifyDataSetChanged();
modelAdapter.notifyDataSetChanged();
optionsAdapter.notifyDataSetChanged();
}catch(Exception e){
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
make_spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
SpinnerList2.clear();
SpinnerList3.clear();
try{
modelAdapter.notifyDataSetChanged();
optionsAdapter.notifyDataSetChanged();
}catch(Exception e){
}
try {
make = URLEncoder.encode(make_spinner.getSelectedItem().toString(), "UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Log.i(TAG, "Query Database 2...");
StringBuilder ModelURL = new StringBuilder(SERVER_URL);
ModelURL.append("model?year=" + year + "&make=" + make);
full_URL2 = new String(ModelURL.toString());
AsyncDownloader1 modelDownloader = new AsyncDownloader1();
modelDownloader.execute();
try {
modelDownloader.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] ModelLists = new String[SpinnerList2.size()];
ModelLists = SpinnerList2.toArray(ModelLists);
modelAdapter = new ArrayAdapter<CharSequence>(CarInfoActivity.this, android.R.layout.simple_spinner_item
, ModelLists);
// Specify the layout to use when the list of choices appears
modelAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
model_spinner.setEnabled(true);
model_spinner.setClickable(true);
model_spinner.setAdapter(modelAdapter);
model_spinner.setSelection(0, true);
// android.os.SystemClock.sleep(1000);
try{
makeAdapter.notifyDataSetChanged();
modelAdapter.notifyDataSetChanged();
optionsAdapter.notifyDataSetChanged();
}catch(Exception e){
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
System.out.println("Making item selector 2");
model_spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
try{
optionsAdapter.notifyDataSetChanged();
}catch(Exception e){
}
try {
model = URLEncoder.encode(model_spinner.getSelectedItem().toString(), "UTF-8");
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Log.i(TAG, "Query Database 3...");
StringBuilder ModelURL = new StringBuilder(SERVER_URL);
ModelURL.append("options?year=" + year + "&make=" + make + "&model=" + model);
full_URL3 = new String(ModelURL.toString());
AsyncDownloader2 optionsDownloader = new AsyncDownloader2();
optionsDownloader.execute();
try {
optionsDownloader.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// android.os.SystemClock.sleep(1000);
String[] OptionsLists = new String[SpinnerList3.size()];
OptionsLists = SpinnerList3.toArray(OptionsLists);
optionsAdapter = new ArrayAdapter<CharSequence>(CarInfoActivity.this, android.R.layout.simple_spinner_item
, OptionsLists);
// Specify the layout to use when the list of choices appears
optionsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
options_spinner.setEnabled(true);
options_spinner.setClickable(true);
options_spinner.setAdapter(optionsAdapter);
options_spinner.setSelection(0);
// android.os.SystemClock.sleep(2000);
optionsAdapter.notifyDataSetChanged();
try{
makeAdapter.notifyDataSetChanged();
modelAdapter.notifyDataSetChanged();
optionsAdapter.notifyDataSetChanged();
}catch(Exception e){
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
System.out.println("Making item selector 3");
options_spinner.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
vID = VehicleIDList.get(options_spinner.getSelectedItemPosition());
full_URL4 = "http://www.fueleconomy.gov/ws/rest/vehicle/" + vID;
AsyncDownloader3 MPGDownloader = new AsyncDownloader3();
MPGDownloader.execute();
try {
MPGDownloader.get();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
AddVehicle.setOnClickListener(new OnClickListener()
{
@SuppressLint("ShowToast")
@Override
public void onClick(View v) {
prefs.SavePreferences("VehicleID", vID);
prefs.SavePreferences("VehicleMPG", MPG);
Toast toast = Toast.makeText(context, "Vehicle gets " + MPG + " MPG", Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
Intent MainActivity = new Intent(CarInfoActivity.this, MainActivity .class);
startActivity(MainActivity);
}
});
Reset.setOnClickListener(new OnClickListener()
{ @Override
public void onClick(View v)
{
reset();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu)
{ getMenuInflater().inflate(R.menu.car_info, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{ switch (item.getItemId())
{
case android.R.id.home:
if (profileWasMade) //if a profile exists or a new one was made
{
this.finish();
}
else //do this when nothing was pressed error in here
{ String message = "A Vehicle must be selected to get the adjusted" +
" prices. You may reselect later from the settings menu.";
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(message)
.setCancelable(false)
.setPositiveButton("OK", new DialogInterface.OnClickListener()
{ @Override
public void onClick(DialogInterface dialog, int which)
{
Intent intent = new Intent(context,MainActivity.class);
startActivity(intent);
finish();
}
});
AlertDialog alert = builder.create();
alert.show();
}
break;
case R.id.action_settings:
Toast.makeText(this, "Settings selected", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
return true;
}
/**
* takes in vehicle information and passes it to the database
* @param vehicleYear
* @param vehicleMake
* @param vehicleModel
* @param VehicleID
*/
public void reset()
{
SpinnerList1.clear();
SpinnerList2.clear();
SpinnerList3.clear();
try {
makeAdapter.notifyDataSetChanged();
modelAdapter.notifyDataSetChanged();
optionsAdapter.notifyDataSetChanged();
}catch (Exception e) {
}
firstRunCheckYearSpinner = true;
firstRunCheckMakeSpinner = true;
firstRunCheckModelSpinner = true;
make_spinner.setEnabled(false);
make_spinner.setClickable(false);
model_spinner.setEnabled(false);
model_spinner.setClickable(false);
options_spinner.setEnabled(false);
options_spinner.setClickable(false);
year_spinner.setSelection(0);
make_spinner.setSelection(0);
model_spinner.setSelection(0);
}
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
switch (parent.getId()) {
case R.id.spinnerYear:
year = year_spinner.getSelectedItem().toString();
Log.i(TAG, "Query Database...");
StringBuilder RequestURL = new StringBuilder(SERVER_URL);
RequestURL.append("make?year=" + year_spinner.getSelectedItem());
full_URL1 = RequestURL.toString();
AsyncDownloader downloader = new AsyncDownloader();
downloader.execute();
String[] MakeLists = new String[SpinnerList1.size()];
MakeLists = SpinnerList1.toArray(MakeLists);
ArrayAdapter<String> makeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item
, MakeLists);
// Specify the layout to use when the list of choices appears
makeAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
makeAdapter.notifyDataSetChanged();
make_spinner.setAdapter(makeAdapter);
break;
case R.id.spinnerMake:
make = make_spinner.getSelectedItem().toString();
Log.i(TAG, "Query Database 2...");
StringBuilder ModelURL = new StringBuilder(SERVER_URL);
ModelURL.append("model?year=" + year + "&make=" + make);
full_URL1 = new String(ModelURL.toString());
AsyncDownloader modelDownloader = new AsyncDownloader();
modelDownloader.execute();
while(falloutbool != true)
{
// wait on background thread
}
String[] ModelLists = new String[SpinnerList2.size()];
ModelLists = SpinnerList2.toArray(ModelLists);
ArrayAdapter<String> modelAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item
, ModelLists);
// Specify the layout to use when the list of choices appears
modelAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
modelAdapter.notifyDataSetChanged();
// Apply the adapter to the spinner
model_spinner.setAdapter(modelAdapter);
model_spinner.setSelection(0, true);
falloutbool = false;
break;
case R.id.spinnerModel:
break;
default: break;
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
private class AsyncDownloader extends AsyncTask<Object,String,Integer> {
@Override
protected Integer doInBackground(Object... params) {
Log.i(TAG, "In doInBackground task");
XmlPullParser downloadData = tryDownloadingXmlData();
int recordsFound = tryParsingXmlData(downloadData);
return null;
}
private XmlPullParser tryDownloadingXmlData() {
Log.i(TAG, "Trying to download XML");
try {
FedGov = new URL(full_URL1);
XmlPullParser downloadData;
downloadData= XmlPullParserFactory.newInstance().newPullParser();
InputStream IS = FedGov.openConnection().getInputStream();
downloadData.setInput(IS, null);
return downloadData;
} catch (XmlPullParserException e) {
Log.i(TAG, "XML Pull Parser Exception");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
return null;
}
private int tryParsingXmlData(XmlPullParser downloadData) {
Log.i(TAG, "Trying to parse Data");
if (downloadData != null){
try {
return processDownloadData(downloadData);
} catch (XmlPullParserException e) {
Log.i(TAG, "XmlPullParserException");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
} else {
Log.i(TAG, "No Downloaded Data");
}
return 0;
}
private int processDownloadData(XmlPullParser xmlData) throws XmlPullParserException, IOException {
Log.i(TAG, "Attempting Process");
int recordsFound = 0; // Find values in the XML records
int eventType = xmlData.getEventType();
SpinnerList1.clear();SpinnerList2.clear();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
recordsFound++;
Log.i(TAG,"Start document");
} else if(eventType == XmlPullParser.START_TAG) {
recordsFound++;
Log.i(TAG,"Start tag combo F "+xmlData.getName());
Log.i(TAG,"Start tag combo F "+xmlData.getName());
if (xmlData.getName().equals("value")) {
SpinnerList1.add(xmlData.nextText().toString());
}
Log.i(TAG,"Start tag combo S"+xmlData.getName());
} else if(eventType == XmlPullParser.END_TAG) {
Log.i(TAG,"End tag "+xmlData.getName());
} else if(eventType == XmlPullParser.TEXT) {
recordsFound++;
// SpinnerLists.add(xmlData.getText());
}
eventType = xmlData.next();
}
falloutbool = true;
if (recordsFound == 0) {
publishProgress();
}
Log.i(TAG, "Finished processing "+recordsFound+" records.");
return recordsFound;
}
@Override
protected void onProgressUpdate(String... values) {
if (values.length == 0)
falloutbool = false;
Log.i(TAG, "No Data Downloaded");
if(values.length > 0) {
falloutbool = true;
}
super.onProgressUpdate(values);
}
}
private class AsyncDownloader1 extends AsyncTask<Object,String,Integer> {
@Override
protected Integer doInBackground(Object... params) {
Log.i(TAG, "In doInBackground task");
XmlPullParser downloadData = tryDownloadingXmlData();
int recordsFound = tryParsingXmlData(downloadData);
return null;
}
private XmlPullParser tryDownloadingXmlData() {
Log.i(TAG, "Trying to download XML");
try {
FedGov = new URL(full_URL2);
XmlPullParser downloadData;
downloadData= XmlPullParserFactory.newInstance().newPullParser();
InputStream IS = FedGov.openConnection().getInputStream();
downloadData.setInput(IS, null);
return downloadData;
} catch (XmlPullParserException e) {
Log.i(TAG, "XML Pull Parser Exception");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
return null;
}
private int tryParsingXmlData(XmlPullParser downloadData) {
Log.i(TAG, "Trying to parse Data");
if (downloadData != null){
try {
return processDownloadData(downloadData);
} catch (XmlPullParserException e) {
Log.i(TAG, "XmlPullParserException");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
} else {
Log.i(TAG, "No Downloaded Data");
}
return 0;
}
private int processDownloadData(XmlPullParser xmlData) throws XmlPullParserException, IOException {
Log.i(TAG, "Attempting Process");
int recordsFound = 0; // Find values in the XML records
int eventType = xmlData.getEventType();
SpinnerList2.clear();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
recordsFound++;
Log.i(TAG,"Start document");
} else if(eventType == XmlPullParser.START_TAG) {
recordsFound++;
Log.i(TAG,"Start tag combo F "+xmlData.getName());
Log.i(TAG,"Start tag combo F "+xmlData.getName());
if (xmlData.getName().equals("value")) {
SpinnerList2.add(xmlData.nextText().toString());
} else if (xmlData.getName().equals("value")) {
VehicleIDList.add(xmlData.nextText().toString());
}
Log.i(TAG,"Start tag combo S"+xmlData.getName());
} else if(eventType == XmlPullParser.END_TAG) {
Log.i(TAG,"End tag "+xmlData.getName());
} else if(eventType == XmlPullParser.TEXT) {
recordsFound++;
// SpinnerLists.add(xmlData.getText());
}
eventType = xmlData.next();
}
if (recordsFound == 0) {
publishProgress();
}
Log.i(TAG, "Finished processing "+recordsFound+" records.");
return recordsFound;
}
@Override
protected void onProgressUpdate(String... values) {
if (values.length == 0)
falloutbool = false;
Log.i(TAG, "No Data Downloaded");
if(values.length > 0) {
falloutbool = true;
}
super.onProgressUpdate(values);
}
}
private class AsyncDownloader2 extends AsyncTask<Object,String,Integer> {
@Override
protected Integer doInBackground(Object... params) {
Log.i(TAG, "In doInBackground task");
XmlPullParser downloadData = tryDownloadingXmlData();
int recordsFound = tryParsingXmlData(downloadData);
return null;
}
private XmlPullParser tryDownloadingXmlData() {
Log.i(TAG, "Trying to download XML");
try {
FedGov = new URL(full_URL3);
XmlPullParser downloadData;
downloadData= XmlPullParserFactory.newInstance().newPullParser();
InputStream IS = FedGov.openConnection().getInputStream();
downloadData.setInput(IS, null);
return downloadData;
} catch (XmlPullParserException e) {
Log.i(TAG, "XML Pull Parser Exception");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
return null;
}
private int tryParsingXmlData(XmlPullParser downloadData) {
Log.i(TAG, "Trying to parse Data");
if (downloadData != null){
try {
return processDownloadData(downloadData);
} catch (XmlPullParserException e) {
Log.i(TAG, "XmlPullParserException");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
} else {
Log.i(TAG, "No Downloaded Data");
}
return 0;
}
private int processDownloadData(XmlPullParser xmlData) throws XmlPullParserException, IOException {
Log.i(TAG, "Attempting Process");
int recordsFound = 0; // Find values in the XML records
int eventType = xmlData.getEventType();
SpinnerList3.clear();
VehicleIDList.clear();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
recordsFound++;
Log.i(TAG,"Start document");
} else if(eventType == XmlPullParser.START_TAG) {
recordsFound++;
Log.i(TAG,"Start tag combo F "+xmlData.getName());
Log.i(TAG,"Start tag combo F "+xmlData.getName());
if (xmlData.getName().equals("text")) {
SpinnerList3.add(xmlData.nextText().toString());
} else if (xmlData.getName().equals("value")) {
VehicleIDList.add(xmlData.nextText().toString());
}
Log.i(TAG,"Start tag combo S"+xmlData.getName());
} else if(eventType == XmlPullParser.END_TAG) {
Log.i(TAG,"End tag "+xmlData.getName());
} else if(eventType == XmlPullParser.TEXT) {
recordsFound++;
// SpinnerLists.add(xmlData.getText());
}
eventType = xmlData.next();
}
falloutbool = true;
if (recordsFound == 0) {
publishProgress();
}
Log.i(TAG, "Finished processing "+recordsFound+" records.");
return recordsFound;
}
@Override
protected void onProgressUpdate(String... values) {
if (values.length == 0)
falloutbool = false;
Log.i(TAG, "No Data Downloaded");
if(values.length > 0) {
falloutbool = true;
}
super.onProgressUpdate(values);
}
}
private class AsyncDownloader3 extends AsyncTask<Object,String,Integer> {
@Override
protected Integer doInBackground(Object... params) {
Log.i(TAG, "In doInBackground task");
XmlPullParser downloadData = tryDownloadingXmlData();
int recordsFound = tryParsingXmlData(downloadData);
return null;
}
private XmlPullParser tryDownloadingXmlData() {
Log.i(TAG, "Trying to download XML");
try {
FedGov = new URL(full_URL4);
XmlPullParser downloadData;
downloadData= XmlPullParserFactory.newInstance().newPullParser();
InputStream IS = FedGov.openConnection().getInputStream();
downloadData.setInput(IS, null);
return downloadData;
} catch (XmlPullParserException e) {
Log.i(TAG, "XML Pull Parser Exception");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
return null;
}
private int tryParsingXmlData(XmlPullParser downloadData) {
Log.i(TAG, "Trying to parse Data");
if (downloadData != null){
try {
return processDownloadData(downloadData);
} catch (XmlPullParserException e) {
Log.i(TAG, "XmlPullParserException");
} catch (IOException e){
Log.i(TAG, "IOException +");
}
} else {
Log.i(TAG, "No Downloaded Data");
}
return 0;
}
private int processDownloadData(XmlPullParser xmlData) throws XmlPullParserException, IOException {
Log.i(TAG, "Attempting Process");
int recordsFound = 0; // Find values in the XML records
int eventType = xmlData.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
if(eventType == XmlPullParser.START_DOCUMENT) {
recordsFound++;
Log.i(TAG,"Start document");
} else if(eventType == XmlPullParser.START_TAG) {
recordsFound++;
Log.i(TAG,"Start tag combo F "+xmlData.getName());
Log.i(TAG,"Start tag combo F "+xmlData.getName());
if (xmlData.getName().equals("comb08")) {
MPG = xmlData.nextText().toString();
}
Log.i(TAG,"Start tag combo S"+xmlData.getName());
} else if(eventType == XmlPullParser.END_TAG) {
Log.i(TAG,"End tag "+xmlData.getName());
} else if(eventType == XmlPullParser.TEXT) {
recordsFound++;
// SpinnerLists.add(xmlData.getText());
}
eventType = xmlData.next();
}
falloutbool = true;
if (recordsFound == 0) {
publishProgress();
}
Log.i(TAG, "Finished processing "+recordsFound+" records.");
return recordsFound;
}
@Override
protected void onProgressUpdate(String... values) {
if (values.length == 0)
falloutbool = false;
Log.i(TAG, "No Data Downloaded");
if(values.length > 0) {
falloutbool = true;
}
super.onProgressUpdate(values);
}
}
}