|
package com.electric.chargingpile.activity;
import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.blankj.utilcode.util.EmptyUtils;
import com.blankj.utilcode.util.LogUtils;
import com.electric.chargingpile.R;
import com.electric.chargingpile.adapter.SelectPileAdapter;
import com.electric.chargingpile.application.MainApplication;
import com.electric.chargingpile.constant.BaseConstants;
import com.electric.chargingpile.constant.ChargingConstants;
import com.electric.chargingpile.constant.UrlConstants;
import com.electric.chargingpile.data.PileBean;
import com.electric.chargingpile.util.BarColorUtil;
import com.electric.chargingpile.util.EventBusUtil;
import com.electric.chargingpile.util.JsonUtils;
import com.electric.chargingpile.util.LoadingDialog;
import com.electric.chargingpile.util.ToastUtil;
import com.electric.chargingpile.view.AlertDialogTwo;
import com.tencent.bugly.crashreport.CrashReport;
import com.zhy.http.okhttp.OkHttpUtils;
import com.zhy.http.okhttp.callback.StringCallback;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.net.URLEncoder;
import java.util.List;
import okhttp3.Call;
import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.AppSettingsDialog;
import pub.devrel.easypermissions.EasyPermissions;
public class SelectPileActivity extends Activity implements View.OnClickListener ,EasyPermissions.PermissionCallbacks{
private ImageView ivBack;
private SelectPileAdapter selectPileAdapter;
private RecyclerView recyclerView;
private LoadingDialog loadingDialog;
private String pileId,result;
private TextView tvRefresh,tvCharging;
private static final String numType = "2";
private static final int startInterface = 2;
private AlertDialogTwo alertDialog;
private static final int RC_TELL_PERM = 124;
private SelectPileActivity activity;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_select_pile);
BarColorUtil.initStatusBarColor(SelectPileActivity.this);
activity =this;
getIntentData();
initViews();
inirEvent();
if (EmptyUtils.isNotEmpty(pileId)) {
getPileData(pileId);
}
}
private void getIntentData(){
pileId = getIntent().getStringExtra(ChargingConstants.ORDERID);
}
private void initViews(){
ivBack = findViewById(R.id.iv_back);
recyclerView = findViewById(R.id.rv_pile);
loadingDialog= new LoadingDialog(this);
loadingDialog.setCanceledOnTouchOutside(false);
tvRefresh = findViewById(R.id.tv_refresh);
tvCharging= findViewById(R.id.tv_charging);
alertDialog = new AlertDialogTwo(this);
}
private void inirEvent(){
ivBack.setOnClickListener(this);
tvRefresh.setOnClickListener(this);
tvCharging.setOnClickListener(this);
EventBusUtil.register(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.iv_back:
finish();
break;
case R.id.tv_refresh:
result ="";
if (EmptyUtils.isNotEmpty(pileId)) {
getPileData(pileId);
}
break;
case R.id.tv_charging:
if (EmptyUtils.isNotEmpty(result)){
startCharging(result);
}else {
ToastUtil.showToast(getApplicationContext(),"请选择要充电的充电枪后开启",Toast.LENGTH_SHORT);
}
break;
}
}
private void getPileData(String pileId){
loadingDialog.show();
String url = UrlConstants.HOST_URL+"api/charge/pile-info";
OkHttpUtils.get().url(url)
.addParams("pileId",pileId)
.build().execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
ToastUtil.showToast(getApplicationContext(),"网络异常,请检查您的网络连接", Toast.LENGTH_SHORT);
CrashReport.postCatchedException(e);
}
@Override
public void onResponse(String response) {
if (loadingDialog.isShowing()){
loadingDialog.dismiss();
}
if (EmptyUtils.isNotEmpty(response)){
LogUtils.e(response);
String rtnCode = JsonUtils.getKeyResult(response,"rtnCode");
if ("01".equals(rtnCode)){
String data = JsonUtils.getKeyResult(response,"data");
List<PileBean> list = JsonUtils.parseToObjectList(data,PileBean.class);
LogUtils.e(list.size());
selectPileAdapter = new SelectPileAdapter(getApplicationContext(), list);
recyclerView.setLayoutManager(new GridLayoutManager(getApplicationContext(), 2));
recyclerView.setHasFixedSize(false);
recyclerView.setAdapter(selectPileAdapter);
}
}
}
});
}
private void startCharging(String result){
LogUtils.e(result);
loadingDialog.show();
OkHttpUtils.get().url(UrlConstants.START_CHARGING_URL)
.addParams(ChargingConstants.FLAG,numType)
.addParams(ChargingConstants.URL, URLEncoder.encode(result))
.addParams(ChargingConstants.USERID, MainApplication.userId)
.addParams(ChargingConstants.PWD,MainApplication.userPassword)
.addParams("type","1")
.build().connTimeOut(30000).readTimeOut(30000).execute(new StringCallback() {
@Override
public void onError(Call call, Exception e) {
ToastUtil.showToast(getApplicationContext(),"网络异常,请检查您的网络连接", Toast.LENGTH_SHORT);
CrashReport.postCatchedException(e);
}
@Override
public void onResponse(String response) {
LogUtils.e(response);
if (EmptyUtils.isNotEmpty(response)) {
dismissDialog();
handlingOperations(response, startInterface);
}
}
});
}
private void handlingOperations(String response,int interfaceType){
String rtnCode = com.google.zxing.client.android.JsonUtils.getKeyResult(response,"rtnCode");
String rtnMsg = com.google.zxing.client.android.JsonUtils.getKeyResult(response,"rtnMsg");
switch (rtnCode){
case "01":
if (interfaceType == startInterface){
String data = JsonUtils.getKeyResult(response,"data");
String orderid = JsonUtils.getKeyResult(data,"orderId");
Intent intent = new Intent(getApplicationContext(),TLDLoadingActivity.class);
intent.putExtra(ChargingConstants.ORDERID,orderid);
startActivity(intent);
finish();
}
break;
case "304":
alertDialog.builder()
.setMsg(rtnMsg)
.setPositiveButton("去充值", new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),AccountRechargeActivity.class);
startActivity(intent);
}
})
// .setNegativeButton("开通免密支付", new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// Intent intent = new Intent(getApplicationContext(),NonSecretSeettingActivity.class);
// Uri uri = Uri.parse("chongdianzhuang://");
// intent.setData(uri);
// startActivity(intent);
// }
// })
.show();
break;
case "305":
alertDialog.builder()
.setMsg(rtnMsg)
.setPositiveButton("联系客服", new View.OnClickListener() {
@Override
public void onClick(View v) {
tellTask();
}
}).setNegativeButton("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
}).show();
break;
case "309":
alertDialog.builder()
.setMsg(rtnMsg)
.setPositiveButton("联系客服", new View.OnClickListener() {
@Override
public void onClick(View v) {
tellTask();
}
}).setNegativeButton("取消", new View.OnClickListener() {
@Override
public void onClick(View v) {
}
}).show();
break;
case "306":
//跳转到充电详情界面
String data306 = JsonUtils.getKeyResult(response,"data");
String orderid = JsonUtils.getKeyResult(data306, "orderId");
Intent intent306 = new Intent(getApplicationContext(),ChargingStatusActivity.class);
intent306.putExtra(ChargingConstants.ORDERID,orderid);
startActivity(intent306);
finish();
break;
case "307":
alertDialog.builder()
.setMsg(rtnMsg)
.setPositiveButton("去充值", new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),AccountRechargeActivity.class);
startActivity(intent);
}
}).show();
break;
case "311":
alertDialog.builder()
.setMsg(rtnMsg)
.setPositiveButton("开通免密支付", new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),NonSecretSeettingActivity.class);
Uri uri = Uri.parse("chongdianzhuang://");
intent.setData(uri);
startActivity(intent);
}
}).show();
break;
case "1800":
String data1800 = JsonUtils.getKeyResult(response,"data");
String pileId = JsonUtils.getKeyResult(data1800,"pileId");
Intent intent1800 = new Intent(getApplicationContext(),SelectPileActivity.class);
intent1800.putExtra(ChargingConstants.ORDERID,pileId);
startActivity(intent1800);
break;
default:
ToastUtil.showToast(getApplicationContext(),rtnMsg,Toast.LENGTH_SHORT);
break;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void eventHandler(String pileId){
result = pileId;
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBusUtil.unregister(this);
}
@AfterPermissionGranted(RC_TELL_PERM)
public void tellTask() {
if (hasTellPermission()) {
// Have permission, do the thing!
// Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show();
String telNum = "4008810405";
Intent intent = new Intent();
intent.setAction("android.intent.action.CALL");
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse("tel:" + telNum));
SelectPileActivity.this.startActivity(intent);
} else {
LogUtils.e("@@@@@@@");
// Ask for one permission
EasyPermissions.requestPermissions(
this,
"该功能需要开启拨号权限,是否前往开启?",
RC_TELL_PERM,
Manifest.permission.CALL_PHONE);
}
}
private boolean hasTellPermission() {
return EasyPermissions.hasPermissions(this, Manifest.permission.CALL_PHONE);
}
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) {
new AppSettingsDialog.Builder(SelectPileActivity.this,
"该功能需要开启拨号权限,是否前往开启??").build().show();
}
}
private void dismissDialog(){
if (activity != null && !activity.isFinishing()) {
if (loadingDialog.isShowing()){
loadingDialog.dismiss();
}
}
}
}
|