From 59798b3c20c1b6e7bde1c03cd1caecbaf0860572 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期一, 09 三月 2020 17:13:47 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/endian11/DriveJudge --- app/src/main/java/safeluck/drive/evaluation/Constant.java | 1 app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 48 +++ app/src/main/assets/criteria_I.json | 8 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java | 79 +++++ app/src/main/res/values/strings.xml | 16 + app/src/main/assets/criteria_III.json | 465 +++++++++++++++++++++++++++++++ app/src/main/java/safeluck/drive/evaluation/app.java | 33 ++ app/src/main/java/safeluck/drive/evaluation/MainActivity.java | 3 app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java | 14 app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java | 59 +++ app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java | 28 + app/src/main/java/safeluck/drive/evaluation/DB/Constant.java | 1 app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java | 11 app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java | 16 app/src/main/res/layout/layout_net_train_iii_item.xml | 72 ++++ 15 files changed, 844 insertions(+), 10 deletions(-) diff --git a/app/src/main/assets/criteria_I.json b/app/src/main/assets/criteria_I.json index 167faeb..d6087d0 100644 --- a/app/src/main/assets/criteria_I.json +++ b/app/src/main/assets/criteria_I.json @@ -149,7 +149,7 @@ { "item_id":22, "item_content": "渚ф柟鍋滆溅", - "deducting_reason": "椤圭洰瀹屾垚鏃堕棿瓒呰繃90s", + "deducting_reason": "椤圭洰瀹屾垚鏃堕棿瓒呰繃90绉�", "score_deducting":100, "required_precision":"" }, @@ -177,7 +177,7 @@ { "item_id":26, "item_content": "渚ф柟鍋滆溅", - "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s", + "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2绉�", "score_deducting":5, "required_precision":"" }, @@ -191,7 +191,7 @@ { "item_id":28, "item_content": "鏇茬嚎琛岄┒", - "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s", + "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2绉�", "score_deducting":100, "required_precision":"" }, @@ -212,7 +212,7 @@ { "item_id":31, "item_content": "鐩磋杞集", - "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2s", + "deducting_reason": "涓�斿仠杞︽椂闂磋秴杩�2绉�", "score_deducting":5, "required_precision":"" } diff --git a/app/src/main/assets/criteria_III.json b/app/src/main/assets/criteria_III.json new file mode 100644 index 0000000..2057db3 --- /dev/null +++ b/app/src/main/assets/criteria_III.json @@ -0,0 +1,465 @@ +[ + { + "item_id":1, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "涓嶆寜瑙勫畾浣跨敤瀹夊叏甯�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":2, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "閬尅銆佸叧闂溅鍐呴煶瑙嗛鐩戞帶璁惧", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":3, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "涓嶆寜鑰冭瘯鍛樻寚浠ら┚椹�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":4, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "鍚姩鍙戝姩鏈烘椂妗d綅鏈疆浜庣┖鎸�(椹昏溅妗�)", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":5, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "璧锋鏃惰溅杈嗗悗婧滆窛绂诲ぇ浜�30cm", + "score_deducting":100, + "required_precision":"璺濈妫�娴嬭宸細0mm~50mm" + }, + { + "item_id":6, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "浣跨敤鎸′綅涓庤溅閫熼暱鏃堕棿涓嶅尮閰�,閫犳垚杞﹁締鍙戝姩鏈鸿浆閫熻繃楂樻垨杩囦綆", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":7, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "杞﹁締鍦ㄨ椹朵腑杩炵画2娆℃寕鎸′笉杩�", + "score_deducting":100, + "required_precision":"5s鍐呬袱娆℃寕鍚屼竴鎸′綅鏈垚鍔�" + }, + { + "item_id":8, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "琛岄┒涓┖鎸℃粦琛�", + "score_deducting":100, + "required_precision":"鏃堕棿澶т簬5s" + }, + { + "item_id":9, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "涓嶆寜浜ら�氫俊鍙风伅銆佹爣蹇椼�佹爣绾夸俊鍙疯椹�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":10, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "涓嶆寜瑙勫畾閫熷害琛岄┒", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":11, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "杞﹁締琛岄┒涓獞杞ц溅閬撲腑蹇冨疄绾挎垨鑰呰溅閬撹竟缂樺疄绾�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":12, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "闀挎椂闂撮獞杞ц溅閬撳垎鐣岀嚎琛岄┒", + "score_deducting":100, + "required_precision":"鏃堕棿澶т簬10s" + }, + { + "item_id":13, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "璧锋銆佽浆鍚戙�佸彉鏇磋溅閬撱�佽秴杞︺�侀潬杈瑰仠杞﹀墠涓嶄娇鐢ㄦ垨閿欒浣跨敤杞悜鐏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":14, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "璧锋銆佽浆鍚戙�佸彉鏇磋溅閬撱�佽秴杞︺�侀潬杈瑰仠杞﹀墠,寮�杞� 鍚戠伅灏戜簬3 s鍗宠浆鍚�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":15, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "杩炵画鍙樻洿涓ゆ潯鎴栦袱鏉′互涓婅溅閬�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":16, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "灏嗚溅杈嗗仠鍦ㄤ汉琛屾í閬撱�佺綉鐘剁嚎鍐呯瓑绂佹鍋滆溅鍖哄煙", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":17, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "鍥犺瀵熴�佸垽鏂垨鑰呮搷浣滀笉褰撳嚭鐜板嵄闄╂儏鍐�", + "score_deducting":100, + "required_precision":"鍓埗鍔ㄨ笍鏉胯俯涓嬪悗" + }, + { + "item_id":18, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "璧锋鏃惰溅杈嗗悗婧�,浣嗗悗婧滆窛绂诲皬浜�30cm", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":19, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "璧锋鎴栬椹朵腑鎸傞敊鎸�", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":20, + "item_content": "閫氱敤瑕佹眰", + "deducting_reason": "鍥犳搷浣滀笉褰撻�犳垚鍙戝姩鏈虹唲鐏竴娆�", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":21, + "item_content": "涓婅溅鍑嗗", + "deducting_reason": "鏈�嗘椂閽堢粫杞︿竴鍛ㄦ鏌ヨ溅杈嗗瑙傚強鍛ㄥ洿鐜", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":22, + "item_content": "璧锋", + "deducting_reason": "鍒跺姩姘斿帇涓嶈冻璧锋", + "score_deducting":100, + "required_precision":"浠呴�傜敤浜庨噰鐢ㄦ皵鍔ㄥ埗鍔ㄥ櫒鐨勮溅鍨�" + }, + { + "item_id":23, + "item_content": "璧锋", + "deducting_reason": "杞﹂棬鏈畬鍏ㄥ叧闂捣姝�", + "score_deducting":100, + "required_precision":"琛岄┒璺濈澶т簬 1m 鏃�,杞﹂棬鏈畬 鍏ㄥ叧闂�" + }, + { + "item_id":24, + "item_content": "璧锋", + "deducting_reason": "鍚姩鍙戝姩鏈烘椂,鎸′綅鏈疆浜庣┖鎸�(椹昏溅鎸�)", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":25, + "item_content": "璧锋", + "deducting_reason": "涓嶆澗椹昏溅鍒跺姩鍣ㄨ捣姝�,鏈強鏃剁籂姝�", + "score_deducting":100, + "required_precision":"琛岄┒璺濈澶т簬 10 m" + }, + + { + "item_id":26, + "item_content": "璧锋", + "deducting_reason": "涓嶆澗椹昏溅鍒跺姩鍣ㄨ捣姝�,浣嗚兘鍙婃椂绾犳", + "score_deducting":10, + "required_precision":"琛岄┒璺濈涓� 1 m~10 m" + }, + { + "item_id":27, + "item_content": "璧锋", + "deducting_reason": "鍙戝姩鏈哄惎鍔ㄥ悗,涓嶅強鏃舵澗寮�鍚姩寮�鍏�", + "score_deducting":10, + "required_precision":"璺濈妫�娴嬭宸�:0mm~+50mn" + }, + { + "item_id":28, + "item_content": "璧锋", + "deducting_reason": "璧锋鏃惰溅杈嗗彂鐢熼棷鍔�", + "score_deducting":5, + "required_precision":"" + }, + { + "item_id":29, + "item_content": "璧锋", + "deducting_reason": "璧锋鏃�,鍔犻�熻笍鏉挎帶鍒朵笉褰�,鑷翠娇鍙戝姩鏈鸿浆閫熻繃楂�", + "score_deducting":5, + "required_precision":"鏍规嵁鑰冭瘯杞﹀瀷璁惧畾(澶т簬 2500rpm)" + } , + { + "item_id":30, + "item_content": "鐩寸嚎琛岄┒", + "deducting_reason": "鏂瑰悜鎺у埗涓嶇ǔ,涓嶈兘淇濇寔杞﹁締鐩寸嚎杩愯", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":31, + "item_content": "鍔犲噺鎸′綅鎿嶄綔", + "deducting_reason": "鏈寜鎸囦护骞崇ǔ鍔犮�佸噺鎸�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":32, + "item_content": "鍔犲噺鎸′綅鎿嶄綔", + "deducting_reason": "杞﹁締杩愯閫熷害鍜屾尅浣嶄笉鍖归厤", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":33, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "鑰冭瘯鍛樺彂鍑洪潬杈瑰仠杞︽寚浠ゅ悗,鏈兘鍦ㄨ瀹氱殑璺濈鍐呭仠杞�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":34, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "鍋滆溅鍚�,杞﹁韩瓒呰繃閬撹矾鍙充晶杈圭紭绾挎垨鑰呬汉琛岄亾杈圭紭", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":35, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "涓嬭溅鍚庝笉鍏抽棴杞﹂棬", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":36, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "鍋滆溅鍚�,杞﹁韩璺濈閬撹矾鍙充晶杈圭紭绾挎垨鑰呬汉琛岄亾杈圭紭瓒呭嚭50cm", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":37, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "鍋滆溅鍚�,杞﹁韩璺濈閬撹矾鍙充晶杈圭紭绾挎垨鑰呬汉琛岄亾杈圭紭瓒呭嚭30cm锛屾湭瓒呭嚭50cm", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":38, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "鍋滆溅鍚�,鏈媺绱ч┗杞﹀埗鍔ㄥ櫒", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":39, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "鎷夌揣椹昏溅鍒跺姩鍣ㄥ墠鏀炬澗琛岃溅鍒跺姩韪忔澘", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":40, + "item_content": "闈犺竟鍋滆溅", + "deducting_reason": "涓嬭溅鍓嶄笉灏嗗彂鍔ㄦ満鐔勭伀", + "score_deducting":5, + "required_precision":"" + }, + { + "item_id":41, + "item_content": "鐩磋閫氳繃璺彛", + "deducting_reason": "涓嶆寜瑙勫畾鍑忛��", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":42, + "item_content": "鐩磋閫氳繃璺彛", + "deducting_reason": "涓嶆寜瑙勫畾鍋滆溅鐬湜", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":43, + "item_content": "璺彛宸﹁浆寮�", + "deducting_reason": "涓嶆寜瑙勫畾鍑忛��", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":44, + "item_content": "璺彛宸﹁浆寮�", + "deducting_reason": "涓嶆寜瑙勫畾鍋滆溅鐬湜", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":45, + "item_content": "璺彛宸﹁浆寮�", + "deducting_reason": "宸﹁浆閫氳繃璺彛鏃�,鏈潬璺彛涓績鐐瑰乏渚ц浆寮�", + "score_deducting":10, + "required_precision":"" + }, + { + "item_id":46, + "item_content": "璺彛鍙宠浆寮�", + "deducting_reason": "涓嶆寜瑙勫畾鍑忛��", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":47, + "item_content": "璺彛鍙宠浆寮�", + "deducting_reason": "涓嶆寜瑙勫畾鍋滆溅鐬湜", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":48, + "item_content": "閫氳繃浜鸿閬撴í绾�", + "deducting_reason": "涓嶆寜瑙勫畾鍑忛�熸參琛�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":49, + "item_content": "閫氳繃瀛︽牎鍖哄煙", + "deducting_reason": "涓嶆寜瑙勫畾鍑忛�熸參琛�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":50, + "item_content": "閫氳繃鍏叡姹借溅绔�", + "deducting_reason": "涓嶆寜瑙勫畾鍑忛�熸參琛�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":51, + "item_content": "鎺夊ご", + "deducting_reason": "鎺夊ご鍓嶆湭寮�鍚乏杞悜鐏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":52, + "item_content": "澶滈棿琛岄┒", + "deducting_reason": "涓嶈兘姝g‘寮�鍚伅鍏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":53, + "item_content": "澶滈棿琛岄┒", + "deducting_reason": "閫氳繃鎬ュ集銆佸潯璺�佹嫳妗ャ�佷汉琛屾í閬撴垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙f椂锛屼笉浜ゆ浛浣跨敤杩溿�佽繎鍏夌伅绀烘剰", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":54, + "item_content": "澶滈棿琛岄┒", + "deducting_reason": "閫氳繃璺彛鏃朵娇鐢ㄨ繙鍏夌伅", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":55, + "item_content": "澶滈棿琛岄┒", + "deducting_reason": "鍦ㄦ湁璺伅銆佺収鏄庤壇濂界殑閬撹矾涓婅椹舵椂,浣跨敤杩滃厜鐏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":56, + "item_content": "澶滈棿琛岄┒", + "deducting_reason": "鍦ㄨ矾杈逛复鏃跺仠杞︿笉鍏抽棴鍓嶇収鐏垨涓嶅紑鍚ず寤撶伅", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":57, + "item_content": "澶滈棿琛岄┒", + "deducting_reason": "杩涘叆鏃犵収鏄庨亾璺椹舵椂涓嶄娇鐢ㄨ繙鍏夌伅", + "score_deducting":5, + "required_precision":"" + }, + { + "item_id":58, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "涓嶈兘姝g‘寮�鍚伅鍏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":59, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "鍚屾柟鍚戣繎璺濈璺熻溅琛岄┒鏃�,浣跨敤杩滃厜鐏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":60, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "閫氳繃鎬ュ集銆佸潯璺�佹嫳妗ャ�佷汉琛屾í閬撴垨鑰呮病鏈変氦閫氫俊鍙风伅鎺у埗鐨勮矾鍙f椂锛屼笉浜ゆ浛浣跨敤杩溿�佽繎鍏夌伅绀烘剰", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":61, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "浼氳溅鏃朵笉鎸夎瀹氫娇鐢ㄨ繎鍏夌伅", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":62, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "閫氳繃璺彛鏃朵娇鐢ㄨ繙鍏夌伅", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":63, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "瓒呰溅鏃舵湭浜ゆ浛浣跨敤杩滆繎鍏夌伅鎻愰啋琚秴瓒婅溅杈�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":64, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "鍦ㄦ湁璺伅銆佺収鏄庤壇濂界殑閬撹矾涓婅椹舵椂,浣跨敤杩滃厜鐏�", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":65, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "鍦ㄨ矾杈逛复鏃跺仠杞︿笉鍏抽棴鍓嶇収鐏垨涓嶅紑鍚ず寤撶伅", + "score_deducting":100, + "required_precision":"" + }, + { + "item_id":66, + "item_content": "妯℃嫙澶滈棿鐏厜浣跨敤(璇煶妯℃嫙)", + "deducting_reason": "杩涘叆鏃犵収鏄庛�佺収鏄庝笉鑹殑閬撹矾琛岄┒鏃朵笉浣跨敤杩滃厜鐏�", + "score_deducting":5, + "required_precision":"" + } +] \ No newline at end of file diff --git a/app/src/main/java/safeluck/drive/evaluation/Constant.java b/app/src/main/java/safeluck/drive/evaluation/Constant.java index 967a7bd..704de3c 100644 --- a/app/src/main/java/safeluck/drive/evaluation/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/Constant.java @@ -82,5 +82,6 @@ public static final int READ_PHYSICAL_ID = 0x8011;//4锛� 璇诲彇IC鍗� public static final String BIND_MCUINFO_TOPIC = "bind_mcu_info_topic"; public static final String BIND_RTK_SPEED_TOPIC = "BIND_RTK_SPEED_TOPIC"; + public static final int EXIT_CURRENT_ITEM = 0;//閫�鍑烘煇鍦哄湴 public static String exam_enter_exitdata="exam_enter_exitdata"; } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java index 711a645..8a21f43 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/Constant.java @@ -9,6 +9,7 @@ public class Constant { public static final String CRITERIAFOR_I_JSON = "criteria_I.json"; public static final String CRITERIAFOR_II_JSON = "criteria_II.json"; + public static final String CRITERIAFOR_III_JSON = "criteria_III.json"; public static final String RTK_CONFIG_UPDATE_JSON = "RTK_CONFIG_UPDATE_JSON"; public static final String RTK_CONFIG_PHONE = "RTK_CONFIG_PHONE"; public static final String RTK_CONFIG_IMEI = "RTK_CONFIG_IMEI"; diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java index 82e3040..8f9c085 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/WorkRoomDataBase.java @@ -20,10 +20,13 @@ import safeluck.drive.evaluation.DB.appstatusdb.AppStatusInitWork; import safeluck.drive.evaluation.DB.criterias.CriteriaForI; import safeluck.drive.evaluation.DB.criterias.CriteriaForII; +import safeluck.drive.evaluation.DB.criterias.CriteriaForIII; +import safeluck.drive.evaluation.DB.criterias.CriteriaForIIIWorker; import safeluck.drive.evaluation.DB.criterias.CriteriaForIIWorker; import safeluck.drive.evaluation.DB.criterias.CriteriaForIWorker; import safeluck.drive.evaluation.DB.criterias.CriteriaIDao; import safeluck.drive.evaluation.DB.criterias.CriteriaIIDao; +import safeluck.drive.evaluation.DB.criterias.CriteriaIIIDao; import safeluck.drive.evaluation.DB.exam_status.ExamStatus; import safeluck.drive.evaluation.DB.exam_status.ExamStatusDao; import safeluck.drive.evaluation.DB.exam_status.ExamStatusInitWorker; @@ -46,7 +49,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ -@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false) +@Database(entities = {Student.class, CriteriaForI.class, FailedProj.class, CriteriaForII.class, CriteriaForIII.class,RTKConfig.class, GPSInfo.class, AppStatus.class, ExamStatus.class, SingalConfig.class},version = 1,exportSchema = false) public abstract class WorkRoomDataBase extends RoomDatabase { private static final String TAG = "WorkRoomDataBase"; public abstract StudentDao getstudentDao(); @@ -85,6 +88,7 @@ OneTimeWorkRequest oneTimeWorkRequest = OneTimeWorkRequest.from(SeedDatabaseWorker.class); OneTimeWorkRequest oneTimeWorkRequest1 = OneTimeWorkRequest.from(CriteriaForIWorker.class); OneTimeWorkRequest oneTimeWorkRequest3 = OneTimeWorkRequest.from(CriteriaForIIWorker.class); + OneTimeWorkRequest mCriteriaForIIIWorker= OneTimeWorkRequest.from(CriteriaForIIIWorker.class); OneTimeWorkRequest oneTimeWorkRequest2 = OneTimeWorkRequest.from(FailedProjWorker.class); OneTimeWorkRequest RTKConfigWorkRequest = OneTimeWorkRequest.from(RTKConfigWork.class); OneTimeWorkRequest appStatusInitWork = OneTimeWorkRequest.from(AppStatusInitWork.class); @@ -95,6 +99,7 @@ WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest1); WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest2); WorkManager.getInstance(mContext).enqueue(oneTimeWorkRequest3); + WorkManager.getInstance(mContext).enqueue(mCriteriaForIIIWorker); WorkManager.getInstance(mContext).enqueue(RTKConfigWorkRequest); WorkManager.getInstance(mContext).enqueue(appStatusInitWork); WorkManager.getInstance(mContext).enqueue(examStatusInitWorker); @@ -124,4 +129,11 @@ public abstract ExamStatusDao getExamStatusDao(); public abstract SignalConfigDao getSignalConfigDao(); + + /** + * 鑾峰彇绉戠洰涓夎瘎鍒よ〃鐨� Dao + * + * @return + */ + public abstract CriteriaIIIDao getCriteriaIIIDao(); } diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java new file mode 100644 index 0000000..d211da3 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIII.java @@ -0,0 +1,79 @@ +package safeluck.drive.evaluation.DB.criterias; + +import androidx.annotation.NonNull; +import androidx.room.ColumnInfo; +import androidx.room.Entity; +import androidx.room.PrimaryKey; + +/** + * MyApplication2 + * Created by lzw on 2019/11/26. 10:15:55 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + * + * 绉戠洰浜� II绫昏�冨満璇勫垽鏍囧噯琛� + */ +@Entity(tableName = "criteria_three") +public class CriteriaForIII { +/************** + * item_id item_content deducting_reason score_deducting required _precision + 23 璧锋 杞﹂棬鏈畬鍏ㄥ叧闂捣姝� 涓嶅悎鏍� 琛岄┒璺濈澶т簬1m 鏃� + **************/ + @PrimaryKey + @ColumnInfo(name = "item_id") + @NonNull + private int item_id; + + @ColumnInfo(name = "item_content") + private String item_content; + + @ColumnInfo(name = "deducting_reason") + private String deducting_reason; + + + @NonNull @ColumnInfo(name = "score_deducting") + private int score_deducting; + + @ColumnInfo(name = "required_precision") + private String required_precision; + + public int getItem_id() { + return item_id; + } + + public void setItem_id(int item_id) { + this.item_id = item_id; + } + + public String getItem_content() { + return item_content; + } + + public void setItem_content(String item_content) { + this.item_content = item_content; + } + + public String getDeducting_reason() { + return deducting_reason; + } + + public void setDeducting_reason(String deducting_reason) { + this.deducting_reason = deducting_reason; + } + + public int getScore_deducting() { + return score_deducting; + } + + public void setScore_deducting(int score_deducting) { + this.score_deducting = score_deducting; + } + + public String getRequired_precision() { + return required_precision; + } + + public void setRequired_precision(String required_precision) { + this.required_precision = required_precision; + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java new file mode 100644 index 0000000..1ab54c9 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaForIIIWorker.java @@ -0,0 +1,59 @@ +package safeluck.drive.evaluation.DB.criterias; + +import android.content.Context; + +import androidx.annotation.NonNull; +import androidx.work.Worker; +import androidx.work.WorkerParameters; + +import com.anyun.exam.lib.MyLog; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.google.gson.stream.JsonReader; + +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.lang.reflect.Type; +import java.util.List; + +import safeluck.drive.evaluation.DB.Constant; +import safeluck.drive.evaluation.DB.WorkRoomDataBase; + +/** + * MyApplication2 + * Created by lzw on 2019/11/26. 11:59:25 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +public class CriteriaForIIIWorker extends Worker { + + private static final String TAG = "CriteriaForIWorker"; + + public CriteriaForIIIWorker(@NonNull Context context, @NonNull WorkerParameters workerParams) { + super(context, workerParams); + } + + @NonNull + @Override + public Result doWork() { + InputStream inputStream = null; + try { + inputStream = getApplicationContext().getAssets() + .open(Constant.CRITERIAFOR_III_JSON); + InputStreamReader inputStreamReader = new InputStreamReader(inputStream); + JsonReader jsonReader = new JsonReader(inputStreamReader); + Gson gson = new Gson(); + Type type = new TypeToken<List<CriteriaForIII>>(){}.getType(); + + List<CriteriaForIII> criteriaForIIS = gson.fromJson(jsonReader,type); + MyLog.i(TAG,"鎻掑叆绉戠洰涓夎�冨満璇勫垽琛�"); + WorkRoomDataBase.getWorkRoomDataBase(getApplicationContext()).getCriteriaIIIDao().insertAllCriteriaIII(criteriaForIIS); + return Result.success(); + } catch (IOException e) { + e.printStackTrace(); + return Result.failure(); + } + + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java new file mode 100644 index 0000000..8d2dd32 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/DB/criterias/CriteriaIIIDao.java @@ -0,0 +1,28 @@ +package safeluck.drive.evaluation.DB.criterias; + +import androidx.lifecycle.LiveData; +import androidx.room.Dao; +import androidx.room.Insert; +import androidx.room.OnConflictStrategy; +import androidx.room.Query; + +import java.util.List; + + +/** + * MyApplication2 + * Created by lzw on 2019/11/26. 11:12:18 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +@Dao +public interface CriteriaIIIDao { + @Insert(onConflict = OnConflictStrategy.IGNORE) + void insertCriteriaIII(CriteriaForIII criteriaForIII); + + @Insert(onConflict = OnConflictStrategy.REPLACE) + void insertAllCriteriaIII(List<CriteriaForIII> criteriaForIII); + + @Query( "SELECT * FROM criteria_three WHERE item_id =:item_id") + LiveData<CriteriaForIII > queryItemForCriteriaIII(int item_id); +} diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java index 40de2af..7da0bb2 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java +++ b/app/src/main/java/safeluck/drive/evaluation/DB/exam_status/ExamStatus.java @@ -13,10 +13,14 @@ //5 - 鐩磋杞集 @PrimaryKey private int map_id; +/**渚ф柟浣嶅仠杞� type = 3 + 鎶�鏈儴 鍙舵�� 15:51:49 + 鍊掕溅鍏ュ簱 type = 1 + 涓婂潯璧锋 type = 2 + zhijiao type = 5*/ - - + private int map_item; //0 閫�鍑猴紙鑰冭瘯瀹屾瘯锛� //1 杩涘叆锛堟鍦ㄨ繘琛岃�冭瘯锛� 2-寰呰�� @@ -31,6 +35,14 @@ this.enter = enter; } + public int getMap_item() { + return map_item; + } + + public void setMap_item(int map_item) { + this.map_item = map_item; + } + public ExamStatus() { } diff --git a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java index 049ab64..06d7c64 100644 --- a/app/src/main/java/safeluck/drive/evaluation/MainActivity.java +++ b/app/src/main/java/safeluck/drive/evaluation/MainActivity.java @@ -36,6 +36,7 @@ import com.anyun.exam.lib.AYSdk; import com.anyun.exam.lib.MyLog; import com.anyun.exam.lib.util.ByteUtil; +import com.anyun.exam.lib.util.Speaker; import com.anyun.im_lib.listener.IMSConnectStatusCallback; import com.google.gson.Gson; import com.safeluck.aykj.utils.BytesUtils; @@ -161,6 +162,8 @@ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_main); + //鍒濆鍖杢ts + ExamPlatformData.getInstance().initTTS(this); // TODO // 杩涜tcp杩炴帴 final String userId = "100002"; diff --git a/app/src/main/java/safeluck/drive/evaluation/app.java b/app/src/main/java/safeluck/drive/evaluation/app.java index 99b4a3e..ba745ad 100644 --- a/app/src/main/java/safeluck/drive/evaluation/app.java +++ b/app/src/main/java/safeluck/drive/evaluation/app.java @@ -59,6 +59,7 @@ import safeluck.drive.evaluation.platformMessage.JKMessage0101; import safeluck.drive.evaluation.platformMessage.JKMessage0203; import safeluck.drive.evaluation.platformMessage.JKMessage0206; +import safeluck.drive.evaluation.util.CThreadPoolExecutor; import safeluck.drive.evaluation.util.FileUtil; import safeluck.drive.evaluation.util.SPUtils; import safeluck.drive.evaluation.util.SystemUtil; @@ -245,6 +246,17 @@ WorkManager.getInstance(getApplicationContext()).enqueue(gpsinfoWorkRequest); break; case Constant.ENTER_OR_EXIT_ITEM: + int type = 0; + int enter_status = -1; + try { + JSONObject rtkConfigUpdtea = new JSONObject(json); + type = rtkConfigUpdtea.getInt("type"); + enter_status = rtkConfigUpdtea.getInt("enter"); + String itemstr=ExamPlatformData.getInstance().getItemStatusStr(type); + ExamPlatformData.getInstance().getTTS().speak(itemstr+(enter_status==Constant.EXIT_CURRENT_ITEM?"缁撴潫":"寮�濮�")); + } catch (JSONException e) { + e.printStackTrace(); + } Data exam_enter_exitdata = new Data.Builder().putString(Constant.exam_enter_exitdata,json).build(); OneTimeWorkRequest examStatusWorker = new OneTimeWorkRequest.Builder(ExamStatusWoker.class).setInputData(exam_enter_exitdata).build(); WorkManager.getInstance(getApplicationContext()).enqueue(examStatusWorker); @@ -369,7 +381,7 @@ new Thread(new Runnable() { @Override public void run() { - String mapPath = ExamPlatformData.getInstance().getMapPath(); + final String mapPath = ExamPlatformData.getInstance().getMapPath(); if (!TextUtils.isEmpty(mapPath)){ MyLog.i("璋冪敤鏇存柊Map璺緞鍚庣殑鍦板浘"+mapPath); byte[] fileContent = FileUtil.readFile(mapPath); @@ -379,15 +391,34 @@ AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,str); }else{ MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�",mapPath)); + + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getAppContext(), "鏂囦欢锛�"+mapPath+"涓嶅瓨鍦�", Toast.LENGTH_SHORT).show(); + } + }); } }else{ MyLog.i("璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�"); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getAppContext(), "璇诲彇Assert鐩綍涓嬪垵濮嬪寲鐨勫湴鍥�", Toast.LENGTH_SHORT).show(); + } + }); StringBuffer buffer =FileUtil.readAssetTxtFile(getApplicationContext(),Constant.MAP); if (buffer != null){ AYSdk.getInstance().sendCmd(Constant.PUSH_MAP_INFO,buffer.toString()); }else{ MyLog.d(TAG,String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName())); + CThreadPoolExecutor.runOnMainThread(new Runnable() { + @Override + public void run() { + Toast.makeText(getAppContext(), String.format("鍦板浘妯″瀷鏈嫹鍏%s]鐩綍涓�", Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+getApplicationContext().getPackageName()), Toast.LENGTH_SHORT).show(); + } + }); } } diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java index ad36189..836677a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -10,6 +10,7 @@ import androidx.work.WorkManager; import com.anyun.exam.lib.MyLog; +import com.anyun.exam.lib.util.Speaker; import java.util.HashMap; import java.util.Random; @@ -33,6 +34,7 @@ public static final int DEV_NOT_LOGIN = 5; public static final int DEV_LOGIN = 6; private static HashMap<Integer,String> examPlatformStrs = new HashMap<>(); + private static HashMap<Integer,String> enter_exit_item_tts = new HashMap<>(); static { examPlatformStrs.put(TCP_DISCONNECT,"鏈繛鎺�"); examPlatformStrs.put(TCP_CONNECTED,"宸茶繛鎺�"); @@ -40,6 +42,18 @@ examPlatformStrs.put(DEV_REGISTERED,"宸叉敞鍐�"); examPlatformStrs.put(DEV_NOT_LOGIN,"鏈櫥褰�"); examPlatformStrs.put(DEV_LOGIN,"宸茬櫥褰�"); + +/*渚ф柟浣嶅仠杞� type = 3 + + 鍊掕溅鍏ュ簱 type = 1 + 涓婂潯璧锋 type = 2 + zhijiao type = 5*/ + + enter_exit_item_tts.put(1,"鍊掕溅鍏ュ簱"); + enter_exit_item_tts.put(2,"鍧¢亾瀹氱偣鍋滆溅鍜岃捣姝�"); + enter_exit_item_tts.put(3,"渚ф柟鍋滆溅"); + enter_exit_item_tts.put(4,"鏇茬嚎琛岄┒"); + enter_exit_item_tts.put(5,"鐩磋杞集"); } private static final String WORK_PLATFORM_STATUS = " work_platform"; @@ -47,6 +61,8 @@ private int examplatformStatus =1;//1-鏈繛鎺ワ紙tcp杩炴帴涓嶄笂锛� 3-鏈敞鍐岋紙璁惧娌℃湁娉ㄥ唽锛� 5-鏈櫥褰曪紙閴存潈鏈�氳繃锛� private String id;//韬唤璇� + + private Speaker speaker = null; private String ip; private int port; @@ -162,4 +178,36 @@ return examPlatformStrs.get(work_platform); } + + /** + * 杩涘叆閫�鍑烘煇涓満鍦扮殑鏂囧瓧 + * @param item + * @return + */ + public String getItemStatusStr(int item) { + if (item<1 || item>enter_exit_item_tts.size()){ + return "鏈煡椤圭洰"; + } + return enter_exit_item_tts.get(item); + } + + public Speaker getTTS(){ + if (speaker == null){ + throw new RuntimeException("璇峰厛鍒濆鍖朤TS,鍏堣皟鐢╥nitTTS"); + }else + return speaker; + } + + /** + * 鍒濆鍖杢ts + * @param context + */ + public void initTTS(Context context){ + if (speaker == null){ + + speaker = new Speaker(context); + } + } + + } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java index 1003371..fac164a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/NetWorkTrainFragment.java @@ -162,6 +162,7 @@ currTotalScore -=item_id; if (currTotalScore < Constant.PASSING_SCORE){ MyLog.i(TAG,"浣庝簬80锛屼笉鍚堟牸"); + ExamPlatformData.getInstance().getTTS().speak("鑰冭瘯涓嶅悎鏍�"); stopExam(); } MyLog.i(TAG,"鐩戞祴鍒版湁澶辫触椤圭洰鍔犲叆锛岄�氱煡UI鏇存柊棰滆壊"); @@ -248,6 +249,9 @@ if (hasSnEqulas(failedProj_selects)){ }else{ + ExamPlatformData.getInstance().getTTS().speak(failedProj_selects.get(i).getDeducting_reason()+( + failedProj_selects.get(i).getScore_deducting()==100?"涓嶅悎鏍�":"鎵�"+ + failedProj_selects.get(i).getScore_deducting()+"鍒�")); MyLog.i("娌℃湁鐩稿悓鐨剆n锛屽彂閫�"); sns.add(failedProj_selects.get(i).getSn()); jkMessage0203.timeBCD = failedProj_selects.get(i).getUtc(); @@ -334,7 +338,7 @@ private void initView(View view) { - view.findViewById(R.id.profile).setOnClickListener(this); + view.findViewById(R.id.iv_head).setOnClickListener(this); av_curve = view.findViewById(R.id.av3); av_park = view.findViewById(R.id.av2); av_podao = view.findViewById(R.id.av1); @@ -400,10 +404,12 @@ jkMessage0202.ID = ExamPlatformData.getInstance().getID(); jkMessage0202.exam_id = ExamPlatformData.getInstance().getExam_id(); MessageProcessor.getInstance().sendMessage(jkMessage0202); + ExamPlatformData.getInstance().getTTS().speak("寮�濮嬭�冭瘯"); break; case R.id.tv_stop: Toast.makeText(_mActivity, "缁撴潫鑰冭瘯", Toast.LENGTH_SHORT).show(); stopExam(); + break; case R.id.view_map: MapFragment mapFragment = findFragment(MapFragment.class); @@ -416,7 +422,7 @@ case R.id.btn_return: _mActivity.onBackPressed(); break; - case R.id.profile: + case R.id.iv_head: MyLog.i(TAG,"绛惧埌锛岃幏鍙栬韩浠借瘉鐗╃悊鍗″彿"); AYSdk.getInstance().sendCmd(Constant.READ_PHYSICAL_ID,""); //TODO 鑾峰緱鐗╃悊鍗″彿 鍙戦�丣KMessage0201缁欏钩鍙帮紝鑾峰彇濮撳悕銆佽韩浠借瘉銆乭ead_url @@ -445,6 +451,7 @@ iv_head.getDrawable().setLevel(0); OneTimeWorkRequest examStatusInitWork = OneTimeWorkRequest.from(ExamStatusInitWorker.class); WorkManager.getInstance(_mActivity).enqueue(examStatusInitWork); + ExamPlatformData.getInstance().getTTS().speak("缁撴潫鑰冭瘯"); sendExamJson(0); //TODO 鍙戦�丣KMessage0204缁欏钩鍙� 缁撴潫鑰冭瘯 JKMessage0204 jkMessage0204 = new JKMessage0204(); diff --git a/app/src/main/res/layout/layout_net_train_iii_item.xml b/app/src/main/res/layout/layout_net_train_iii_item.xml new file mode 100644 index 0000000..3aa79d3 --- /dev/null +++ b/app/src/main/res/layout/layout_net_train_iii_item.xml @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<TableLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:padding="5dp" + + android:gravity="bottom"> + + <TableRow android:layout_width="match_parent" + android:layout_height="wrap_content"> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/simulate_light_night"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/side_by_side"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/over_take"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/school_area"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/bus_area"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/start_vehicle"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/junction_left"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/junction_right"/> + + + + </TableRow> + <TableRow android:layout_width="match_parent" + android:layout_height="wrap_content"> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/crosswalk"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/straight_line"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/pull_over"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/night_driving"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/turn_around"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/add_subtract"/> + <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/by_crossing"/> <Button android:layout_height="wrap_content" + android:layout_width="wrap_content" + android:text="@string/lane_change"/> + + + + + </TableRow> + +</TableLayout> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f46b305..cf04d2f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -35,4 +35,20 @@ <string name="chesu">杞﹂�燂細</string> <string name="engine">杞�燂細</string> <string name="platform_status">鑰冭瘯骞冲彴锛�%1$s</string> + <string name="simulate_light_night">妯℃嫙澶滈棿鐏厜</string> + <string name="side_by_side">浼氳溅</string> + <string name="over_take">瓒呰溅</string> + <string name="school_area">閫氳繃瀛︽牎鍖哄煙</string> + <string name="bus_area">閫氳繃鍏叡姹借溅绔�</string> + <string name="start_vehicle">璧锋</string> + <string name="junction_left">璺彛宸﹁浆寮�</string> + <string name="junction_right">璺彛鍙宠浆寮�</string> + <string name="crosswalk">閫氳繃浜鸿妯亾</string> + <string name="straight_line">鐩寸嚎琛岄┒</string> + <string name="pull_over">闈犺竟鍋滆溅</string> + <string name="night_driving">澶滈棿琛岄┒</string> + <string name="turn_around">鎺夊ご</string> + <string name="add_subtract">鍔犲噺妗�</string> + <string name="by_crossing">閫氳繃璺彛</string> + <string name="lane_change">鍙樻洿杞﹂亾</string> </resources> -- Gitblit v1.8.0