package com.basket.activities;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.TextView;
import android.widget.Toast;
import com.basket.containers.BasketSession;
import com.basket.general.BidEvent;
import com.basket.general.CarJsonSpringAndroidSpiceService;
import com.basket.restrequest.DeleteBidEventRequest;
import com.example.basket.R;
import com.octo.android.robospice.SpiceManager;
import com.octo.android.robospice.exception.RequestCancelledException;
import com.octo.android.robospice.persistence.DurationInMillis;
import com.octo.android.robospice.persistence.exception.SpiceException;
import com.octo.android.robospice.request.listener.RequestListener;
import com.octo.android.robospice.request.listener.RequestProgress;
import com.octo.android.robospice.request.listener.RequestProgressListener;
public class BidWinActivity extends Activity {
private Button mAccept, mDecline;
private int position;
private SpiceManager spiceManager= new SpiceManager(CarJsonSpringAndroidSpiceService.class);
private BidEvent e;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bid_win);
position = this.getIntent().getIntExtra("itemClicked", 0);
mAccept = (Button) findViewById(R.id.acceptBid);
mAccept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(BidWinActivity.this, "Bid accepted", Toast.LENGTH_LONG).show();;
removeBid(1);
}
});
mDecline = (Button) findViewById(R.id.declineBid);
mDecline.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(BidWinActivity.this, "Bid declined", Toast.LENGTH_LONG).show();;
removeBid(0);
}
});
e = BasketSession.getUser().getCurrentlySellingOnBid().get(position);
((TextView)this.findViewById(R.id.bidproduct)).setText(((BidEvent) e).getBidTitle());
((TextView)this.findViewById(R.id.winnah)).setText(((BidEvent) e).getWinningBid().getBidder());
if (((BidEvent) e).getWinningBid()!=null)
((TextView)this.findViewById(R.id.bidprice)).setText("$"+Double.toString(((BidEvent) e).getWinningBid().getAmmount()));
else
((TextView)this.findViewById(R.id.bidprice)).setText("$"+Double.toString(((BidEvent) e).getMinBid()));
((TextView)this.findViewById(R.id.bidsupplier)).setText(((BidEvent) e).getProduct().getManufacturer());
((TextView)this.findViewById(R.id.pp)).setText(((BidEvent) e).getProduct().getName());
final RatingBar minimumRating = (RatingBar)this.findViewById(R.id.bidratingBar1);
minimumRating.setRating(e.getRating());
((TextView)this.findViewById(R.id.textView1)).setText(((BidEvent) e).getWinningBid().getBidder());
((TextView)this.findViewById(R.id.pricemybasket)).setText(Double.toString(((BidEvent) e).getWinningBid().getAmmount()));
}
protected void removeBid(int accepted) {
if(!spiceManager.isStarted()){
spiceManager.start(BidWinActivity.this);
}
DeleteBidEventRequest JsonSpringAndroidRequest;
if (accepted==1)
JsonSpringAndroidRequest = new DeleteBidEventRequest(e.getId(),1,e.getWinningBid().getBidder());
else
JsonSpringAndroidRequest = new DeleteBidEventRequest(e.getId(),0,e.getWinningBid().getBidder());
spiceManager.execute(JsonSpringAndroidRequest, "del_bid", DurationInMillis.ALWAYS_EXPIRED, new BidDelListener());
}
private class BidDelListener implements RequestListener<Boolean>, RequestProgressListener {
@Override
public void onRequestFailure(SpiceException arg0) {
Log.d("error",arg0.getMessage());
if (!(arg0 instanceof RequestCancelledException))
{
Toast.makeText(BidWinActivity.this, "User could not be accepted", Toast.LENGTH_SHORT).show();
}
spiceManager.shouldStop();
}
@Override
public void onRequestSuccess(Boolean CreatedUser)
{
Toast.makeText(BidWinActivity.this, "Bid accepted", Toast.LENGTH_SHORT).show();
BasketSession.getUser().getCurrentlySellingOnBid().remove(position);
spiceManager.shouldStop();
BidWinActivity.this.finish();
}
@Override
public void onRequestProgressUpdate(RequestProgress arg0)
{
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.bid_win, menu);
return true;
}
}