package com.basket.lists;
import java.util.ArrayList;
import android.app.ListFragment;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.Toast;
import com.basket.adapters.ProductInMyShopBidAdapter;
import com.basket.containers.BasketSession;
import com.basket.general.BidEvent;
import com.basket.general.CarJsonSpringAndroidSpiceService;
import com.basket.restrequest.BidEventList;
import com.basket.restrequest.WinBidRequest;
import com.example.basket.BidCheckoutActivity;
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;
import eu.erikw.PullToRefreshListView;
import eu.erikw.PullToRefreshListView.OnRefreshListener;
public class BiddingItemsListView extends ListFragment{
private ArrayList<BidEvent> bidItems;
private PullToRefreshListView listView;
private SpiceManager spiceManager= new SpiceManager(CarJsonSpringAndroidSpiceService.class);
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
View rootView = inflater.inflate(R.layout.myshop_list, container, false);
bidItems = BasketSession.getUser().getCurrentlyBiddingOn();
setListAdapter(new ProductInMyShopBidAdapter(getActivity(), bidItems));
listView = (PullToRefreshListView) rootView.findViewById(R.id.pull_to_refresh_listview);
listView.setShowLastUpdatedText(true);
listView.setOnRefreshListener(new OnRefreshListener()
{
@Override
public void onRefresh()
{
if(!spiceManager.isStarted()){
spiceManager.start(getActivity());
WinBidRequest JsonSpringAndroidRequest = new WinBidRequest(BasketSession.getUser().getUserId());
spiceManager.execute(JsonSpringAndroidRequest, "", DurationInMillis.ALWAYS_EXPIRED, new UpdateBidSellerListener());
}
}
});
return rootView;
}
public void onListItemClick(ListView l, View v, int position, long id)
{
if(BasketSession.getUser().getCurrentlyBiddingOn().get(position).isAccepted()){
// Toast.makeText(getActivity(), "Order Placed", Toast.LENGTH_SHORT).show();
// Order orderToPlace = new Order();
// orderToPlace.setAccount(1);
// orderToPlace.setBidEvent(BasketSession.getUser().getCurrentlySellingOnBid().get(position));
// orderToPlace.setDay(1);
// orderToPlace.setMonth(5);
// orderToPlace.setYear(2005);
// BasketSession.getUser().getUserOrders().add(orderToPlace);
// BasketSession.getUser().getCurrentlyBiddingOn().remove(position);
BasketSession.setBidCheckout((BasketSession.getUser().getCurrentlyBiddingOn().get(position)));
Intent checkOut = new Intent(this.getActivity(),BidCheckoutActivity.class);
startActivity(checkOut);
}
}
private class UpdateBidSellerListener implements RequestListener<BidEventList>, RequestProgressListener {
@Override
public void onRequestFailure(SpiceException arg0) {
Log.d("error",arg0.getMessage());
if (!(arg0 instanceof RequestCancelledException)) {
Toast.makeText(getActivity(), "No connection to server", Toast.LENGTH_SHORT).show();
}
spiceManager.shouldStop();
listView.refreshDrawableState();
listView.onRefreshComplete();
}
@Override
public void onRequestSuccess(BidEventList User)
{
spiceManager.shouldStop();
BasketSession.getUser().setCurrentlyBiddingOn(User.getEvents());
listView.refreshDrawableState();
listView.onRefreshComplete();
}
@Override
public void onRequestProgressUpdate(RequestProgress arg0)
{
}
}
}