package com.example.basket;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
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.general.Review;
import com.basket.restrequest.AddReviewRequest;
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 ReviewActivity extends Activity {
private SpiceManager spiceManager = new SpiceManager(CarJsonSpringAndroidSpiceService.class);
private boolean forBid;
private int forEventId;
private int withProduct;
private Review theReview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_review);
forEventId = this.getIntent().getIntExtra("id", 0);
forBid = this.getIntent().getBooleanExtra("bid", false);
withProduct=this.getIntent().getIntExtra("pro", 0);
Button reviewIt = (Button) this.findViewById(R.id.createBuyEvent);
reviewIt.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
if(!spiceManager.isStarted())
{
spiceManager.start(ReviewActivity.this);
String title;
String content;
float rating;
TextView t = (TextView)findViewById(R.id.buyEventProductNameET);
title =t.getText().toString();
TextView c = (TextView) findViewById(R.id.buyEventProductFeatures);
content= c.getText().toString();
final RatingBar minimumRating = (RatingBar)findViewById(R.id.ratingbar);
rating= minimumRating.getRating();
Review newReview = new Review();
newReview.setContent(content);
newReview.setRrating(rating);
newReview.setTitle(title);
newReview.setUsername(BasketSession.getUser().getUsername());
theReview=newReview;
AddReviewRequest postReview = new AddReviewRequest(newReview,BasketSession.getUser().getUsername(),forEventId,forBid,withProduct);
spiceManager.execute(postReview,"", DurationInMillis.ALWAYS_EXPIRED, new PReviewListener());
}
}
});
}
private class PReviewListener implements RequestListener<Boolean>, RequestProgressListener {
@Override
public void onRequestFailure(SpiceException arg0)
{
Log.d("error",arg0.getMessage());
if (!(arg0 instanceof RequestCancelledException))
{
Toast.makeText(ReviewActivity.this, "Review Failed", Toast.LENGTH_SHORT).show();
spiceManager.shouldStop();
}
Toast.makeText(ReviewActivity.this, "Review Failed", Toast.LENGTH_SHORT).show();
if(spiceManager.isStarted())
spiceManager.shouldStop();
}
@Override
public void onRequestSuccess(Boolean bool)
{
spiceManager.shouldStop();
Toast.makeText(ReviewActivity.this, "Review Posted", Toast.LENGTH_SHORT).show();
BasketSession.getReviewSearch().add(theReview);
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.review, menu);
return true;
}
}