package com.withiter.quhao.activity;
import java.util.ArrayList;
import java.util.List;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.widget.ListView;
import android.widget.Toast;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.display.RoundedBitmapDisplayer;
import com.withiter.quhao.QHClientApplication;
import com.withiter.quhao.R;
import com.withiter.quhao.adapter.ReservationForCurrentPaiduiAdapter;
import com.withiter.quhao.exception.NoResultFromHTTPRequestException;
import com.withiter.quhao.util.ActivityUtil;
import com.withiter.quhao.util.StringUtils;
import com.withiter.quhao.util.http.CommonHTTPRequest;
import com.withiter.quhao.util.tool.ParseJson;
import com.withiter.quhao.util.tool.ProgressDialogUtil;
import com.withiter.quhao.vo.ReservationVO;
/**
* Quhao states of Current/History
*
*/
public class QuhaoCurrentStatesActivity extends QuhaoBaseActivity{
private List<ReservationVO> reservations;
private ListView paiduiListView;
private ReservationForCurrentPaiduiAdapter reservationForPaiduiAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.paidui_current_list_layout);
super.onCreate(savedInstanceState);
paiduiListView = (ListView) this.findViewById(R.id.paiduiListView);
// paiduiListView.setOnItemClickListener(QuhaoCurrentStatesActivity.this);
btnBack.setOnClickListener(goBack(this));
findViewById(R.id.loadingbar).setVisibility(View.VISIBLE);
findViewById(R.id.serverdata).setVisibility(View.GONE);
initData();
}
public void initData() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
try {
progressDialogUtil = new ProgressDialogUtil(QuhaoCurrentStatesActivity.this, R.string.empty, R.string.waitting, false);
progressDialogUtil.showProgress();
String url = "";
String accountId = QHClientApplication.getInstance().accountInfo.accountId;
url = "getCurrentMerchants?accountId=" + accountId;
if (!ActivityUtil.isNetWorkAvailable(getApplicationContext())) {
Toast.makeText(getApplicationContext(), R.string.network_error_info, Toast.LENGTH_SHORT).show();
unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000);
return;
}
String buf = CommonHTTPRequest.get(url);
if (StringUtils.isNull(buf) || "[]".equals(buf)) {
throw new NoResultFromHTTPRequestException();
} else {
reservations = new ArrayList<ReservationVO>();
reservations = ParseJson.getReservations(buf);
reservationsUpdateHandler.obtainMessage(200, reservations).sendToTarget();
}
} catch (Exception e) {
unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000);
reservations = new ArrayList<ReservationVO>();
reservationsUpdateHandler.obtainMessage(200, reservations).sendToTarget();
e.printStackTrace();
} finally {
progressDialogUtil.closeProgress();
Looper.loop();
}
}
});
thread.start();
}
private Handler reservationsUpdateHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == 200) {
super.handleMessage(msg);
if (reservationForPaiduiAdapter == null) {
DisplayImageOptions options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.no_logo)
.showImageForEmptyUri(R.drawable.no_logo)
.showImageOnFail(R.drawable.no_logo)
.cacheInMemory(true)
.cacheOnDisk(true)
.considerExifParams(true)
.displayer(new RoundedBitmapDisplayer(20))
.build();
reservationForPaiduiAdapter = new ReservationForCurrentPaiduiAdapter(QuhaoCurrentStatesActivity.this, paiduiListView, reservations,options,animateFirstListener);
paiduiListView.setAdapter(reservationForPaiduiAdapter);
}
else
{
reservationForPaiduiAdapter.rvos = reservations;
}
reservationForPaiduiAdapter.notifyDataSetChanged();
if (null == reservations ||reservations.isEmpty()) {
Toast.makeText(QuhaoCurrentStatesActivity.this, R.string.no_result_4_quhao_current, Toast.LENGTH_SHORT).show();
}
findViewById(R.id.loadingbar).setVisibility(View.GONE);
findViewById(R.id.serverdata).setVisibility(View.VISIBLE);
unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000);
}
}
};
@Override
public void onClick(View v) {
}
@Override
public boolean onTouch(View v, MotionEvent event) {
return false;
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (progressDialogUtil!=null) {
progressDialogUtil.closeProgress();
}
}
}