package com.wise.service;
import java.util.List;
import com.baidu.mapapi.navi.BaiduMapNavigation;
import com.baidu.mapapi.navi.BaiduMapAppNotSupportNaviException;
import com.baidu.mapapi.navi.NaviPara;
import com.baidu.platform.comapi.basestruct.GeoPoint;
import com.wise.customView.SlidingView;
import com.wise.data.AdressData;
import com.wise.pubclas.Variable;
import com.wise.wawc.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
/**
* 我的收藏自定义迭代器
*/
public class CollectionAdapter extends BaseAdapter {
private static final String TAG = "CollectionAdapter";
private Context context;
private LayoutInflater layoutInflater;
List<AdressData> adressDatas = null;
CollectionItemListener collectionItemListener = null;
// 天安门坐标
double currentLat = Variable.Lat;
double currentLon = Variable.Lon;
public CollectionAdapter(Context context, List<AdressData> adrDataList) {
this.context = context;
layoutInflater = LayoutInflater.from(context);
this.adressDatas = adrDataList;
}
public int getCount() {
return this.adressDatas.size();
}
public Object getItem(int position) {
return this.adressDatas.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null){
convertView = layoutInflater.inflate(R.layout.item_collection, null);
holder = new ViewHolder();
holder.tv_name = (TextView) convertView.findViewById(R.id.tv_name);
holder.tv_del = (TextView) convertView.findViewById(R.id.tv_del);
holder.tv_address = (TextView) convertView.findViewById(R.id.tv_address);
holder.tv_tel = (TextView) convertView.findViewById(R.id.tv_tel);
holder.tv_distance = (TextView) convertView.findViewById(R.id.tv_distance);
holder.iv_location = (ImageView) convertView.findViewById(R.id.iv_location);
holder.iv_tel = (ImageView) convertView.findViewById(R.id.iv_tel);
holder.iv_share = (ImageView) convertView.findViewById(R.id.iv_share);
holder.rl_tel = (RelativeLayout) convertView.findViewById(R.id.rl_tel);
holder.slidingView = (SlidingView)convertView.findViewById(R.id.sv);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
final AdressData adressData = adressDatas.get(position);
holder.slidingView.ScorllRestFast();
holder.tv_name.setText(adressData.getName());
holder.tv_address.setText("地址:" + adressData.getAdress());
holder.tv_distance.setVisibility(View.GONE);
if(adressData.getPhone() == null || adressData.getPhone().equals("")){
holder.rl_tel.setVisibility(View.GONE);
}else{
holder.rl_tel.setVisibility(View.VISIBLE);
holder.tv_tel.setText("电话: " + adressData.getPhone());
}
holder.iv_location.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO 切换到导航页面
startNavi(adressData.getLat(),adressData.getLon());
}
});
holder.iv_tel.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL,Uri.parse("tel:"+ adressData.getPhone()));
context.startActivity(intent);
}
});
holder.tv_del.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
System.out.println(position);
if(collectionItemListener != null){
collectionItemListener.Delete(position);
}
}
});
holder.iv_share.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(collectionItemListener != null){
collectionItemListener.share(position);
}
}
});
return convertView;
}
private class ViewHolder {
TextView tv_name,tv_address,tv_tel,tv_distance,tv_del;
ImageView iv_location,iv_tel,iv_share;
RelativeLayout rl_tel;
SlidingView slidingView;
}
public void setCollectionItem(CollectionItemListener collectionItemListener){
this.collectionItemListener = collectionItemListener;
}
public interface CollectionItemListener{
/**
* 删除触发
* @param position
*/
public void Delete(int position);
public void share(int position);
}
public void startNavi(double goLat, double goLon) {
int lat = (int) (currentLat * 1E6);
int lon = (int) (currentLon * 1E6);
GeoPoint pt1 = new GeoPoint(lat, lon);
lat = (int) (goLat * 1E6);
lon = (int) (goLon * 1E6);
GeoPoint pt2 = new GeoPoint(lat, lon);
// 构建 导航参数
NaviPara para = new NaviPara();
para.startPoint = pt1;
para.startName = "从这里开始";
para.endPoint = pt2;
para.endName = "到这里结束";
try {
BaiduMapNavigation.openBaiduMapNavi(para, (Activity) context);
} catch (BaiduMapAppNotSupportNaviException e) {
e.printStackTrace();
Log.d(TAG, "未安装百度地图,开始web导航");
BaiduMapNavigation.openWebBaiduMapNavi(para, (Activity) context);
}
}
}