//
// _/_/_/ _/ _/_/_/_/_/
// _/ _/_/ _/_/ _/ _/ _/ _/_/ _/_/
// _/ _/_/ _/_/_/_/ _/_/_/_/ _/_/ _/ _/ _/ _/ _/
// _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
// _/_/_/ _/_/_/ _/_/_/ _/ _/ _/_/_/_/_/ _/_/ _/_/
//
//
// Copyright (c) 2015-2016, Geek Zoo Studio
// http://www.geek-zoo.com
//
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
// IN THE SOFTWARE.
//
package com.insthub.O2OMobile.View;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.os.Message;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.BeeFramework.Utils.AnimationUtil;
import com.BeeFramework.model.BusinessResponse;
import com.external.androidquery.callback.AjaxStatus;
import com.external.eventbus.EventBus;
import com.external.maxwin.view.IXListViewListener;
import com.external.maxwin.view.XListView;
import com.insthub.O2OMobile.Adapter.A1_LbsListRequestAdapter;
import com.insthub.O2OMobile.MessageConstant;
import com.insthub.O2OMobile.Model.OrderListAroundModel;
import com.insthub.O2OMobile.Protocol.ApiInterface;
import com.insthub.O2OMobile.Protocol.ENUM_SEARCH_ORDER;
import com.insthub.O2OMobile.R;
import org.json.JSONException;
import org.json.JSONObject;
@SuppressLint("NewApi")
public class A0_RequestListView extends LinearLayout implements BusinessResponse, IXListViewListener, OnClickListener {
private Context mContext;
private XListView mListView;
private OrderListAroundModel mOrderModel;
private A1_LbsListRequestAdapter mHomeDemandAdapter;
private View mFilterBg;
private LinearLayout mFilterView;
private TextView mFilterLocation;
private TextView mFilterTime;
private TextView mFilterPriceDesc;
private TextView mFilterPriceAsc;
private ImageView mFilterLocationIcon;
private ImageView mFilterTimeIcon;
private ImageView mFilterPriceDescIcon;
private ImageView mFilterPriceAscIcon;
private int mSoryBy = 0;
public A0_RequestListView(Context context) {
super(context);
mContext = context;
}
public A0_RequestListView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
}
public A0_RequestListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
mContext = context;
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
init();
}
public void init() {
mSoryBy = ENUM_SEARCH_ORDER.location_asc.value();
mListView = (XListView) findViewById(R.id.a1_lbs_list_listview);
mListView.setXListViewListener(this, 0);
mListView.setPullLoadEnable(true);
mListView.setRefreshTime();
mFilterBg = findViewById(R.id.a1_lbs_list_filter_bg);
mFilterView = (LinearLayout) findViewById(R.id.a1_lbs_list_filter_view);
mFilterLocation = (TextView) findViewById(R.id.a1_lbs_list_filter_location);
mFilterTime = (TextView) findViewById(R.id.a1_lbs_list_filter_time);
mFilterPriceDesc = (TextView) findViewById(R.id.a1_lbs_list_filter_price_desc);
mFilterPriceAsc = (TextView) findViewById(R.id.a1_lbs_list_filter_price_asc);
mFilterLocationIcon = (ImageView) findViewById(R.id.a1_lbs_list_filter_location_icon);
mFilterTimeIcon = (ImageView) findViewById(R.id.a1_lbs_list_filter_time_icon);
mFilterPriceDescIcon = (ImageView) findViewById(R.id.a1_lbs_list_filter_price_desc_icon);
mFilterPriceAscIcon = (ImageView) findViewById(R.id.a1_lbs_list_filter_price_asc_icon);
changeTextColor(mFilterLocation);
mFilterBg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
hideView();
}
});
mFilterLocation.setOnClickListener(this);
mFilterTime.setOnClickListener(this);
mFilterPriceDesc.setOnClickListener(this);
mFilterPriceAsc.setOnClickListener(this);
mOrderModel = new OrderListAroundModel(mContext);
mOrderModel.addResponseListener(this);
mOrderModel.getList(mSoryBy);
mListView.setAdapter(null);
}
@Override
public void onRefresh(int id) {
// TODO Auto-generated method stub
mOrderModel.getList(mSoryBy);
mListView.setRefreshTime();
}
@Override
public void onLoadMore(int id) {
// TODO Auto-generated method stub
mOrderModel.getListMore(mSoryBy);
}
@Override
public void OnMessageResponse(String url, JSONObject jo, AjaxStatus status)
throws JSONException {
// TODO Auto-generated method stub
mListView.stopRefresh();
mListView.stopLoadMore();
if(url.endsWith(ApiInterface.ORDERLIST_AROUND)) {
setAdapterCont();
if(mOrderModel.publicMore == 0) {
mListView.setPullLoadEnable(false);
} else {
mListView.setPullLoadEnable(true);
}
}
}
private void setAdapterCont() {
if(mHomeDemandAdapter == null) {
mHomeDemandAdapter = new A1_LbsListRequestAdapter(mContext, mOrderModel.publicOrderList);
mListView.setAdapter(mHomeDemandAdapter);
} else {
mHomeDemandAdapter.publicList = mOrderModel.publicOrderList;
mHomeDemandAdapter.notifyDataSetChanged();
}
}
public void showView() {
if(mFilterView.getVisibility() == View.GONE) {
mFilterBg.setVisibility(View.VISIBLE);
mFilterView.setVisibility(View.VISIBLE);
AnimationUtil.showAnimationFromTop(mFilterView);
Message msg = new Message();
msg.what = MessageConstant.SHOW_SEARCH_VIEW;
EventBus.getDefault().post(msg);
} else {
hideView();
}
}
public void hideView() {
mFilterBg.setVisibility(View.GONE);
mFilterView.setVisibility(View.GONE);
AnimationUtil.backAnimationFromBottom(mFilterView);
Message msg = new Message();
msg.what = MessageConstant.HIDE_SEARCH_VIEW;
EventBus.getDefault().post(msg);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()) {
case R.id.a1_lbs_list_filter_price_desc:
hideView();
if(mSoryBy == ENUM_SEARCH_ORDER.price_desc.value()) {
return;
} else {
changeTextColor(mFilterPriceDesc);
mSoryBy = ENUM_SEARCH_ORDER.price_desc.value();
}
break;
case R.id.a1_lbs_list_filter_price_asc:
hideView();
if(mSoryBy == ENUM_SEARCH_ORDER.price_asc.value()) {
return;
} else {
changeTextColor(mFilterPriceAsc);
mSoryBy = ENUM_SEARCH_ORDER.price_asc.value();
}
break;
case R.id.a1_lbs_list_filter_time:
hideView();
if(mSoryBy == ENUM_SEARCH_ORDER.time_desc.value()) {
return;
} else {
changeTextColor(mFilterTime);
mSoryBy = ENUM_SEARCH_ORDER.time_desc.value();
}
break;
case R.id.a1_lbs_list_filter_location:
hideView();
if(mSoryBy == ENUM_SEARCH_ORDER.location_asc.value()) {
return;
} else {
changeTextColor(mFilterLocation);
mSoryBy = ENUM_SEARCH_ORDER.location_asc.value();
}
break;
}
mHomeDemandAdapter = null;
mOrderModel.getList(mSoryBy);
}
private void changeTextColor(View view) {
if(view == mFilterPriceDesc) {
mFilterPriceDesc.setTextColor(Color.parseColor("#39BCED"));
mFilterPriceAsc.setTextColor(Color.parseColor("#333333"));
mFilterTime.setTextColor(Color.parseColor("#333333"));
mFilterLocation.setTextColor(Color.parseColor("#333333"));
mFilterPriceDescIcon.setVisibility(View.VISIBLE);
mFilterPriceAscIcon.setVisibility(View.GONE);
mFilterTimeIcon.setVisibility(View.GONE);
mFilterLocationIcon.setVisibility(View.GONE);
} else if(view == mFilterPriceAsc) {
mFilterPriceDesc.setTextColor(Color.parseColor("#333333"));
mFilterPriceAsc.setTextColor(Color.parseColor("#39BCED"));
mFilterTime.setTextColor(Color.parseColor("#333333"));
mFilterLocation.setTextColor(Color.parseColor("#333333"));
mFilterPriceDescIcon.setVisibility(View.GONE);
mFilterPriceAscIcon.setVisibility(View.VISIBLE);
mFilterTimeIcon.setVisibility(View.GONE);
mFilterLocationIcon.setVisibility(View.GONE);
} else if(view == mFilterTime) {
mFilterPriceDesc.setTextColor(Color.parseColor("#333333"));
mFilterPriceAsc.setTextColor(Color.parseColor("#333333"));
mFilterTime.setTextColor(Color.parseColor("#39BCED"));
mFilterLocation.setTextColor(Color.parseColor("#333333"));
mFilterPriceDescIcon.setVisibility(View.GONE);
mFilterPriceAscIcon.setVisibility(View.GONE);
mFilterTimeIcon.setVisibility(View.VISIBLE);
mFilterLocationIcon.setVisibility(View.GONE);
} else if(view == mFilterLocation) {
mFilterPriceDesc.setTextColor(Color.parseColor("#333333"));
mFilterPriceAsc.setTextColor(Color.parseColor("#333333"));
mFilterTime.setTextColor(Color.parseColor("#333333"));
mFilterLocation.setTextColor(Color.parseColor("#39BCED"));
mFilterPriceDescIcon.setVisibility(View.GONE);
mFilterPriceAscIcon.setVisibility(View.GONE);
mFilterTimeIcon.setVisibility(View.GONE);
mFilterLocationIcon.setVisibility(View.VISIBLE);
}
}
}