From 9cffe03d76840520bfbfeaf85933fcb2ed8385b8 Mon Sep 17 00:00:00 2001 From: zuoxiao <470321431@qq.com> Date: 星期三, 05 三月 2025 10:19:46 +0800 Subject: [PATCH] feat(generallibrary): 新增主界面和相关功能模块 - 新增 MainActivity 作为主界面,包含三个底部导航栏选项卡- 新增 BSCardFragment、RechargeFragment 和 MyFragment 作为三个选项卡对应的页面 - 新增 NewCardActivity 用于新建卡片 - 新增 AreaCard 类用于处理区域表号卡数据 - 新增 BaseCard 类作为卡片数据的基础类 - 新增 TabAdapter 用于管理选项卡页面 - 更新 AndroidManifest.xml 设置主活动为 MainActivity - 更新 build.gradle 添加 generallibrary 依赖 --- henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java | 63 +++++++------------------------ 1 files changed, 14 insertions(+), 49 deletions(-) diff --git a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java index 977ad1b..ec248e1 100644 --- a/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java +++ b/henanlibrary/src/main/java/com/dayu/henanlibrary/card/DomainCard.java @@ -168,17 +168,17 @@ /** * 鐢ㄦ埛鍗�0鍧� */ - public class Zero extends BaseCard { + public class Zero extends HNBaseCard { public byte[] toByte() { byte[] data = new byte[16]; data[0] = HexUtil.hexToByte(cardType); + domainLength = domainName.length(); // 鍩熷悕鍗℃柊涔1鍚庢湁01==0锛岄箍閭戞病鏈�01==1 if (type == 0) { if (domainNumber != null) { byte[] domainNumbers = BcdUtil.strToBcd(domainNumber); data[1] = domainNumbers[0]; } - domainLength = domainName.length(); data[2] = HexUtil.hexToByte(HexUtil.get10to16(domainLength)); String portStr = String.valueOf(port); int lenght = portStr.length(); @@ -187,11 +187,7 @@ } String ascii = IDN.toASCII(domainName + "," + portStr + "#"); asciiByte = ascii.getBytes(); - if (asciiByte.length < 12) { - System.arraycopy(asciiByte, 0, data, 3, asciiByte.length); - } else { - System.arraycopy(asciiByte, 0, data, 3, 12); - } + System.arraycopy(asciiByte, 0, data, 3, Math.min(asciiByte.length, 12)); } else { data[1] = HexUtil.hexToByte(HexUtil.get10to16(domainLength)); String portStr = String.valueOf(port); @@ -201,13 +197,7 @@ } String ascii = IDN.toASCII(domainName + "," + portStr + "#"); asciiByte = ascii.getBytes(); - if (asciiByte.length < 13) { - System.arraycopy(asciiByte, 0, data, 1, asciiByte.length); - } else { - System.arraycopy(asciiByte, 0, data, 1, 13); - } - - + System.arraycopy(asciiByte, 0, data, 2, Math.min(asciiByte.length, 13)); } @@ -220,26 +210,14 @@ /** * 鐢ㄦ埛鍗�1鍧� */ - public class One extends BaseCard { + public class One extends HNBaseCard { public byte[] toBytes() { byte[] data = new byte[16]; - if (type==0){ - if (asciiByte.length > 12) { - if (asciiByte.length - 12 < 15) { - System.arraycopy(asciiByte, 12, data, 0, asciiByte.length - 12); - } else { - System.arraycopy(asciiByte, 12, data, 0, 15); - } - } - }else { - if (asciiByte.length > 13) { - if (asciiByte.length - 13 < 15) { - System.arraycopy(asciiByte, 13, data, 0, asciiByte.length - 12); - } else { - System.arraycopy(asciiByte, 13, data, 0, 15); - } - } + int offset = (type == 0) ? 12 : 13; + + if (asciiByte.length > offset) { + System.arraycopy(asciiByte, offset, data, 0, Math.min(asciiByte.length - offset, 15)); } data[15] = getByteSum(data); @@ -252,27 +230,14 @@ /** * 鐢ㄦ埛鍗�2鍧� */ - public class Two extends BaseCard { + public class Two extends HNBaseCard { public byte[] toBytes() { byte[] data = new byte[16]; - if (type==0){ - if (asciiByte.length > (12 + 15)) { - if (asciiByte.length - (12 + 15) < 15) { - System.arraycopy(asciiByte, 12 + 15, data, 0, asciiByte.length - (12 + 15)); - } else { - System.arraycopy(asciiByte, 12 + 15, data, 0, 15); - } - } - }else { - if (asciiByte.length > (13 + 15)) { - if (asciiByte.length - (13 + 15) < 15) { - System.arraycopy(asciiByte, 13 + 15, data, 0, asciiByte.length - (12 + 15)); - } else { - System.arraycopy(asciiByte, 13 + 15, data, 0, 15); - } - } + int offset = (type == 0) ? 27 : 28; // 12 + 15 and 13 + 15 + if (asciiByte.length > offset) { + int lengthToCopy = Math.min(asciiByte.length - offset, 15); + System.arraycopy(asciiByte, offset, data, 0, lengthToCopy); } - data[15] = getByteSum(data); return data; } -- Gitblit v1.8.0