package com.honghe.navdemo.activity;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import com.amap.api.navi.AMapHudView;
import com.amap.api.navi.AMapHudViewListener;
import com.amap.api.navi.AMapNavi;
import com.amap.api.navi.model.AMapNaviPath;
import com.amap.api.navi.model.NaviLatLng;
import com.honghe.application.TTSController;
import com.honghe.navdemo.R;
import com.honghe.navdemo.util.ToastUtil;
import com.honghe.navdemo.util.Utils;
import com.honghe.navdemo.view.PathView;
/**
* HUD显示界面
* */
public class SimpleHudActivity extends Activity implements AMapHudViewListener {
private int code = -1;
private AMapHudView mAmapHudView;
private PathView pathView;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple_hud);
mAmapHudView = (AMapHudView) findViewById(R.id.hudview);
pathView = (PathView) findViewById(R.id.pathView);
mAmapHudView.setHudViewListener(this);
// 语音播报开始
TTSController.getInstance(this).startSpeaking();
}
// -----------------HUD返回键按钮事件-----------------------
@Override
public void onHudViewCancel() {
if (code == Utils.SIMPLEHUDNAVIE) {
Intent hudIntent = new Intent(SimpleHudActivity.this,
MainActivity.class);
hudIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(hudIntent);
AMapNavi.getInstance(this).stopNavi();
finish();
TTSController.getInstance(this).stopSpeaking();
} else if (code == Utils.EMULATORNAVI) {
/*
* Intent customIntent = new Intent(SimpleHudActivity.this,
* NaviEmulatorActivity.class);
* customIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
* startActivity(customIntent); finish();
*/
} else {
AMapNavi.getInstance(this).stopNavi();
finish();
TTSController.getInstance(this).stopSpeaking();
}
}
protected void onResume() {
super.onResume();
Bundle bundle = getIntent().getExtras();
processBundle(bundle);
}
private void processBundle(Bundle bundle) {
if (bundle != null) {
code = bundle.getInt(Utils.ACTIVITYINDEX, -1);
if (code == Utils.SIMPLEHUDNAVIE) {
AMapNavi.getInstance(this).startNavi(AMapNavi.EmulatorNaviMode);
AMapNaviPath naviPath = AMapNavi.getInstance(this).getNaviPath();
if (naviPath == null) {
ToastUtil.showShort(this, "获取路线点错误");
return;
}
List<NaviLatLng> navilatArray = naviPath.getCoordList();
pathView.setData(navilatArray);
}
}
}
/**
* 返回键监听
* */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if (code == Utils.SIMPLEHUDNAVIE) {
Intent hudIntent = new Intent(SimpleHudActivity.this,
MainActivity.class);
hudIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(hudIntent);
finish();
AMapNavi.getInstance(this).stopNavi();
TTSController.getInstance(this).stopSpeaking();
} else if (code == Utils.EMULATORNAVI) {
/*
* Intent customIntent = new Intent(SimpleHudActivity.this,
* NaviEmulatorActivity.class);
* customIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
* startActivity(customIntent); finish();
*/
} else {
AMapNavi.getInstance(this).stopNavi();
finish();
TTSController.getInstance(this).stopSpeaking();
}
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onPause() {
super.onPause();
mAmapHudView.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
mAmapHudView.onDestroy();
}
}