UNCCGameDay/src/com/uncc/gameday/activities/parking/LotViewFragment.java

147 lines
3.7 KiB
Java

package com.uncc.gameday.activities.parking;
import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ProgressBar;
import android.widget.SeekBar;
import android.widget.Toast;
import com.uncc.gameday.R;
import com.uncc.gameday.parking.ParkingChoice;
import com.uncc.gameday.parking.ParkingClient;
import com.uncc.gameday.parking.ParkingLot;
import com.uncc.gameday.parking.RatingChoices;
/**
* The Class LotViewFragment.
*/
public class LotViewFragment extends DialogFragment {
/** The ParkingChoice that we are viewing */
ParkingChoice pc;
/**
* Instantiates a new lot view fragment.
*/
public LotViewFragment(){
}
/**
* Initialize the data when the fragment is started.
* Specifically, set up the MapView to display, and fetch
* other information about the parking lot.
*
* @param pc - The Parking lot we need to get information for
*/
private void initializeData(ParkingLot pl){
ProgressBar bar = (ProgressBar)this.getView().findViewById(R.id.lotViewCurrentFilled);
bar.setProgress(pl.getFilledPct());
// Set up the MapView here.
}
/* (non-Javadoc)
* @see android.app.Fragment#onCreateView(android.view.LayoutInflater, android.view.ViewGroup, android.os.Bundle)
*/
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ParkingChoice pc;
Bundle args = this.getArguments();
if (args.containsKey("CHOICE"))
pc = ParkingChoice.valueOf(String.valueOf(args.get("CHOICE")));
else
pc = ParkingChoice.BLACK;
this.pc = pc;
View view = inflater.inflate(R.layout.lot_view, container);
getDialog().setTitle(pc.getValue());
// Initialize our data
new InitializeThread(pc, this).start();
view.findViewById(R.id.lotViewSubmitRating).setOnClickListener(new SubmitListener(this));
return view;
}
/**
* Send a parking lot rating to the server
*/
public void onSubmitRating(View v) {
// Submit a rating to the server
SeekBar bar = (SeekBar)this.getView().findViewById(R.id.lotViewLotRating);
int rating = bar.getProgress();
// Switch between values of parking rating
RatingChoices rc;
if (rating < 25)
rc = RatingChoices.EMP;
else if (rating < 50)
rc = RatingChoices.SCT;
else if (rating < 75)
rc = RatingChoices.BSY;
else
rc = RatingChoices.FLL;
new SubmitThread(this.pc, rc).start();
Toast.makeText(getActivity(), "Rating submitted!", Toast.LENGTH_SHORT).show();
}
private class InitializeThread extends Thread {
ParkingChoice pc;
LotViewFragment f;
public InitializeThread(ParkingChoice pc, LotViewFragment f) {
this.pc = pc;
this.f = f;
}
@Override
public void run() {
ParkingClient client = new ParkingClient(f.getActivity());
ParkingLot pl = client.listLot(this.pc);
ParkingLot pl2 = client.listLotLocation(this.pc);
pl.setCoordinate(pl2.getCoordinate());
f.initializeData(pl);
}
}
private class SubmitThread extends Thread {
ParkingChoice pc;
RatingChoices r;
public SubmitThread(ParkingChoice pc, RatingChoices r) {
this.pc = pc;
this.r = r;
}
public void run() {
ParkingClient pc = new ParkingClient(getActivity());
pc.rateLot(r, this.pc);
}
}
private class SubmitListener implements OnClickListener {
LotViewFragment f;
public SubmitListener(LotViewFragment f) {
this.f = f;
}
@Override
public void onClick(View v) {
f.onSubmitRating(v);
}
}
}