package com.roboo.like.google;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import org.apache.http.protocol.HTTP;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.TextureView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
public class RouteActivity extends BaseLayoutActivity
{
public static final int TYPE_WALKING = 0;
public static final int TYPE_DIVIDER = 1;
public static final int TYPE_BUS = 2;
private LinearLayout mLinearContainer;
public static final String EXTRA_ROUTE = "route";
public static final String EXTRA_TYPE = "type";
public ArrayList<String> mRouteList;
private TextView mTvRouteType;
private String toAddres;
public static void actionRoute(Activity activity)
{
Intent intent = new Intent(activity, RouteActivity.class);
activity.startActivity(intent);
}
public static void actionRoute(Activity activity, ArrayList<String> list)
{
Intent intent = new Intent(activity, RouteActivity.class);
intent.putExtra(EXTRA_ROUTE, list);
activity.startActivity(intent);
}
public static void actionRoute(Activity activity, ArrayList<String> list, int type)
{
Intent intent = new Intent(activity, RouteActivity.class);
intent.putExtra(EXTRA_ROUTE, list);
intent.putExtra(EXTRA_TYPE, type);
activity.startActivity(intent);
}
public static void actionRouteForResult(Activity activity, int requestCode)
{
Intent intent = new Intent(activity, RouteActivity.class);
activity.startActivityForResult(intent, requestCode);
}
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_route);// TODO
mRouteList = getIntent().getStringArrayListExtra(EXTRA_ROUTE);
initView();
customActionBar();
fillData(mRouteList);
String text;
if (getIntent().getIntExtra(EXTRA_TYPE, 0) == TYPE_WALKING)
{
text = "步行路线";
}
else if (getIntent().getIntExtra(EXTRA_TYPE, 0) == TYPE_DIVIDER)
{
text = "驾车路线";
}
else
{
text = "公交路线";
}
mTvRouteType.setText(text);
}
private void fillData(ArrayList<String> routeList)
{
if (null != routeList)
{
int paddingLTBR = (int) getResources().getDimension(R.dimen.dimen_textview_padding_ltbr);
for (int i = 0; i < routeList.size(); i++)
{
String str = routeList.get(i);
if (i == 0)
{
str = "我的位置";
}
TextView textView = new TextView(this, null, R.style.Base_List_Item_TextView_Style);
textView.setTextColor(R.drawable.text_color_selector);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(android.widget.LinearLayout.LayoutParams.MATCH_PARENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER_VERTICAL;
textView.setLayoutParams(params);
Drawable drawableLeft = getDrawableLeft(str);
mLinearContainer.addView(textView);
View view = new View(this);
view.setBackgroundColor(0xFFFFFFFF);
params.topMargin = paddingLTBR / 2;
view.setLayoutParams(params);
mLinearContainer.addView(view);
if (i != routeList.size() - 1)
{
}
else
{
toAddres = str;
drawableLeft = getResources().getDrawable(R.drawable.ic_nav_turn_end_s);
}
textView.setClickable(true);
textView.setGravity(Gravity.CENTER_VERTICAL);
textView.setBackgroundResource(R.drawable.list_item_selector);
textView.setPadding(paddingLTBR, paddingLTBR, paddingLTBR, paddingLTBR);
textView.setCompoundDrawablesWithIntrinsicBounds(drawableLeft, null, null, null);
textView.setCompoundDrawablePadding(paddingLTBR);
textView.setText(str);
}
Button button = new Button(this);
button.setGravity(Gravity.CENTER);
button.setBackgroundResource(R.drawable.list_item_selector);
button.setPadding(paddingLTBR, paddingLTBR, paddingLTBR, paddingLTBR);
button.setText("嘀嘀打车");
button.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
WebViewActivity.actionWebView(RouteActivity.this, getDidiUrl(toAddres, null));
}
});
mLinearContainer.addView(button);
}
}
private Drawable getDrawableLeft(String str)
{
Drawable drawable = null;
if (str.equals("我的位置"))
{
drawable = getResources().getDrawable(R.drawable.ic_nav_turn_start_s);
}
else if (str.contains("左"))
{
drawable = getResources().getDrawable(R.drawable.ic_nav_turn_left_s);
}
else if (str.contains("右"))
{
drawable = getResources().getDrawable(R.drawable.ic_nav_turn_right_s);
}
else if (str.contains("调头"))
{
drawable = getResources().getDrawable(R.drawable.ic_nav_turn_back_s);
}
else
{
drawable = getResources().getDrawable(R.drawable.ic_nav_turn_front_s);
}
return drawable;
}
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case android.R.id.home:
finish();
break;
}
return super.onOptionsItemSelected(item);
}
public void initView()
{
mLinearContainer = (LinearLayout) findViewById(R.id.linear_container);
mTvRouteType = (TextView) findViewById(R.id.tv_route_type);
}
private void customActionBar()
{
mActionBar.setDisplayHomeAsUpEnabled(true);
mActionBar.setTitle("路线详情");
mActionBar.setLogo(R.drawable.ic_abs_route_up);
}
public String getDidiUrl(String toAddress, String toShop)
{
String url = null;
String city = mPreferences.getString(PREF_LOACTION_CITY, DEFAULT_CITY);
String longitude = mPreferences.getString(PREF_LOACTION_LONGITUDE, SUZHOU_LONGITUDE + "");
String latitude = mPreferences.getString(PREF_LOACTION_LATITUDE, SUZHOU_LATITUDE + "");
String fromAddress = mPreferences.getString(PREF_LOACTION_ADDRESS, DEFAULT_ADDRESS);
try
{
city = URLEncoder.encode(city, HTTP.UTF_8);
fromAddress = URLEncoder.encode(fromAddress, HTTP.UTF_8);
if (!TextUtils.isEmpty(toAddress))
{
toAddress = URLEncoder.encode(toAddress, HTTP.UTF_8);
}
if (!TextUtils.isEmpty(toShop))
{
toShop = URLEncoder.encode(toShop, HTTP.UTF_8);
}
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
url = GoogleApplication.BASE_DIDI_URL + city + "&maptype=baidu&fromlat=" + latitude + "&fromlng=" + longitude + "&fromaddr=" + fromAddress + "&channel=1224&d=" + System.currentTimeMillis();
if (!TextUtils.isEmpty(toAddress))
{
url = url + "&toaddr=" + toAddress;
}
if (!TextUtils.isEmpty(toShop))
{
url = url + "&toshop=" + toShop;
}
System.out.println("didiUrl = " + url);
return url;
}
}