com.ateam.alleneatonautorentals.ServiceSearchCar.java Source code

Java tutorial

Introduction

Here is the source code for com.ateam.alleneatonautorentals.ServiceSearchCar.java

Source

/*
 * XML: view_inventory
 * Search cars in service menu
 */

package com.ateam.alleneatonautorentals;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ServiceSearchCar extends ListActivity {
    String keyword = "";

    private ProgressDialog progressDialog;
    JSONParser jsonParser = new JSONParser();

    ArrayList<HashMap<String, String>> carsList;

    private static final String CARS_URL = "http://people.eecs.ku.edu/~kwu96/ATeamScripts/search_cars.php";
    private static final String TAG_SUCCESS = "success";
    private static final String TAG_CARS = "cars";
    private static final String TAG_ID = "id";
    private static final String TAG_TYPE = "type";
    private static final String TAG_MAKE = "make";
    private static final String TAG_MODEL = "model";
    private static final String TAG_YEAR = "year";
    private static final String TAG_LICENSE_PLATE = "license_plate";
    private static final String TAG_LICENSE_STATE = "license_state";
    private static final String TAG_MILES = "miles";
    private static final String TAG_OIL_DATE = "oil_change_date";
    private static final String TAG_OIL_MILE = "oil_change_mile";
    private static final String TAG_TIRE_DATE = "tire_rotation_date";
    private static final String TAG_TIRE_MILE = "tire_rotation_mile";
    private static final String TAG_FILTER_DATE = "air_filters_date";
    private static final String TAG_FILTER_MILE = "air_filters_mile";
    private static final String TAG_LOCATION = "location";

    JSONArray cars = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_inventory);

        Intent getIntent = getIntent();
        keyword = getIntent.getStringExtra("key");
        Log.d("Key Searched: ", keyword);
        carsList = new ArrayList<HashMap<String, String>>();

        new LoadFoundCars().execute();

        SessionManager session = new SessionManager(getApplicationContext());
        String role = session.getRole();

        if (role.equals("Service") || role.equals("Manager")) {
            ListView lv = getListView();

            lv.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    String model = ((TextView) view.findViewById(R.id.car_model_list)).getText().toString();
                    String make = ((TextView) view.findViewById(R.id.car_make_list)).getText().toString();
                    String carid = ((TextView) view.findViewById(R.id.car_id_list)).getText().toString();
                    Intent ii = new Intent(getApplicationContext(), ServiceCarMenu.class);

                    ii.putExtra(TAG_MODEL, model);
                    ii.putExtra(TAG_MAKE, make);
                    ii.putExtra(TAG_ID, carid);
                    ii.putExtra("key", keyword);

                    startActivity(ii);
                    finish();
                }

            });
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    class LoadFoundCars extends AsyncTask<String, String, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog = new ProgressDialog(ServiceSearchCar.this);
            progressDialog.setMessage("Loading cars...");
            progressDialog.setIndeterminate(false);
            progressDialog.setCancelable(false);
            progressDialog.show();
        }

        @Override
        protected String doInBackground(String... args) {
            List<NameValuePair> params = new ArrayList<NameValuePair>();

            params.add(new BasicNameValuePair("keyword", keyword));

            JSONObject json = jsonParser.makeHttpRequest(CARS_URL, "POST", params);

            Log.d("All Cars: ", json.toString());

            try {
                int success = json.getInt(TAG_SUCCESS);

                if (success == 1) {
                    cars = json.getJSONArray(TAG_CARS);

                    // Go through each users in JSON
                    for (int i = 0; i < cars.length(); i++) {
                        JSONObject c = cars.getJSONObject(i);

                        // Get the string from JSON
                        String id = c.getString(TAG_ID);
                        String type = c.getString(TAG_TYPE);
                        String make = c.getString(TAG_MAKE);
                        String model = c.getString(TAG_MODEL);
                        String year = c.getString(TAG_YEAR);
                        String license_state = c.getString(TAG_LICENSE_STATE);
                        String license_plate = c.getString(TAG_LICENSE_PLATE);
                        String miles = c.getString(TAG_MILES);
                        String oil_date = c.getString(TAG_OIL_DATE);
                        String oil_mile = c.getString(TAG_OIL_MILE);
                        String tire_date = c.getString(TAG_TIRE_DATE);
                        String tire_mile = c.getString(TAG_TIRE_MILE);
                        String filter_date = c.getString(TAG_FILTER_DATE);
                        String filter_mile = c.getString(TAG_FILTER_MILE);
                        String location = c.getString(TAG_LOCATION);

                        HashMap<String, String> map = new HashMap<String, String>();

                        // Store the strings
                        map.put(TAG_ID, "Car ID: ".concat(id));
                        map.put(TAG_TYPE, "Car Type: ".concat(type));
                        map.put(TAG_MAKE, make);
                        map.put(TAG_MODEL, "Car Model: ".concat(model));
                        map.put(TAG_YEAR, "Car Year: ".concat(year));
                        map.put(TAG_LICENSE_PLATE, "License Plate: ".concat(license_plate));
                        map.put(TAG_LICENSE_STATE, "Issued In: ".concat(license_state));
                        map.put(TAG_MILES, "Miles: ".concat(miles));
                        map.put(TAG_OIL_DATE, "Oil Change Date: ".concat(oil_date));
                        map.put(TAG_OIL_MILE, "Oil Use Miles: ".concat(oil_mile));
                        map.put(TAG_TIRE_DATE, "Tire Rotation Date: ".concat(tire_date));
                        map.put(TAG_TIRE_MILE, "Tire Miles: ".concat(tire_mile));
                        map.put(TAG_FILTER_DATE, "Air Filter Replacement Date: ".concat(filter_date));
                        map.put(TAG_FILTER_MILE, "Air Filter Miles: ".concat(filter_mile));
                        map.put(TAG_LOCATION, "Car's Current Location: ".concat(location));

                        carsList.add(map);
                    }
                } else {
                    Intent ii = new Intent(ServiceSearchCar.this, MainMenu.class);
                    Bundle b = new Bundle();
                    b.putString("employeeType", "Service");
                    ii.putExtras(b);

                    startActivity(ii);
                    finish();

                    return "Error in Database";
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

        protected void onPostExecute(String message) {
            progressDialog.dismiss();

            if (message != null) {
                Toast.makeText(ServiceSearchCar.this, message, Toast.LENGTH_LONG).show();
            } else {
                // Puts all the strings into the list
                runOnUiThread(new Runnable() {
                    public void run() {
                        ListAdapter adapter = new SimpleAdapter(ServiceSearchCar.this, carsList,
                                R.layout.listitem_car,
                                new String[] { TAG_ID, TAG_TYPE, TAG_MAKE, TAG_MODEL, TAG_YEAR, TAG_LICENSE_PLATE,
                                        TAG_LICENSE_STATE, TAG_MILES, TAG_OIL_DATE, TAG_OIL_MILE, TAG_TIRE_DATE,
                                        TAG_TIRE_MILE, TAG_FILTER_DATE, TAG_FILTER_MILE, TAG_LOCATION },
                                new int[] { R.id.car_id_list, R.id.car_type_list, R.id.car_make_list,
                                        R.id.car_model_list, R.id.car_year_list, R.id.car_license_plate_list,
                                        R.id.car_license_state_list, R.id.car_miles_list, R.id.car_oil_date_list,
                                        R.id.car_oil_mile_list, R.id.car_tire_date_list, R.id.car_tire_mile_list,
                                        R.id.car_filter_date_list, R.id.car_filter_mile_list,
                                        R.id.car_location_list });
                        setListAdapter(adapter);
                    }
                });
            }
        }

    }

    public void clickButtons(View v) {
        final int id = v.getId();

        switch (id) {

        default:
            break;
        }

    }

    @Override
    public void onBackPressed() {
        Intent ii = new Intent(getApplicationContext(), MainMenu.class);
        Bundle b = new Bundle();
        b.putString("employeeType", "Service");
        ii.putExtras(b);

        startActivity(ii);
        finish();
    }

}