12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034 |
- package com.emato.ich.fragment;
- import android.os.Bundle;
- import android.os.CountDownTimer;
- import android.text.Editable;
- import android.text.InputType;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.TextView;
- import androidx.annotation.NonNull;
- import androidx.annotation.Nullable;
- import androidx.fragment.app.Fragment;
- import com.cherry.sdk.controller.utils.ScanGunKeyEventHelper;
- import com.emato.ich.MainActivity;
- import com.emato.ich.R;
- import com.emato.ich.api.ICSPClient;
- import com.emato.ich.contant.ICSPConstant;
- import com.emato.ich.contant.ScanGunConstant;
- import com.emato.ich.databinding.FragmentInputKeyBoardBinding;
- import com.emato.ich.databinding.FragmentMyKeyBoardBinding;
- import com.emato.ich.entity.vo.PreparedOrderResponseVo;
- import com.emato.ich.entity.vo.PreparedOrderVo;
- import com.emato.ich.entity.vo.ResponseData;
- import com.emato.ich.local.LocalStorage;
- import com.emato.ich.utils.BaseUtils;
- import com.emato.ich.utils.JacksonUtils;
- import com.emato.ich.utils.Log;
- import com.emato.ich.utils.LoggingUtils;
- import com.emato.ich.utils.NavUtils;
- import com.emato.ich.utils.StringUtils;
- import com.emato.ich.utils.TimeOutUtils;
- import com.emato.ich.utils.ToastUtils;
- import com.fasterxml.jackson.core.JsonProcessingException;
- import com.fasterxml.jackson.core.type.TypeReference;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import org.jetbrains.annotations.NotNull;
- import java.io.IOException;
- import java.util.concurrent.atomic.AtomicBoolean;
- import java.util.concurrent.atomic.AtomicInteger;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- import okhttp3.Call;
- import okhttp3.Callback;
- import okhttp3.Response;
- /**
- * 输入投递信息
- */
- public class InputInfoKeyBoardFragment extends Fragment {
- private static final String TAG = "InputInfoFragment";
- private FragmentInputKeyBoardBinding binding;
- private PreparedOrderResponseVo data;
- private final AtomicInteger mailNoLock = new AtomicInteger(1);
- private final AtomicInteger submitLock = new AtomicInteger(1);
- private CountDownTimer timer;
- private long start;
- @Nullable
- @org.jetbrains.annotations.Nullable
- @Override
- public View onCreateView(@NonNull @NotNull LayoutInflater inflater, @Nullable @org.jetbrains.annotations.Nullable ViewGroup container, @Nullable @org.jetbrains.annotations.Nullable Bundle savedInstanceState) {
- start = System.currentTimeMillis();
- binding = FragmentInputKeyBoardBinding.inflate(inflater, container, false);
- return binding.getRoot();
- }
- public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
- long end = System.currentTimeMillis();
- Log.i(TAG, TAG + "页面渲染速度为" + (end - start) + "ms。");
- // BaseUtils.disableEditText(binding.delivererPhone);
- BaseUtils.disableEditText(binding.delivererPhoneConfirm);
- BaseUtils.disableEditText(binding.mailNo);
- try {
- MainActivity activity = (MainActivity) getActivity();
- timer = TimeOutUtils.timeout(activity, InputInfoKeyBoardFragment.this, binding.timeout, 90);
- timer.start();
- } catch (Exception e) {
- Log.e(TAG, "onViewCreated: 倒计时出现异常! ", e);
- LoggingUtils.sendErrorLog("业务异常: 输入投递信息页面倒计时出现异常! ", e);
- }
- Bundle arguments = null;
- String sectionType = null;
- MainActivity activity = (MainActivity) getActivity();
- String loginType = activity.getBundleMap().get(CourierFragment.class.getName()).getString("loginType");
- try {
- arguments = activity.getBundleMap().get(ChooseCabinetFragment.class.getName());
- sectionType = arguments.getString("section_type");
- binding.mailNo.setInputType(InputType.TYPE_NULL);
- // 扫描枪监听 扫描运单号
- activity.scanGunKeyEventHelper = new ScanGunKeyEventHelper(s -> {
- // 扫码成功回调
- Log.d(TAG, "onScanSuccess: " + s);
- Log.d(TAG, "onScanSuccess: " + loginType);
- if (!StringUtils.isNullOrEmpty(s)) {
- for (String pattern : ScanGunConstant.getPatterns()) {
- Matcher matcher = Pattern.compile(pattern).matcher(s);
- if (!matcher.matches()) {
- ToastUtils.make(getContext(), "请将条形码置于扫码枪前! ");
- return;
- }
- }
- }
- if (mailNoLock.get() == 1) {
- // 禁用软件盘
- Editable text = binding.mailNo.getText();
- text.clear();
- binding.mailNo.setText(s);
- mailNoLock.incrementAndGet();
- if("store".equals(loginType)){
- // TODO 预定义,实际参数可能不一致 oms获取用户手机号 自动填充
- ICSPClient.getUserPhoneNumber(LocalStorage.getInstance().getSession().getToken(), BaseUtils.getClientId(), s, new Callback() {
- @Override
- public void onFailure(@NotNull Call call, @NotNull IOException e) {
- // 请求失败
- Log.e(TAG, "onFailure: 请求oms获取手机号失败! 网络异常! ", e);
- LoggingUtils.sendErrorLog("业务异常: 请求oms获取手机号失败! 网络异常! ", e);
- ToastUtils.make(getContext(), "服务器异常! 请手动输入!");
- mailNoLock.set(1);
- }
- @Override
- public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
- getActivity().runOnUiThread(() -> {
- String parseResponse = ICSPClient.isSuccessfulAndParseResponse(response);
- if (!StringUtils.isNullOrEmpty(parseResponse)) {
- try {
- ResponseData<PreparedOrderResponseVo> responseData = new ObjectMapper().readValue(parseResponse, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
- });
- PreparedOrderResponseVo data = responseData.getData();
- if (null != responseData && ICSPConstant.OK.equals(responseData.getCode())) {
- String collectorPhone = data.getCollectorPhone();
- if(StringUtils.isNullOrEmpty(collectorPhone)){
- ToastUtils.make(getContext(), "未查询到手机号信息,请确认运单号是否正确!");
- }
- binding.delivererPhoneConfirm.setText(collectorPhone);
- } else {
- ToastUtils.make(getContext(), "查询手机号失败,返回信息:" + responseData.getMsg());
- }
- } catch (JsonProcessingException e) {
- Log.e(TAG, "onResponse: 服务器响应错误! 自动获取用户手机号失败! ", e);
- ToastUtils.make(getContext(), "网络异常! 请手动输入手机号! ");
- LoggingUtils.sendErrorLog("业务异常: 服务器响应错误! 自动获取用户手机号失败! ", e);
- } catch (RuntimeException e) {
- Log.e(TAG, "onResponse: 获取用户手机号未知错误! ", e);
- ToastUtils.make(getContext(), "未查询到手机号! 请手动输入! ");
- LoggingUtils.sendErrorLog("业务异常: 获取用户手机号未知错误! ", e);
- }
- } else {
- ToastUtils.make(getContext(), "服务器异常!请稍后重试!");
- }
- mailNoLock.set(1);
- });
- }
- });
- }
- }
- });
- } catch (RuntimeException e) {
- Log.e(TAG, "onViewCreated: InputInfoFragment页面获取ChooseCabinetFragment传值错误! ", e);
- LoggingUtils.sendErrorLog("业务异常: InputInfoFragment页面获取ChooseCabinetFragment传值错误! ", e);
- }
- // TODO 离线逻辑, 暂时不做
- Pattern phonePattern = Pattern.compile("^((13[0-9])|(14[0,1,4-9])|(15[0-3,5-9])|(16[2,5,6,7])|(17[0-8])|(18[0-9])|(19[0-3,5-9]))\\d{8}$");
- // 下单逻辑
- String finalSectionType = sectionType;
- if (submitLock.get() == 1) {
- submitLock.incrementAndGet();
- binding.keyBoard.inputButtonConfirm.setOnClickListener(view1 -> {
- Bundle bundle = new Bundle();
- String mailNo = binding.mailNo.getText().toString();
- // String phone = binding.delivererPhone.getText().toString();
- String phoneConfirm = binding.delivererPhoneConfirm.getText().toString();
- if (!phonePattern.matcher(phoneConfirm).matches()) {
- ToastUtils.make(getContext(), "请输入正确的手机号!");
- } else if (StringUtils.isNullOrEmpty(mailNo)) {
- ToastUtils.make(getContext(), "运单号不能为空!请扫描运单号!");
- } else {
- // 验证完 预下单
- PreparedOrderVo preparedOrderVo = new PreparedOrderVo();
- preparedOrderVo.setClientId(BaseUtils.getClientId());
- preparedOrderVo.setMailNo(mailNo);
- preparedOrderVo.setCollectorPhone(phoneConfirm);
- preparedOrderVo.setLockerType(finalSectionType);
- preparedOrderVo.setDelivererPhone(LocalStorage.getInstance().getSession().getPhone());
- if("courier".equals(loginType)){
- preparedOrderVo.setOrderType("1");
- }else if("collect".equals(loginType)){
- preparedOrderVo.setOrderType("2");
- }else{
- preparedOrderVo.setOrderType("0");
- }
- // 预下单
- ICSPClient.preparedOrder(LocalStorage.getInstance().getSession().getToken(), preparedOrderVo, new Callback() {
- @Override
- public void onFailure(@NotNull Call call, @NotNull IOException e) {
- // TODO 预下单调用失败
- ToastUtils.make(getContext(), "请求服务器失败!网络异常!");
- Log.e(TAG, "onFailure: 预下单失败! call: " + call.timeout().toString(), e);
- LoggingUtils.sendErrorLog("业务异常: 预下单失败! call: " + call.timeout().toString(), e);
- }
- @Override
- public void onResponse(@NotNull Call call, @NotNull Response response) {
- ((MainActivity) getActivity()).runOnUiThread(() -> {
- try {
- String responseStr = ICSPClient.isSuccessfulAndParseResponse(response);
- if (!StringUtils.isNullOrEmpty(responseStr)) {
- ObjectMapper objectMapper = JacksonUtils.objectmapper;
- ResponseData<PreparedOrderResponseVo> responseData = objectMapper.readValue(responseStr, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
- });
- data = responseData.getData();
- // 响应信息
- if (responseData.getCode().equals(ICSPConstant.OK)) {
- bundle.putString("preparedOrderResponse", objectMapper.writeValueAsString(data));
- bundle.putString("takeNo", mailNo);
- bundle.putString("sectionType", finalSectionType);
- // 跳转到确认投递
- try {
- MainActivity activity = (MainActivity) getActivity();
- activity.getBundleMap().put(InputInfoKeyBoardFragment.class.getName(), bundle);
- } catch (RuntimeException e) {
- Log.e(TAG, "onResponse: InputInfoFragment页面获取SendInfoConfirmFragment传值错误! ", e);
- LoggingUtils.sendErrorLog("业务异常: InputInfoFragment页面获取SendInfoConfirmFragment传值错误! ", e);
- }
- if (null != timer) {
- timer.cancel();
- }
- NavUtils.navigate(InputInfoKeyBoardFragment.this, R.id.action_InputInfoKeyBoardFragment_to_sendInfoConfirmFragment);
- }
- Log.i(TAG, "onResponse: ICSP返回码: " + responseData.getCode() + ", 返回信息: " + responseData.getMsg());
- ToastUtils.make(getContext(), responseData.getMsg());
- } else {
- ToastUtils.make(getContext(), "服务器异常!请稍后重试!");
- }
- } catch (JsonProcessingException e) {
- Log.e(TAG, "onResponse: 预下单转换成JSON出错! ", e);
- LoggingUtils.sendErrorLog("业务异常: 预下单转换成JSON出错! ", e);
- } catch (RuntimeException e) {
- Log.e(TAG, "onResponse: 预下单失败! ", e);
- LoggingUtils.sendErrorLog("业务异常: 预下单失败! ", e);
- }
- });
- }
- });
- }
- });
- }
- // 数字输入 5 手机号 4 面单号
- binding.delivererPhoneConfirm.setOnFocusChangeListener((view1, hasFocus) -> {
- if (hasFocus) {
- binding.keyBoard.inputButton0.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "0");
- });
- binding.keyBoard.inputButton1.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "1");
- });
- binding.keyBoard.inputButton2.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "2");
- });
- binding.keyBoard.inputButton3.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "3");
- });
- binding.keyBoard.inputButton4.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "4");
- });
- binding.keyBoard.inputButton5.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "5");
- });
- binding.keyBoard.inputButton6.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "6");
- });
- binding.keyBoard.inputButton7.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "7");
- });
- binding.keyBoard.inputButton8.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位! ");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "8");
- });
- binding.keyBoard.inputButton9.setOnClickListener(v -> {
- int length = binding.delivererPhoneConfirm.getText().length();
- if (length >= 11) {
- ToastUtils.make(getContext(), "手机号不能超过11位");
- return;
- }
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- binding.delivererPhoneConfirm.getText().insert(start, "9");
- });
- binding.keyBoard.inputButtonCancel.setOnClickListener(v -> {
- Editable text = binding.delivererPhoneConfirm.getText();
- int start = binding.delivererPhoneConfirm.getSelectionStart();
- if (text.length() > 0) {
- if (start > 0) {
- text.delete(start - 1, start);
- }
- binding.delivererPhoneConfirm.setText(text, TextView.BufferType.EDITABLE);
- binding.delivererPhoneConfirm.setSelection(start - 1 < 0 ? text.length() : start - 1);
- }
- });
- // 长按删除
- binding.keyBoard.inputButtonCancel.setOnLongClickListener(v -> {
- binding.delivererPhoneConfirm.getText().clear();
- return false;
- });
- }
- });
- binding.mailNo.setOnFocusChangeListener((view1, hasFocus) -> {
- AtomicBoolean caseSmallFlag = new AtomicBoolean(true);
-
- binding.keyBoard.inputButton0.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "0");
- });
- binding.keyBoard.inputButton1.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "1");
- });
- binding.keyBoard.inputButton2.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "2");
- });
- binding.keyBoard.inputButton3.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "3");
- });
- binding.keyBoard.inputButton4.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "4");
- });
- binding.keyBoard.inputButton5.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "5");
- });
- binding.keyBoard.inputButton6.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "6");
- });
- binding.keyBoard.inputButton7.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "7");
- });
- binding.keyBoard.inputButton8.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "8");
- });
- binding.keyBoard.inputButton9.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "9");
- });
- // todo:绑定字母按键
- binding.keyBoard.inputButtonQ.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "Q" : "q");
- });
- binding.keyBoard.inputButtonW.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "W" : "w");
- });
- binding.keyBoard.inputButtonE.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "E" : "e");
- });
- binding.keyBoard.inputButtonR.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "R" : "r");
- });
- binding.keyBoard.inputButtonT.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "T" : "t");
- });
- binding.keyBoard.inputButtonY.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "Y" : "y");
- });
- binding.keyBoard.inputButtonU.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "U" : "u");
- });
- binding.keyBoard.inputButtonI.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "I" : "i");
- });
- binding.keyBoard.inputButtonO.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "O" : "o");
- });
- binding.keyBoard.inputButtonP.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "P" : "p");
- });
- binding.keyBoard.inputButtonA.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "A" : "a");
- });
- binding.keyBoard.inputButtonS.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "S" : "s");
- });
- binding.keyBoard.inputButtonD.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "D" : "d");
- });
- binding.keyBoard.inputButtonF.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "F" : "f");
- });
- binding.keyBoard.inputButtonG.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "G" : "g");
- });
- binding.keyBoard.inputButtonH.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "H" : "h");
- });
- binding.keyBoard.inputButtonJ.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "J" : "j");
- });
- binding.keyBoard.inputButtonK.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "K" : "k");
- });
- binding.keyBoard.inputButtonL.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "L" : "l");
- });
- binding.keyBoard.inputButtonZ.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "Z" : "z");
- });
- binding.keyBoard.inputButtonX.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位!");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "X" : "x");
- });
- binding.keyBoard.inputButtonC.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "C" : "c");
- });
- binding.keyBoard.inputButtonV.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "V" : "v");
- });
- binding.keyBoard.inputButtonB.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "B" : "b");
- });
- binding.keyBoard.inputButtonN.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "N" : "n");
- });
- binding.keyBoard.inputButtonM.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, caseSmallFlag.get() ? "M" : "m");
- });
- // 符号
- binding.keyBoard.symbolButton1.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "-");
- });
- binding.keyBoard.symbolButton2.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "/");
- });
- binding.keyBoard.symbolButton3.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, ":");
- });
- binding.keyBoard.symbolButton4.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "+");
- });
- binding.keyBoard.symbolButton5.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "(");
- });
- binding.keyBoard.symbolButton6.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, ")");
- });
- binding.keyBoard.symbolButton7.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "#");
- });
- binding.keyBoard.symbolButton8.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "@");
- });
- binding.keyBoard.symbolButton9.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "面单号最多不能超过16位! ");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, ".");
- });
- binding.keyBoard.symbolButton10.setOnClickListener(v -> {
- if(!hasFocus){
- return;
- }
- int length = binding.mailNo.getText().length();
- if (length >= 16) {
- ToastUtils.make(getContext(), "?");
- return;
- }
- int start = binding.mailNo.getSelectionStart();
- binding.mailNo.getText().insert(start, "!");
- });
- // 大小写按键绑定 默认大写
- binding.keyBoard.inputButtonCaseSmall.setOnClickListener(v -> {
- if (caseSmallFlag.get()) {
- caseSmallFlag.set(false);
- } else {
- caseSmallFlag.set(true);
- }
- binding.keyBoard.inputButtonCaseSmall.setText(caseSmallFlag.get() ? "大写" : "小写");
- // 设置键盘字母大小写
- binding.keyBoard.inputButtonQ.setText(caseSmallFlag.get() ? "Q" : "q");
- binding.keyBoard.inputButtonW.setText(caseSmallFlag.get() ? "W" : "w");
- binding.keyBoard.inputButtonE.setText(caseSmallFlag.get() ? "E" : "e");
- binding.keyBoard.inputButtonR.setText(caseSmallFlag.get() ? "R" : "r");
- binding.keyBoard.inputButtonT.setText(caseSmallFlag.get() ? "T" : "t");
- binding.keyBoard.inputButtonY.setText(caseSmallFlag.get() ? "Y" : "y");
- binding.keyBoard.inputButtonU.setText(caseSmallFlag.get() ? "U" : "u");
- binding.keyBoard.inputButtonI.setText(caseSmallFlag.get() ? "I" : "i");
- binding.keyBoard.inputButtonO.setText(caseSmallFlag.get() ? "O" : "o");
- binding.keyBoard.inputButtonP.setText(caseSmallFlag.get() ? "P" : "p");
- binding.keyBoard.inputButtonA.setText(caseSmallFlag.get() ? "A" : "a");
- binding.keyBoard.inputButtonS.setText(caseSmallFlag.get() ? "S" : "s");
- binding.keyBoard.inputButtonD.setText(caseSmallFlag.get() ? "D" : "d");
- binding.keyBoard.inputButtonF.setText(caseSmallFlag.get() ? "F" : "f");
- binding.keyBoard.inputButtonG.setText(caseSmallFlag.get() ? "G" : "g");
- binding.keyBoard.inputButtonH.setText(caseSmallFlag.get() ? "H" : "h");
- binding.keyBoard.inputButtonJ.setText(caseSmallFlag.get() ? "J" : "j");
- binding.keyBoard.inputButtonK.setText(caseSmallFlag.get() ? "K" : "k");
- binding.keyBoard.inputButtonL.setText(caseSmallFlag.get() ? "L" : "l");
- binding.keyBoard.inputButtonZ.setText(caseSmallFlag.get() ? "Z" : "z");
- binding.keyBoard.inputButtonX.setText(caseSmallFlag.get() ? "X" : "x");
- binding.keyBoard.inputButtonC.setText(caseSmallFlag.get() ? "C" : "c");
- binding.keyBoard.inputButtonV.setText(caseSmallFlag.get() ? "V" : "v");
- binding.keyBoard.inputButtonB.setText(caseSmallFlag.get() ? "B" : "b");
- binding.keyBoard.inputButtonN.setText(caseSmallFlag.get() ? "N" : "n");
- binding.keyBoard.inputButtonM.setText(caseSmallFlag.get() ? "M" : "m");
- });
- binding.keyBoard.inputButtonCancel.setOnClickListener(v -> {
- Editable text = binding.mailNo.getText();
- int start = binding.mailNo.getSelectionStart();
- if (text.length() > 0) {
- if (start > 0) {
- text.delete(start - 1, start);
- }
- binding.mailNo.setText(text, TextView.BufferType.EDITABLE);
- binding.mailNo.setSelection(start - 1 < 0 ? text.length() : start - 1);
- }
- });
- // 长按删除
- binding.keyBoard.inputButtonCancel.setOnLongClickListener(v -> {
- binding.mailNo.getText().clear();
- return false;
- });
- });
- binding.returnBtn.setOnClickListener(view1 -> {
- if (null != timer) {
- timer.cancel();
- }
- NavUtils.navigate(this, R.id.action_InputInfoKeyBoardFragment_to_chooseCabinetFragment);
- });
- // 默认选中运单号输入框
- if (!StringUtils.isNullOrEmpty(binding.mailNo.getText().toString())) {
- binding.delivererPhoneConfirm.requestFocus();
- } else {
- binding.mailNo.requestFocus();
- }
- }
- private void extracted(AtomicBoolean caseSmallFlag) {
- }
- public PreparedOrderResponseVo getData() {
- return data;
- }
- @Override
- public void onDestroy() {
- if (timer != null) {
- timer.cancel();
- timer = null;
- }
- super.onDestroy();
- binding = null;
- Log.i(TAG, TAG + "被销毁。。。");
- }
- }
|