android:name=".project.ui.activity.after.EquipmentUpgradeActivity" | android:name=".project.ui.activity.after.EquipmentUpgradeActivity" | ||||
android:launchMode="singleTop" | android:launchMode="singleTop" | ||||
android:screenOrientation="portrait" /> | android:screenOrientation="portrait" /> | ||||
<!--卡Pin码解锁--> | |||||
<activity | |||||
android:name=".project.ui.activity.after.CardUnlockPinActivity" | |||||
android:launchMode="singleTop" | |||||
android:screenOrientation="portrait" /> | |||||
</application> | </application> | ||||
</manifest> | </manifest> |
public static final String IFCODE891 = "891"; //卡续期 | public static final String IFCODE891 = "891"; //卡续期 | ||||
public static final String IFCODE892 = "892"; //卡签停用启用 | public static final String IFCODE892 = "892"; //卡签停用启用 | ||||
public static final String IFCODE896 = "896"; //卡签信息重写(设备升级) | public static final String IFCODE896 = "896"; //卡签信息重写(设备升级) | ||||
public static final String IFCODE862 = "862"; //卡PIN解锁 | |||||
public static final String IFCODE898 = "898"; //卡信息变更确认 | public static final String IFCODE898 = "898"; //卡信息变更确认 | ||||
public static final String IFCODE93 = "93"; //储值卡转记账卡申请接口 | public static final String IFCODE93 = "93"; //储值卡转记账卡申请接口 |
public String applyType; //申请单类型 | public String applyType; //申请单类型 | ||||
public String damageMode; //0-人为损坏 1-自然损坏 | public String damageMode; //0-人为损坏 1-自然损坏 | ||||
public List<BizContent> list; //申请单列表(更换ETC时使用) | public List<BizContent> list; //申请单列表(更换ETC时使用) | ||||
public String pinType; //卡pin码类型 只能是1-pin为123456,2-pin为313233343536 | |||||
private String appId = "52030131"; | private String appId = "52030131"; | ||||
private boolean init; | private boolean init; |
package com.huntersun.vkyes.etcopencard.project.ui.activity.after; | |||||
import android.os.Bundle; | |||||
import android.view.View; | |||||
import com.google.gson.Gson; | |||||
import com.hjq.base.BaseDialog; | |||||
import com.huntersun.vkyes.etcopencard.R; | |||||
import com.huntersun.vkyes.etcopencard.databinding.ActivityCardUnlockPinBinding; | |||||
import com.huntersun.vkyes.etcopencard.project.api.Api; | |||||
import com.huntersun.vkyes.etcopencard.project.api.Converter; | |||||
import com.huntersun.vkyes.etcopencard.project.api.MyRetrofit; | |||||
import com.huntersun.vkyes.etcopencard.project.api.RequestParameters; | |||||
import com.huntersun.vkyes.etcopencard.project.api.Result; | |||||
import com.huntersun.vkyes.etcopencard.project.api.bean.IFCode; | |||||
import com.huntersun.vkyes.etcopencard.project.api.bean.ResultBean; | |||||
import com.huntersun.vkyes.etcopencard.project.api.bean.SendTheVerificationCodeBean; | |||||
import com.huntersun.vkyes.etcopencard.project.bluetooth.BluetoothWriteCardWriteTab; | |||||
import com.huntersun.vkyes.etcopencard.project.dialog.ConfirmDialog; | |||||
import com.huntersun.vkyes.etcopencard.project.tool.MyShared; | |||||
import com.huntersun.vkyes.etcopencard.project.tool.Utils; | |||||
import com.huntersun.vkyes.etcopencard.project.utils.FunHelper; | |||||
import com.huntersun.vkyes.etcopencard.src.aop.SingleClick; | |||||
import com.huntersun.vkyes.etcopencard.src.app.AppActivity; | |||||
import java.util.HashMap; | |||||
import java.util.Map; | |||||
import retrofit2.Response; | |||||
/** | |||||
* Date :2023-03-23 | |||||
* Description:卡Pin码解锁 | |||||
*/ | |||||
public class CardUnlockPinActivity extends AppActivity { | |||||
private ActivityCardUnlockPinBinding binding; | |||||
private ResultBean.BizContent curBizContent; | |||||
//循环次数 | |||||
private int applyCount = 0; | |||||
@Override | |||||
protected View getLayoutView() { | |||||
binding = ActivityCardUnlockPinBinding.inflate(getLayoutInflater()); | |||||
return binding.getRoot(); | |||||
} | |||||
@Override | |||||
protected void initView() { | |||||
binding.LLSearchResult.setVisibility(View.GONE); | |||||
binding.LLBottom.setVisibility(View.GONE); | |||||
binding.btnSearch.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
@SingleClick | |||||
public void onClick(View view) { | |||||
doSearch(); | |||||
} | |||||
}); | |||||
binding.btnRenew.setOnClickListener(new View.OnClickListener() { | |||||
@Override | |||||
@SingleClick | |||||
public void onClick(View view) { | |||||
applyUnlockPin(); | |||||
} | |||||
}); | |||||
} | |||||
private void setDataToView(){ | |||||
if (curBizContent == null) return; | |||||
binding.LLSearchResult.setVisibility(View.VISIBLE); | |||||
binding.LLBottom.setVisibility(View.VISIBLE); | |||||
binding.LLCardInfo.setVisibility(View.GONE); | |||||
binding.LLObuInfo.setVisibility(View.GONE); | |||||
binding.tvOrderId.setText(curBizContent.getOrderId()); | |||||
binding.tvUserName.setText(FunHelper.isEmpty(curBizContent.getCustomerName()) ? "" : curBizContent.getCustomerName()); | |||||
binding.tvCardType.setText(FunHelper.isEmpty(curBizContent.getCustomerIdtype()) ? "" : curBizContent.getCustomerIdtype()); | |||||
binding.tvCardNum.setText(FunHelper.isEmpty(curBizContent.getCustomerIdnum()) ? "" : curBizContent.getCustomerIdnum()); | |||||
binding.tvVehiclePlate.setText(FunHelper.isEmpty(curBizContent.getVehiclePlate()) ? "" : curBizContent.getVehiclePlate()); | |||||
binding.tvColor.setText(FunHelper.isEmpty(curBizContent.getVehiclePlateColorStr()) ? "" : curBizContent.getVehiclePlateColorStr()); | |||||
binding.tvCarType.setText(FunHelper.isEmpty(curBizContent.getType()) ? "" : FunHelper.getCarTypeName(curBizContent.getType())); | |||||
//显示卡信息 | |||||
if (!FunHelper.isEmpty(curBizContent.getCardId())){ | |||||
binding.LLCardInfo.setVisibility(View.VISIBLE); | |||||
binding.tvCardIdInfo.setText(FunHelper.isEmpty(curBizContent.getCardId()) ? "卡号:" : "卡号:" + curBizContent.getCardId()); | |||||
binding.tvCardTypeInfo.setText(FunHelper.isEmpty(curBizContent.getIsValueCard()) ? "卡类型:" : "卡类型:" + (curBizContent.getIsValueCard().equals("1") ? "记账卡" : "储值卡")); | |||||
binding.tvCardStatusInfo.setText(FunHelper.isEmpty(curBizContent.getCardStatus()) ? "卡状态:" : "卡状态:" + FunHelper.getETCStatusName(Integer.parseInt(curBizContent.getCardStatus()))); | |||||
} | |||||
//显示签信息 | |||||
if (!FunHelper.isEmpty(curBizContent.getObuId())){ | |||||
binding.LLObuInfo.setVisibility(View.VISIBLE); | |||||
binding.tvOBUIdInfo.setText(FunHelper.isEmpty(curBizContent.getObuId()) ? "OBU:" : "OBU:" + curBizContent.getObuId()); | |||||
binding.tvOBUTypeInfo.setText(FunHelper.isEmpty(curBizContent.getObuStatus()) ? "OBU状态:" : "OBU状态:" + FunHelper.getOBUStatusName(Integer.parseInt(curBizContent.getObuStatus()))); | |||||
} | |||||
} | |||||
/** | |||||
* 申请pin码解锁 | |||||
* 流程:PIN码解锁是第一次可以无参数调用这个接口,会得到一个写卡指令和一个PinType,然后拿着返回的数据再调一次这个接口 | |||||
* 当指令返回9000的时候就可以跳出循环,可设置最多循环3次 | |||||
*/ | |||||
private void applyUnlockPin(){ | |||||
new Utils().showMessDialog(getActivity(), "是否确认执行卡Pin码解锁", new Utils.dialogCallback() { | |||||
@Override | |||||
public void onConfirm(BaseDialog dialog) { | |||||
applyCount = 0; | |||||
showDialog("申请中..."); | |||||
Map<String, String> params = new HashMap<>(); | |||||
params.put("cardId", curBizContent.getCardId()); | |||||
params.put("orderId", curBizContent.getOrderId()); | |||||
params.put("agentId", "52010106004"); | |||||
params.put("channelId", "5201010200601130001"); | |||||
params.put("channelType", "1"); | |||||
params.put("terminalId", "999999999999"); | |||||
params.put("TerminalId", "999999999999"); | |||||
params.put("staffId", (String) MyShared.getInstance().get(MyShared.OPENID, "")); | |||||
MyRetrofit.newInstance(IFCode.IFCODE862, params, new MyRetrofit.ReturnResult() { | |||||
@Override | |||||
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { | |||||
applyCount++; | |||||
hideDialog(); | |||||
toWriteCommand(bizContent.getCommand(),bizContent.getCosResponse(),bizContent.pinType); | |||||
} | |||||
@Override | |||||
public void onError(Response<Result> resp) { | |||||
hideDialog(); | |||||
showErrorMsg(resp.body().errorMsg); | |||||
} | |||||
}); | |||||
} | |||||
}); | |||||
} | |||||
/** | |||||
* 写卡 | |||||
* @param command | |||||
*/ | |||||
private void toWriteCommand(String command,String cosResponse,String pinType){ | |||||
if (FunHelper.isEmpty(command)){ | |||||
toast("获取写卡指令失败,请尝试重试!"); | |||||
return; | |||||
} | |||||
String result = BluetoothWriteCardWriteTab.writeCard(command); | |||||
if (result.endsWith("9000")){//写卡成功 | |||||
Bundle bundle = new Bundle(); | |||||
bundle.putString("from","3"); | |||||
jumpToPage(CommonDealSuccessActivity.class,bundle); | |||||
finish(); | |||||
return; | |||||
} | |||||
if (applyCount > 3){ | |||||
showErrorMsg("无法解锁卡Pin码"); | |||||
return; | |||||
} | |||||
getWriteCommand(command,cosResponse,pinType); | |||||
} | |||||
/** | |||||
* 循环调用获取写卡指令,直到写卡返回9000 跳出循环 | |||||
* | |||||
* @param command 执行指令 | |||||
* @param cosResponse 卡执行指令结果 | |||||
* @param pinType 卡pin码类型 只能是1-pin为123456,2-pin为313233343536 | |||||
* 不清楚具体值和解锁指令具体含义的请使用该接口上次返回的pinType. | |||||
*/ | |||||
private void getWriteCommand(String command,String cosResponse,String pinType){ | |||||
if (applyCount > 3) return; | |||||
showDialog("解锁中..."); | |||||
Map<String, String> params = new HashMap<>(); | |||||
params.put("cardId", curBizContent.getCardId()); | |||||
params.put("command", command); | |||||
params.put("cosResponse", cosResponse); | |||||
params.put("pinType", pinType); | |||||
params.put("agentId", "52010106004"); | |||||
params.put("channelId", "5201010200601130001"); | |||||
params.put("channelType", "1"); | |||||
params.put("terminalId", "999999999999"); | |||||
params.put("TerminalId", "999999999999"); | |||||
params.put("staffId", (String) MyShared.getInstance().get(MyShared.OPENID, "")); | |||||
MyRetrofit.newInstance(IFCode.IFCODE862, params, new MyRetrofit.ReturnResult() { | |||||
@Override | |||||
public void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { | |||||
applyCount++; | |||||
hideDialog(); | |||||
getWriteCommand(bizContent.getCommand(),bizContent.getCosResponse(),bizContent.pinType); | |||||
} | |||||
@Override | |||||
public void onError(Response<Result> resp) { | |||||
hideDialog(); | |||||
showErrorMsg(resp.body().errorMsg); | |||||
} | |||||
}); | |||||
} | |||||
/** | |||||
* 搜索订单信息 | |||||
*/ | |||||
private void doSearch(){ | |||||
if (FunHelper.isEmpty(FunHelper.getText(binding.etSearch))){ | |||||
toast("请输入搜索关键词!"); | |||||
return; | |||||
} | |||||
if (!FunHelper.isRightVehiclePlate(FunHelper.getText(binding.etSearch))){ | |||||
toast("请输入正确的车牌号进行搜索!"); | |||||
return; | |||||
} | |||||
SendTheVerificationCodeBean bean = new SendTheVerificationCodeBean(); | |||||
bean.setVehicleId(FunHelper.getText(binding.etSearch) + "_" + 0); | |||||
RequestParameters parameters = new RequestParameters(IFCode.IFCODE171, new Gson().toJson(bean)); | |||||
new MyRetrofit().getRetrofit().create(Api.class).message2(parameters) | |||||
.enqueue(new Converter<Result>(getContext(), "卡信息查询中...") { | |||||
@Override | |||||
protected void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { | |||||
curBizContent = bizContent; | |||||
if (curBizContent == null){ | |||||
return; | |||||
} | |||||
setDataToView(); | |||||
} | |||||
@Override | |||||
public void onError(String err, Response<Result> resp) { | |||||
super.onError(err, resp); | |||||
} | |||||
}); | |||||
} | |||||
private void showErrorMsg(String errorMsg){ | |||||
new ConfirmDialog.Builder(CardUnlockPinActivity.this).setMsg(errorMsg, "解锁失败","确定","", R.mipmap.icon_lotgout_etc_hint, 0,true) | |||||
.onClick(new ConfirmDialog.Result() { | |||||
@Override | |||||
public void confirm() { } | |||||
}).show(); | |||||
} | |||||
@Override | |||||
protected void initData() { | |||||
} | |||||
} |
public class CommonDealSuccessActivity extends AppActivity { | public class CommonDealSuccessActivity extends AppActivity { | ||||
private ActivityCommonDealSuccessBinding binding; | private ActivityCommonDealSuccessBinding binding; | ||||
//0-注销成功 1-欠费补缴 2-余额补领 4-更换ETC设备成功 5-停用成功 | |||||
//0-注销成功 1-欠费补缴 2-余额补领 3-Pin码锁解锁成功 4-更换ETC设备成功 5-停用成功 | |||||
//6-启用成功 7-卡签续期 8-储值卡转记账卡 9-设备升级 | //6-启用成功 7-卡签续期 8-储值卡转记账卡 9-设备升级 | ||||
private String from; | private String from; | ||||
binding.tvMsg.setVisibility(View.VISIBLE); | binding.tvMsg.setVisibility(View.VISIBLE); | ||||
binding.tvMsg.setText("您的旧卡余额已成功转移至新卡中"); | binding.tvMsg.setText("您的旧卡余额已成功转移至新卡中"); | ||||
}else if (from.equals("3")){ | |||||
setTitle("卡Pin码解锁"); | |||||
binding.tvHint.setText("卡Pin码解锁成功"); | |||||
}else if (from.equals("4")){ | }else if (from.equals("4")){ | ||||
setTitle("更换ETC设备"); | setTitle("更换ETC设备"); | ||||
binding.tvHint.setText("更换成功"); | binding.tvHint.setText("更换成功"); |
@Override | @Override | ||||
@SingleClick | @SingleClick | ||||
public void onClick(View view) { | public void onClick(View view) { | ||||
applyRenew(); | |||||
applyUpgrade(); | |||||
} | } | ||||
}); | }); | ||||
} | } | ||||
params.put("cardId", curBizContent.getCardId()); | params.put("cardId", curBizContent.getCardId()); | ||||
params.put("orderId", curBizContent.getOrderId()); | params.put("orderId", curBizContent.getOrderId()); | ||||
params.put("cosRecordId", bizContent.getCosRecordId()); | params.put("cosRecordId", bizContent.getCosRecordId()); | ||||
params.put("operation", "1"); //操作类型:1-续期确认,2-启用确认,3-停用确认,4-设备升级确认 | |||||
params.put("operation", "4"); //操作类型:1-续期确认,2-启用确认,3-停用确认,4-设备升级确认 | |||||
params.put("agentId", "52010106004"); | params.put("agentId", "52010106004"); | ||||
params.put("channelId", "5201010200601130001"); | params.put("channelId", "5201010200601130001"); | ||||
params.put("channelType", "1"); | params.put("channelType", "1"); | ||||
} | } | ||||
/** | /** | ||||
* 申请续期 | |||||
* 申请升级 | |||||
*/ | */ | ||||
private void applyRenew(){ | |||||
private void applyUpgrade(){ | |||||
new Utils().showMessDialog(getActivity(), "是否确认升级设备", new Utils.dialogCallback() { | new Utils().showMessDialog(getActivity(), "是否确认升级设备", new Utils.dialogCallback() { | ||||
@Override | @Override | ||||
public void onConfirm(BaseDialog dialog) { | public void onConfirm(BaseDialog dialog) { | ||||
RequestParameters parameters = new RequestParameters(IFCode.IFCODE171, new Gson().toJson(bean)); | RequestParameters parameters = new RequestParameters(IFCode.IFCODE171, new Gson().toJson(bean)); | ||||
new MyRetrofit().getRetrofit().create(Api.class).message2(parameters) | new MyRetrofit().getRetrofit().create(Api.class).message2(parameters) | ||||
.enqueue(new Converter<Result>(getContext(), "储值卡信息查询中...") { | |||||
.enqueue(new Converter<Result>(getContext(), "卡信息查询中...") { | |||||
@Override | @Override | ||||
protected void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { | protected void onSuccess(ResultBean resultBean, ResultBean.BizContent bizContent) { | ||||
curBizContent = bizContent; | curBizContent = bizContent; |
import com.huntersun.vkyes.etcopencard.project.ui.activity.CardSignQueryActivity; | import com.huntersun.vkyes.etcopencard.project.ui.activity.CardSignQueryActivity; | ||||
import com.huntersun.vkyes.etcopencard.project.ui.activity.MainActivity; | import com.huntersun.vkyes.etcopencard.project.ui.activity.MainActivity; | ||||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.BalanceReplacementActivity; | import com.huntersun.vkyes.etcopencard.project.ui.activity.after.BalanceReplacementActivity; | ||||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.CardUnlockPinActivity; | |||||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.DevicePendingActivity; | import com.huntersun.vkyes.etcopencard.project.ui.activity.after.DevicePendingActivity; | ||||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.EquipmentLossReportActivity; | import com.huntersun.vkyes.etcopencard.project.ui.activity.after.EquipmentLossReportActivity; | ||||
import com.huntersun.vkyes.etcopencard.project.ui.activity.after.EquipmentUpgradeActivity; | import com.huntersun.vkyes.etcopencard.project.ui.activity.after.EquipmentUpgradeActivity; | ||||
{R.mipmap.card4, "卡签注销"}, | {R.mipmap.card4, "卡签注销"}, | ||||
{R.mipmap.card10, "更换卡签"}, | {R.mipmap.card10, "更换卡签"}, | ||||
{R.mipmap.card9, "储值卡转记账卡"}, | {R.mipmap.card9, "储值卡转记账卡"}, | ||||
{R.mipmap.card12, "卡签停用启用"}, | |||||
{R.mipmap.card13, "卡签续期"}, | {R.mipmap.card13, "卡签续期"}, | ||||
{R.mipmap.card14, "设备升级"}, | {R.mipmap.card14, "设备升级"}, | ||||
{R.mipmap.card11, "卡Pin码解锁"}, | |||||
{R.mipmap.card10, "欠费补缴"}, | {R.mipmap.card10, "欠费补缴"}, | ||||
{R.mipmap.card10, "余额补领"}, | {R.mipmap.card10, "余额补领"}, | ||||
{R.mipmap.card7, "满意度评价"}, | {R.mipmap.card7, "满意度评价"}, | ||||
{R.mipmap.card8, "设备激活"}, | {R.mipmap.card8, "设备激活"}, | ||||
{R.mipmap.card15, "审核管理"}, | {R.mipmap.card15, "审核管理"}, | ||||
{R.mipmap.card11, "卡Pin码解锁"}, | |||||
{R.mipmap.card12, "卡签停用启用"}, | |||||
{R.mipmap.card16, "ETC过户"}, | {R.mipmap.card16, "ETC过户"}, | ||||
{R.mipmap.card17, "签约账户变更"}, | {R.mipmap.card17, "签约账户变更"}, | ||||
{R.mipmap.card18, "发票管理"}, | {R.mipmap.card18, "发票管理"}, | ||||
case "设备升级": | case "设备升级": | ||||
jumpToPage(EquipmentUpgradeActivity.class); | jumpToPage(EquipmentUpgradeActivity.class); | ||||
break; | break; | ||||
case "卡Pin码解锁": | |||||
jumpToPage(CardUnlockPinActivity.class); | |||||
break; | |||||
default: | default: | ||||
new Utils().showMessDialog(getActivity(), "功能正在开发中..."); | new Utils().showMessDialog(getActivity(), "功能正在开发中..."); | ||||
break; | break; |
<?xml version="1.0" encoding="utf-8"?> | |||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | |||||
xmlns:app="http://schemas.android.com/apk/res-auto" | |||||
style="@style/MatchMatch.Vertical" | |||||
android:background="@color/background_color"> | |||||
<com.hjq.bar.TitleBar | |||||
android:id="@+id/title" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="wrap_content" | |||||
android:background="@color/white" | |||||
app:leftIcon="@mipmap/back_black" | |||||
app:lineVisible="false" | |||||
app:title="卡Pin码解锁" | |||||
app:titleColor="@color/black" /> | |||||
<androidx.core.widget.NestedScrollView | |||||
android:layout_below="@+id/title" | |||||
style="@style/MatchWrap"> | |||||
<LinearLayout style="@style/MatchWrap.Vertical" | |||||
android:paddingBottom="@dimen/dp_80"> | |||||
<!--搜索框--> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_15" | |||||
android:layout_marginRight="@dimen/dp_15" | |||||
android:gravity="center"> | |||||
<LinearLayout | |||||
style="@style/AutoWrap.Horizontal" | |||||
android:layout_height="@dimen/dp_35" | |||||
android:layout_marginHorizontal="@dimen/dp_25" | |||||
android:background="@drawable/item_home_frame3" | |||||
android:gravity="center_vertical" | |||||
android:paddingHorizontal="@dimen/dp_12"> | |||||
<ImageView | |||||
android:layout_width="@dimen/dp_15" | |||||
android:layout_height="@dimen/dp_15" | |||||
android:src="@drawable/search_ic" /> | |||||
<com.hjq.widget.view.ClearEditText | |||||
android:id="@+id/etSearch" | |||||
style="@style/EditTextStyle" | |||||
android:layout_width="match_parent" | |||||
android:layout_height="@dimen/dp_30" | |||||
android:drawablePadding="@dimen/dp_10" | |||||
android:gravity="center_vertical" | |||||
android:hint="请输入订单编号/车牌号" | |||||
android:paddingTop="0dp" | |||||
android:paddingBottom="0dp" | |||||
android:textColor="@color/color_333333" | |||||
android:textColorHint="@color/color_999999" | |||||
android:textSize="@dimen/sp_12" /> | |||||
</LinearLayout> | |||||
<Button | |||||
android:id="@+id/btnSearch" | |||||
style="@style/BtnShortStyle" | |||||
android:layout_width="@dimen/dp_70" | |||||
android:layout_height="@dimen/dp_35" | |||||
android:layout_gravity="center_vertical|right" | |||||
android:text="搜索" | |||||
android:textSize="@dimen/sp_12" /> | |||||
</LinearLayout> | |||||
<!--搜索结果--> | |||||
<LinearLayout | |||||
android:id="@+id/LLSearchResult" | |||||
android:visibility="gone" | |||||
style="@style/MatchWrap.Vertical"> | |||||
<TextView | |||||
style="@style/WrapWrap" | |||||
android:paddingLeft="@dimen/dp_15" | |||||
android:paddingTop="@dimen/dp_15" | |||||
android:paddingRight="@dimen/dp_15" | |||||
android:text="基础信息" | |||||
android:textColor="@color/color_333333" | |||||
android:textSize="@dimen/sp_16" | |||||
android:textStyle="bold" /> | |||||
<!--基础信息--> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Vertical" | |||||
android:layout_marginHorizontal="@dimen/dp_15" | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:background="@drawable/bg_white_radius" | |||||
android:padding="@dimen/dp_15"> | |||||
<LinearLayout style="@style/MatchWrap.Horizontal"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="订单编号" /> | |||||
<TextView | |||||
android:id="@+id/tvOrderId" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_12"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="用户名称" /> | |||||
<TextView | |||||
android:id="@+id/tvUserName" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_12"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="用户证件类型" /> | |||||
<TextView | |||||
android:id="@+id/tvCardType" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_12"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="用户证件号" /> | |||||
<TextView | |||||
android:id="@+id/tvCardNum" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_12"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="订单车牌号" /> | |||||
<TextView | |||||
android:id="@+id/tvVehiclePlate" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_12"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="车牌颜色" /> | |||||
<TextView | |||||
android:id="@+id/tv_color" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:text="" /> | |||||
</LinearLayout> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:layout_marginTop="@dimen/dp_12"> | |||||
<TextView | |||||
style="@style/black02TextStyle14" | |||||
android:layout_width="0dp" | |||||
android:layout_height="wrap_content" | |||||
android:layout_weight="1" | |||||
android:text="收费车型" /> | |||||
<TextView | |||||
android:id="@+id/tvCarType" | |||||
style="@style/blackTextStyle14" | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" /> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
<!--卡信息--> | |||||
<LinearLayout | |||||
android:id="@+id/LLCardInfo" | |||||
android:visibility="gone" | |||||
style="@style/MatchWrap.Vertical"> | |||||
<TextView | |||||
style="@style/WrapWrap" | |||||
android:paddingLeft="@dimen/dp_15" | |||||
android:paddingTop="@dimen/dp_15" | |||||
android:paddingRight="@dimen/dp_15" | |||||
android:text="卡信息" | |||||
android:textColor="@color/color_333333" | |||||
android:textSize="@dimen/sp_16" | |||||
android:textStyle="bold" /> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Vertical" | |||||
android:layout_marginHorizontal="@dimen/dp_15" | |||||
android:layout_marginVertical="@dimen/dp_10" | |||||
android:background="@drawable/bg_white_radius" | |||||
android:paddingHorizontal="@dimen/dp_20" | |||||
android:paddingVertical="@dimen/dp_15"> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:background="@drawable/bg_card_obu_info" | |||||
android:gravity="center_vertical" | |||||
android:paddingTop="@dimen/dp_15" | |||||
android:paddingLeft="@dimen/dp_15" | |||||
android:paddingBottom="@dimen/dp_15" | |||||
android:paddingRight="@dimen/dp_5"> | |||||
<ImageView | |||||
style="@style/WrapWrap" | |||||
android:layout_width="@dimen/dp_67" | |||||
android:layout_height="@dimen/dp_46" | |||||
android:src="@mipmap/icon_card" /> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Vertical" | |||||
android:layout_marginLeft="@dimen/dp_15"> | |||||
<TextView | |||||
android:id="@+id/tvCardIdInfo" | |||||
style="@style/MatchWrap" | |||||
android:text="卡号:" | |||||
android:textColor="@color/common_accent_color" | |||||
android:textSize="@dimen/sp_13" /> | |||||
<TextView | |||||
android:id="@+id/tvCardTypeInfo" | |||||
style="@style/MatchWrap" | |||||
android:layout_marginTop="@dimen/dp_2" | |||||
android:text="卡类型:" | |||||
android:textColor="@color/common_accent_color" | |||||
android:textSize="@dimen/sp_13" /> | |||||
<TextView | |||||
android:id="@+id/tvCardStatusInfo" | |||||
style="@style/MatchWrap" | |||||
android:layout_marginTop="@dimen/dp_2" | |||||
android:text="卡状态:" | |||||
android:textColor="@color/common_accent_color" | |||||
android:textSize="@dimen/sp_13" /> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
<!--OBU设备信息--> | |||||
<LinearLayout | |||||
android:id="@+id/LLObuInfo" | |||||
android:visibility="gone" | |||||
style="@style/MatchWrap.Vertical"> | |||||
<TextView | |||||
style="@style/WrapWrap" | |||||
android:paddingLeft="@dimen/dp_15" | |||||
android:paddingTop="@dimen/dp_15" | |||||
android:paddingRight="@dimen/dp_15" | |||||
android:text="OBU设备信息" | |||||
android:textColor="@color/color_333333" | |||||
android:textSize="@dimen/sp_16" | |||||
android:textStyle="bold" /> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Vertical" | |||||
android:layout_marginHorizontal="@dimen/dp_15" | |||||
android:layout_marginVertical="@dimen/dp_10" | |||||
android:background="@drawable/bg_white_radius" | |||||
android:paddingHorizontal="@dimen/dp_20" | |||||
android:paddingVertical="@dimen/dp_15"> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:background="@drawable/bg_card_obu_info" | |||||
android:gravity="center_vertical" | |||||
android:padding="@dimen/dp_15"> | |||||
<ImageView | |||||
style="@style/WrapWrap" | |||||
android:layout_width="@dimen/dp_67" | |||||
android:layout_height="@dimen/dp_46" | |||||
android:src="@mipmap/icon_obu" /> | |||||
<LinearLayout | |||||
style="@style/MatchWrap.Vertical" | |||||
android:layout_marginLeft="@dimen/dp_15"> | |||||
<TextView | |||||
android:id="@+id/tvOBUIdInfo" | |||||
style="@style/MatchWrap" | |||||
android:text="OBU:" | |||||
android:textColor="@color/common_accent_color" | |||||
android:textSize="@dimen/sp_13" /> | |||||
<TextView | |||||
android:id="@+id/tvOBUTypeInfo" | |||||
style="@style/MatchWrap" | |||||
android:layout_marginTop="@dimen/dp_2" | |||||
android:text="OBU状态:" | |||||
android:textColor="@color/common_accent_color" | |||||
android:textSize="@dimen/sp_13" /> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</LinearLayout> | |||||
</androidx.core.widget.NestedScrollView> | |||||
<LinearLayout | |||||
android:id="@+id/LLBottom" | |||||
style="@style/MatchWrap.Horizontal" | |||||
android:gravity="center" | |||||
android:layout_alignParentBottom="true" | |||||
android:layout_gravity="bottom" | |||||
android:paddingVertical="@dimen/dp_10" | |||||
android:background="@color/background_color" | |||||
android:paddingHorizontal="@dimen/dp_15"> | |||||
<Button | |||||
android:id="@+id/btnRenew" | |||||
style="@style/BtnShortStyle" | |||||
android:layout_width="0dp" | |||||
android:layout_weight="1" | |||||
android:layout_height="@dimen/dp_40" | |||||
android:layout_alignParentBottom="true" | |||||
android:layout_centerHorizontal="true" | |||||
android:layout_gravity="center" | |||||
android:text="确定解锁" | |||||
android:textSize="@dimen/sp_15" /> | |||||
</LinearLayout> | |||||
</RelativeLayout> |