From c73a6318cb54e1bd16f6f1f2e432c2ed0ab4f594 Mon Sep 17 00:00:00 2001 From: endian11 <Dana_Lee1016@126.com> Date: 星期一, 24 八月 2020 18:01:53 +0800 Subject: [PATCH] SharedPrefernce增加保存hashmap ;设置界面增加车辆模型、地图信息展示(名字、版本)和版本更新功能,点击之后进行http请求,请求完成后发送地图、车辆给移动站服务;设置界面信息展示增加TypeCount,展示地图简要信息 --- app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt | 166 ++++++++++++++++ app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java | 12 + app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java | 39 +++ app/src/main/res/values/strings.xml | 1 app/src/main/res/layout/map_car_info_update.xml | 40 ++++ app/src/main/java/safeluck/drive/evaluation/bean/BaseDataUIBean.java | 55 +++++ app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpCarRespBean.java | 18 + app/src/main/java/safeluck/drive/evaluation/adapter/BaseDataInfoAdapter.java | 106 +++++++++- app/src/main/java/safeluck/drive/evaluation/bean/CarInfoHead.kt | 8 app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt | 16 + app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRoadMapRsp.java | 18 + app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java | 58 +++++ app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpYardRsp.java | 18 + 13 files changed, 537 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt index 7501015..1b235ae 100644 --- a/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt +++ b/app/src/main/java/safeluck/drive/evaluation/DB/rtktb/RTKConfigUpdateWorker.kt @@ -19,7 +19,9 @@ import safeluck.drive.evaluation.DB.Constant import safeluck.drive.evaluation.DB.WorkRoomDataBase import safeluck.drive.evaluation.app +import safeluck.drive.evaluation.bean.BaseDataUIBean import safeluck.drive.evaluation.bean.ExamPlatformData +import safeluck.drive.evaluation.bean.MapInfoHead import safeluck.drive.evaluation.httpmodule.HttpCarRespBean import safeluck.drive.evaluation.httpmodule.HttpRequetBean import safeluck.drive.evaluation.httpmodule.HttpRoadMapRsp @@ -96,12 +98,18 @@ jsonObject1 = JSONObject(str) val result = jsonObject1!!.getBoolean("result") if (result) { + var mapInfoHead:MapInfoHead = MapInfoHead("","",BaseDataUIBean.TYPE_.car) + when(type){ "road" ->{ + mapInfoHead.type = BaseDataUIBean.TYPE_.road val map = gson.fromJson<HttpRoadMapRsp>(str, HttpRoadMapRsp::class.java) if (map.isResult) { if (map.data != null) { + mapInfoHead.version = map.data.version + if (map.data.map_json.type.equals("road")) { + mapInfoHead.str = map.data.map_json.name ExamPlatformData.getInstance().setNewRoadMapPath(Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.getPackageName() + "/" + fileName) CThreadPoolExecutor.runInBackground(Runnable { @@ -118,10 +126,13 @@ }} "yard" ->{ + mapInfoHead.type = BaseDataUIBean.TYPE_.yard val yard = gson.fromJson<HttpYardRsp>(str,HttpYardRsp::class.java) if (yard.isResult){ if (yard.data !=null){ + mapInfoHead.version = yard.data.version Log.i(TAG,"yard====") + mapInfoHead.str = yard.data.map_json.name ExamPlatformData.getInstance().setNewMapPath(Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.getPackageName() + "/"+fileName) CThreadPoolExecutor.runInBackground(Runnable{ @@ -134,10 +145,13 @@ } } else ->{ + mapInfoHead.type = BaseDataUIBean.TYPE_.car val car = gson.fromJson<HttpCarRespBean>(str,HttpCarRespBean::class.java) if (car.isResult){ if (car.data !=null){ + mapInfoHead.version = car.data.version + mapInfoHead.str = car.data.map_json.name ExamPlatformData.getInstance().carModelPath = Environment.getExternalStorageDirectory().absolutePath + "/" + applicationContext.getPackageName() + "/"+fileName @@ -153,7 +167,7 @@ } } } - + ExamPlatformData.getInstance().setMapHeadInfo(mapInfoHead) } else { // Toast.makeText(applicationContext, jsonObject1!!.getString("data"), Toast.LENGTH_SHORT).show() } diff --git a/app/src/main/java/safeluck/drive/evaluation/adapter/BaseDataInfoAdapter.java b/app/src/main/java/safeluck/drive/evaluation/adapter/BaseDataInfoAdapter.java index 4eb06aa..db42cd3 100644 --- a/app/src/main/java/safeluck/drive/evaluation/adapter/BaseDataInfoAdapter.java +++ b/app/src/main/java/safeluck/drive/evaluation/adapter/BaseDataInfoAdapter.java @@ -1,10 +1,12 @@ package safeluck.drive.evaluation.adapter; import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; +import android.widget.Button; import android.widget.TextView; import java.util.ArrayList; @@ -12,6 +14,7 @@ import safeluck.drive.evaluation.R; import safeluck.drive.evaluation.bean.BaseDataUIBean; +import safeluck.drive.evaluation.fragment.BaseDatasFragment; /** * MyApplication2 @@ -20,10 +23,11 @@ * All Rights Saved! Chongqing AnYun Tech co. LTD */ -public class BaseDataInfoAdapter extends BaseAdapter { - private List<BaseDataUIBean> persons = new ArrayList<>();//gps淇℃伅 +public class BaseDataInfoAdapter extends BaseAdapter implements View.OnClickListener { + private List<BaseDataUIBean> persons = new ArrayList<>(); private final static String TAG = "anyun_info"; private Context mContext; + private Callback mCallback; @Override public int getCount() { return persons.size(); @@ -35,26 +39,73 @@ } @Override + public int getViewTypeCount() { + return 2; + } + + @Override public long getItemId(int i) { return i; } @Override + public int getItemViewType(int position) { + if (persons.get(position).getType()==0){ + return 0; + }else{ + + return 1; + } + } + + @Override public View getView(int i, View view, ViewGroup viewGroup) { InfoHodler infoHodler = null; - if (view == null){ - view = LayoutInflater.from(mContext).inflate(R.layout.gps_info_item,null); - infoHodler = new InfoHodler(); - infoHodler.name = view.findViewById(R.id.text_check_info); - view.setTag(infoHodler); - }else{ - infoHodler = (InfoHodler) view.getTag(); + MapCarInfoHodler mapCarinfoHodler = null; + + switch (getItemViewType(i)){ + case 0: + if (view == null){ + view = LayoutInflater.from(mContext).inflate(R.layout.gps_info_item,null); + infoHodler = new InfoHodler(); + infoHodler.name = view.findViewById(R.id.text_check_info); + view.setTag(infoHodler); + }else{ + infoHodler = (InfoHodler) view.getTag(); + } + infoHodler.name.setText(getItem(i).getDes()); + infoHodler.name.setCompoundDrawablesWithIntrinsicBounds(mContext.getResources(). + getDrawable(getItem(i).getRes_id()),null,null,null); + infoHodler.name.setCompoundDrawablePadding(10); + break; + default: + Log.i(TAG,"Defalut"); + if (view == null){ + view = LayoutInflater.from(mContext).inflate(R.layout.map_car_info_update,null); + mapCarinfoHodler = new MapCarInfoHodler(); + mapCarinfoHodler.name = view.findViewById(R.id.tv_map_name); + mapCarinfoHodler.version = view.findViewById(R.id.tv_version); + mapCarinfoHodler.btn = view.findViewById(R.id.btn_update_map_car); + view.setTag(mapCarinfoHodler); + }else{ + mapCarinfoHodler = (MapCarInfoHodler) view.getTag(); + } + mapCarinfoHodler.btn.setOnClickListener(this); + mapCarinfoHodler.btn.setTag(i); + mapCarinfoHodler.name.setText(getItem(i).getDes()); + mapCarinfoHodler.name.setCompoundDrawablesWithIntrinsicBounds(mContext.getResources(). + getDrawable(getItem(i).getRes_id()),null,null,null); + mapCarinfoHodler.name.setCompoundDrawablePadding(10); + + mapCarinfoHodler.btn.setText(getItem(i).getBtn_txt()); + mapCarinfoHodler.version.setText(getItem(i).getVersion()); + + + break; } - infoHodler.name.setText(getItem(i).getDes()); - infoHodler.name.setCompoundDrawablesWithIntrinsicBounds(mContext.getResources(). - getDrawable(getItem(i).getRes_id()),null,null,null); - infoHodler.name.setCompoundDrawablePadding(10); + + return view; } @@ -71,6 +122,24 @@ notifyDataSetChanged();//鍒锋柊鐣岄潰 } + @Override + public void onClick(View v) { + if (mCallback != null){ + mCallback.click(v); + } + } + + public void setCallback(Callback call) { + this.mCallback = call; + } + + /** + * 鑷畾涔夋帴鍙o紝鐢ㄤ簬鍥炶皟鎸夐挳鐐瑰嚮浜嬩欢鍒癋ragment銆丄ctivity + */ + public interface Callback{ + void click(View view); + } + static class InfoHodler { @@ -81,5 +150,16 @@ } + static class MapCarInfoHodler { + + + public TextView name;//濮撳悕 + public TextView version;//濮撳悕 + public Button btn; + + + + + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/BaseDataUIBean.java b/app/src/main/java/safeluck/drive/evaluation/bean/BaseDataUIBean.java index 185680a..d01ca84 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/BaseDataUIBean.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/BaseDataUIBean.java @@ -19,12 +19,59 @@ public class BaseDataUIBean { private SpannableString des; + // 涓昏鏄彧鐢ㄤ簡涓�涓猼extview 琛ㄧずitem 锛岃�屽湴鍥惧拰杞﹁締妯″瀷闇�瑕佷竴涓寜閽紝鎵�浠ヨ窡鍗曠墖鏈哄崟鐙樉绀轰俊鎭笉涓�鏍凤紱 + private int type=0; + + //鏍囪杞︽ā鍨嬨�佸満鍦般�佽矾鑰冨湴鍥剧殑鐗堟湰 鏁村瀷 + private SpannableString version; + + private String btn_txt=""; + + public enum TYPE_{ + yard,road,car + } + + TYPE_ type_; + + + public String getBtn_txt() { + return btn_txt; + } + + public void setBtn_txt(String btn_txt) { + this.btn_txt = btn_txt; + } + @IdRes private int res_id; + + public SpannableString getVersion() { + return version; + } + + public void setVersion(SpannableString version) { + this.version = version; + } public BaseDataUIBean(SpannableString s, int res_id) { this.des = s; this.res_id = res_id; + } + public BaseDataUIBean(SpannableString s, int res_id,SpannableString ver,String btn_txt,int type,TYPE_ t) { + this.des = s; + this.res_id = res_id; + this.version = ver; + this.type = type; + this.btn_txt = btn_txt; + this.type_ = t; + } + + public TYPE_ getType_() { + return type_; + } + + public void setType_(TYPE_ type_) { + this.type_ = type_; } public SpannableString getDes() { @@ -42,4 +89,12 @@ public void setRes_id(int res_id) { this.res_id = res_id; } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/bean/CarInfoHead.kt b/app/src/main/java/safeluck/drive/evaluation/bean/CarInfoHead.kt new file mode 100644 index 0000000..ce8dc77 --- /dev/null +++ b/app/src/main/java/safeluck/drive/evaluation/bean/CarInfoHead.kt @@ -0,0 +1,8 @@ +package safeluck.drive.evaluation.bean + +/**DriveJudge + * Created by lzw on 2020/8/24. 15:24:15 + * 閭锛�632393724@qq.com + * All Rights Saved! Chongqing AnYun Tech co. LTD + */ +data class MapInfoHead(var version:String,var str:String,var type:BaseDataUIBean.TYPE_) \ No newline at end of file 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 d75cd9b..fd5442a 100644 --- a/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java +++ b/app/src/main/java/safeluck/drive/evaluation/bean/ExamPlatformData.java @@ -465,4 +465,16 @@ sign_mode = (int) SPUtils.get(app.getAppContext(),SPUtils.SIGN_MODE,0); return sign_mode; } + private HashMap<BaseDataUIBean.TYPE_,MapInfoHead> mapInfoHeads = new HashMap<>(); + + public HashMap<BaseDataUIBean.TYPE_, MapInfoHead> getMapInfoHeads() { + mapInfoHeads = SPUtils.getHashMap(app.getAppContext()); + return mapInfoHeads; + } + + public void setMapHeadInfo(MapInfoHead mapHeadInfo) { + + mapInfoHeads.put(mapHeadInfo.getType(),mapHeadInfo); + SPUtils.saveHashMap(mapInfoHeads,app.getAppContext()); + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java index cf2b582..6cb346b 100644 --- a/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java +++ b/app/src/main/java/safeluck/drive/evaluation/fragment/BaseDatasFragment.java @@ -40,7 +40,10 @@ import java.lang.reflect.Field; import java.nio.charset.Charset; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; import java.util.List; +import java.util.Map; import me.yokeyword.fragmentation.SupportFragment; import safeluck.drive.evaluation.BuildConfig; @@ -58,9 +61,11 @@ import safeluck.drive.evaluation.bean.BaseDataUIBean; import safeluck.drive.evaluation.bean.ExamPlatformData; import safeluck.drive.evaluation.bean.MCUInfo; +import safeluck.drive.evaluation.bean.MapInfoHead; import safeluck.drive.evaluation.cEventCenter.CEventCenter; import safeluck.drive.evaluation.cEventCenter.ICEventListener; import safeluck.drive.evaluation.util.CThreadPoolExecutor; +import safeluck.drive.evaluation.util.DataInitKt; import safeluck.drive.evaluation.util.FileUtil; /** @@ -71,7 +76,7 @@ * 閭锛�632393724@qq.com * All Rights Saved! Chongqing AnYun Tech co. LTD */ -public class BaseDatasFragment extends SupportFragment { +public class BaseDatasFragment extends SupportFragment implements BaseDataInfoAdapter.Callback { private static final String TAG = BaseDatasFragment.class.getSimpleName(); private Gson gson = new Gson(); @@ -129,6 +134,16 @@ setitemInfo("RTK骞冲彴鐘舵�� ", appStatus.getRtk_connect_status()==1?(appStatus.getRtk_login_code()==0?"宸茬櫥褰�":"鏈櫥褰�"):"鏈繛鎺�",R.mipmap.conn_status); setitemInfo("鑰冭瘯骞冲彴鐘舵�� ", ExamPlatformData.getInstance().getExamplatformStatusStr(ExamPlatformData.getInstance().getExamplatformStatus()),R.mipmap.conn_status); } + HashMap<BaseDataUIBean.TYPE_, MapInfoHead> hashMaps = ExamPlatformData.getInstance().getMapInfoHeads(); + Iterator<Map .Entry<BaseDataUIBean.TYPE_,MapInfoHead>> iterator = hashMaps.entrySet().iterator(); + while (iterator.hasNext()){ + Map.Entry<BaseDataUIBean.TYPE_,MapInfoHead>entry = iterator.next(); + Log.i(TAG,"key= " + entry.getKey() + " and value= " + entry.getValue()); + datas.add(new BaseDataUIBean(str2SpannableString(entry.getValue().getStr()),R.mipmap.province_id,str2FouregourdSpannableString(getResources().getString(R.string.mapversion)+entry.getValue().getVersion()), + entry.getKey()== BaseDataUIBean.TYPE_.car?"鏇存柊杞﹁締妯″瀷":(entry.getKey()== BaseDataUIBean.TYPE_.road?"鏇存柊閬撹矾鍦板浘":"鏇存柊鍦哄湴鍦板浘") + ,1, entry.getKey())); + } + gpsInfoAdapter.addAll(datas); } }); @@ -137,6 +152,13 @@ } } }; + + private SpannableString str2FouregourdSpannableString(String s) { + spannableString = new SpannableString(s); + spannableString.setSpan(new AbsoluteSizeSpan(28),0,s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#FFFFFF")),0,s.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + return spannableString; + } private void setitemInfo(String des, String str, int id){ versionDes=des; @@ -207,7 +229,19 @@ gpsInfoAdapter = new BaseDataInfoAdapter(_mActivity); lv.setAdapter(gpsInfoAdapter); + gpsInfoAdapter.setCallback(this); + + + } + + private SpannableString str2SpannableString(String str) { + spannableString = new SpannableString(str); + spannableString.setSpan(new AbsoluteSizeSpan(22),0,str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + spannableString.setSpan(new ForegroundColorSpan(Color.parseColor("#A8AAA7")),0,str.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + return spannableString; + } + @Override public void onAttach(Context context) { super.onAttach(context); @@ -226,4 +260,26 @@ ((MainActivity)_mActivity).viewtitle.setVisibility(View.GONE); ((MainActivity)_mActivity).btn_return.setVisibility(View.GONE); } + + @Override + public void click(View view) { + if (view != null){ + Log.i(TAG,"view="+(int)view.getTag()); + BaseDataUIBean.TYPE_ type = datas.get((int)view.getTag()).getType_(); + switch (type){ + case car: + Toast.makeText(_mActivity, "鏇存柊杞︽ā鍨�", Toast.LENGTH_SHORT).show(); + DataInitKt.getMap(ExamPlatformData.getInstance().getPhone(),"car"); + break; + case road: + Toast.makeText(_mActivity, "鏇存柊閬撹矾鍦板浘", Toast.LENGTH_SHORT).show(); + DataInitKt.getMap(ExamPlatformData.getInstance().getPhone(),"road"); + break; + case yard: + Toast.makeText(_mActivity, "鏇存柊鍦哄湴鍦板浘", Toast.LENGTH_SHORT).show(); + DataInitKt.getMap(ExamPlatformData.getInstance().getPhone(),"yard"); + break; + } + } + } } diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpCarRespBean.java b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpCarRespBean.java index 0ffe1cf..d2ab3f1 100644 --- a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpCarRespBean.java +++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpCarRespBean.java @@ -38,6 +38,8 @@ private String server; private String port; + private String version; + private String map_url; private MapJsonBean map_json; private String pzh; @@ -45,6 +47,22 @@ return server; } + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getMap_url() { + return map_url; + } + + public void setMap_url(String map_url) { + this.map_url = map_url; + } + public void setServer(String server) { this.server = server; } diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRoadMapRsp.java b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRoadMapRsp.java index ced6c5f..ef25dfe 100644 --- a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRoadMapRsp.java +++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpRoadMapRsp.java @@ -38,9 +38,27 @@ private String server; private String port; + private String version; + private String map_url; private MapJsonBean map_json; private String pzh; + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getMap_url() { + return map_url; + } + + public void setMap_url(String map_url) { + this.map_url = map_url; + } + public String getServer() { return server; } diff --git a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpYardRsp.java b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpYardRsp.java index 04c8620..348435b 100644 --- a/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpYardRsp.java +++ b/app/src/main/java/safeluck/drive/evaluation/httpmodule/HttpYardRsp.java @@ -40,9 +40,27 @@ private String server; private String port; + private String version; + private String map_url; private MapJsonBean map_json; private String pzh; + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } + + public String getMap_url() { + return map_url; + } + + public void setMap_url(String map_url) { + this.map_url = map_url; + } + public String getServer() { return server; } diff --git a/app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt b/app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt index 36b87e7..ca4620d 100644 --- a/app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt +++ b/app/src/main/java/safeluck/drive/evaluation/util/DataInit.kt @@ -1,6 +1,10 @@ package safeluck.drive.evaluation.util import android.content.Context +import android.os.Environment +import android.text.TextUtils +import android.util.Log +import android.widget.Toast import androidx.work.Data import androidx.work.ListenableWorker import com.anyun.exam.lib.AYSdk @@ -8,15 +12,24 @@ import com.google.gson.Gson import com.google.gson.reflect.TypeToken import com.google.gson.stream.JsonReader +import okhttp3.ResponseBody import org.json.JSONException import org.json.JSONObject +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response import safeluck.drive.evaluation.Constant import safeluck.drive.evaluation.DB.WorkRoomDataBase import safeluck.drive.evaluation.DB.rtktb.RTKConfig import safeluck.drive.evaluation.DB.signalConfigdb.SingalConfig -import safeluck.drive.evaluation.bean.ExamPlatformData -import safeluck.drive.evaluation.bean.SignalConfigRemote -import safeluck.drive.evaluation.bean.SimulateNightBean +import safeluck.drive.evaluation.app +import safeluck.drive.evaluation.bean.* +import safeluck.drive.evaluation.httpmodule.HttpCarRespBean +import safeluck.drive.evaluation.httpmodule.HttpRequetBean +import safeluck.drive.evaluation.httpmodule.HttpRoadMapRsp +import safeluck.drive.evaluation.httpmodule.HttpYardRsp +import safeluck.drive.evaluation.httpmodule.RetrofitCreator.Companion.getRestService +import safeluck.drive.evaluation.platformMessage.PlatFormConstant import safeluck.drive.evaluation.worker.MCUUpgradeWorker import java.io.IOException import java.io.InputStreamReader @@ -205,3 +218,150 @@ } return false } + + + + + fun getMap(sn: String, type: String){ + lateinit var jsonObject1 :JSONObject + lateinit var fileName :String + when(type){ + "road" -> fileName = safeluck.drive.evaluation.Constant.ROAD_MAP + "yard" -> fileName = safeluck.drive.evaluation.Constant.MAP + else -> fileName = safeluck.drive.evaluation.Constant.VEHICLE + } + getRestService().getMapsAndVehicleModel(HttpRequetBean(sn, type)).enqueue(object : Callback<ResponseBody> { + override fun onFailure(call: Call<ResponseBody>, t: Throwable) { + MyLog.i(PlatFormConstant.HTTPTAG,t.localizedMessage) + } + + override fun onResponse(call: Call<ResponseBody>, response: Response<ResponseBody>) { + var str: String = response.body()!!.string() + MyLog.i(PlatFormConstant.HTTPTAG,str) + jsonObject1 = JSONObject(str) + val result = jsonObject1!!.getBoolean("result") + if (result) { + var mapInfoHead: MapInfoHead = MapInfoHead("","", BaseDataUIBean.TYPE_.car) + + when(type){ + "road" ->{ + mapInfoHead.type = BaseDataUIBean.TYPE_.road + val map = gson.fromJson<HttpRoadMapRsp>(str, HttpRoadMapRsp::class.java) + if (map.isResult) { + if (map.data != null) { + mapInfoHead.version = map.data.version + + if (map.data.map_json.type.equals("road")) { + mapInfoHead.str = map.data.map_json.name + ExamPlatformData.getInstance().setNewRoadMapPath(Environment.getExternalStorageDirectory().absolutePath + "/" + + app.getAppContext().getPackageName() + "/" + fileName) + CThreadPoolExecutor.runInBackground(Runnable { + str = gson.toJson(map.data.map_json) + MyLog.i(PlatFormConstant.HTTPTAG,"绉戜笁閬撹矾鍦板浘淇濆瓨鎴愬姛") + FileUtil.writeTxtFileToSD(app.getAppContext(), fileName, str, "") +// sendRoadMapInfo() + }) + } + + + } + + + }} + "yard" ->{ + mapInfoHead.type = BaseDataUIBean.TYPE_.yard + val yard = gson.fromJson<HttpYardRsp>(str,HttpYardRsp::class.java) + if (yard.isResult){ + if (yard.data !=null){ + mapInfoHead.version = yard.data.version + mapInfoHead.str = yard.data.map_json.name + ExamPlatformData.getInstance().setNewMapPath(Environment.getExternalStorageDirectory().absolutePath + "/" + + app.getAppContext().getPackageName() + "/"+fileName) + CThreadPoolExecutor.runInBackground(Runnable{ + MyLog.i(PlatFormConstant.HTTPTAG,"绉戜笁鍦哄湴鍦板浘淇濆瓨鎴愬姛") + str = gson.toJson(yard.data.map_json) + FileUtil.writeTxtFileToSD(app.getAppContext(),fileName,str,"") + sendMapInfo() + }) + } + } + } + else ->{ + mapInfoHead.type = BaseDataUIBean.TYPE_.car + val car = gson.fromJson<HttpCarRespBean>(str,HttpCarRespBean::class.java) + + if (car.isResult){ + if (car.data !=null){ + mapInfoHead.version = car.data.version + mapInfoHead.str = car.data.map_json.name + ExamPlatformData.getInstance().carModelPath = Environment.getExternalStorageDirectory().absolutePath + "/" + + app.getAppContext().getPackageName() + "/"+fileName + +// Log.i(TAG, "瑙f瀽涔嬪悗鐨勮溅妯″瀷=$str") + CThreadPoolExecutor.runInBackground(Runnable{ + str = gson.toJson(car.data.map_json) + MyLog.i(PlatFormConstant.HTTPTAG,"杞﹁締妯″瀷淇濆瓨鎴愬姛") + FileUtil.writeTxtFileToSD(app.getAppContext(),fileName,str,"") + sendVehicleInfo() + }) + + } + } + } + } + ExamPlatformData.getInstance().setMapHeadInfo(mapInfoHead) + } else { +// Toast.makeText(applicationContext, jsonObject1!!.getString("data"), Toast.LENGTH_SHORT).show() + } + } + }) + +} + +private fun sendMapInfo(){ + val mapPath = ExamPlatformData.getInstance().mapPath + + + if (!TextUtils.isEmpty(mapPath)) { + MyLog.i("鏇存柊Map鐨勫湴鍥�$mapPath") + val fileContent = FileUtil.readFile(mapPath) + if (fileContent != null) { + val str = String(fileContent) + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_MAP_INFO, str) + } else { + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", mapPath)) + CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), "鏂囦欢锛�" + mapPath + "涓嶅瓨鍦�", Toast.LENGTH_SHORT).show() } + } + } +} + +private fun sendVehicleInfo(){ + val carPath = ExamPlatformData.getInstance().carModelPath + if (!TextUtils.isEmpty(carPath)) { + MyLog.i("鏇存柊鍚庣殑Car妯″瀷$carPath") + val bytes = FileUtil.readFile(carPath) + if (bytes != null) { + val str = String(bytes) + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_VECHILE_PROFILE, str) + } else { + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", carPath)) + } + } +} +private fun sendRoadMapInfo(){ + val roadmapPath = ExamPlatformData.getInstance().roadMapPath + + if (!TextUtils.isEmpty(roadmapPath)) { + MyLog.i("鏇存柊RoadMap鍦板浘$roadmapPath") + val fileContent = FileUtil.readFile(roadmapPath) + if (fileContent != null) { + val str = String(fileContent) + AYSdk.getInstance().sendCmd(safeluck.drive.evaluation.Constant.PUSH_ROAD_MAP_INFO, str) + } else { + MyLog.i(String.format("鏂囦欢:%s涓嶅瓨鍦�", roadmapPath)) + CThreadPoolExecutor.runOnMainThread { Toast.makeText(app.getAppContext(), "鏂囦欢锛�" + roadmapPath + "涓嶅瓨鍦�", Toast.LENGTH_SHORT).show() } + } + } else { + + } +} diff --git a/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java b/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java index f56ef46..452fb6b 100644 --- a/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java +++ b/app/src/main/java/safeluck/drive/evaluation/util/SPUtils.java @@ -4,10 +4,18 @@ import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.lang.reflect.Type; +import java.util.HashMap; import java.util.Map; import android.content.Context; import android.content.SharedPreferences; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; + +import safeluck.drive.evaluation.bean.BaseDataUIBean; +import safeluck.drive.evaluation.bean.MapInfoHead; public class SPUtils { @@ -27,6 +35,37 @@ public static final String Coach_SIGN_STATUS = "coach_sign_"; public static final String SIGN_MODE = "sign_mode"; public static final String EXAM_ID = "exam_id"; + //灏� HashMap 鐢╯p瀛樺偍璧锋潵 + public static void saveHashMap(HashMap<BaseDataUIBean.TYPE_,MapInfoHead> map, Context context){ + + Gson gson = new Gson(); + String json = gson.toJson(map); + + //姝ラ1锛氬垱寤轰竴涓猄haredPreferences瀵硅薄 + SharedPreferences sharedPreferences= context.getSharedPreferences("config", Context.MODE_PRIVATE); + //姝ラ2锛� 瀹炰緥鍖朣haredPreferences.Editor瀵硅薄 + SharedPreferences.Editor editor = sharedPreferences.edit(); + //姝ラ3锛氬皢鑾峰彇杩囨潵鐨勫�兼斁鍏ユ枃浠� + editor.putString("config",json); + editor.commit(); + + + } + + + //灏唈son鏍煎紡鐨勫瓧绗︿覆浠巗p涓彇鍑烘潵杞寲涓篽ashMap + public static HashMap<BaseDataUIBean.TYPE_, MapInfoHead> getHashMap(Context context){ + + SharedPreferences sharedPreferences=context. getSharedPreferences("config", Context .MODE_PRIVATE); + String json =sharedPreferences.getString("config",""); + HashMap<BaseDataUIBean.TYPE_,MapInfoHead> map = null; + + Type type = new TypeToken<HashMap<BaseDataUIBean.TYPE_, MapInfoHead>>(){}.getType(); + Gson gson = new Gson(); + map = gson.fromJson(json, type); + + return map; + } /** * 淇濆瓨鏁版嵁鐨勬柟娉曪紝鎴戜滑闇�瑕佹嬁鍒颁繚瀛樻暟鎹殑鍏蜂綋绫诲瀷锛岀劧鍚庢牴鎹被鍨嬭皟鐢ㄤ笉鍚岀殑淇濆瓨鏂规硶 diff --git a/app/src/main/res/layout/map_car_info_update.xml b/app/src/main/res/layout/map_car_info_update.xml new file mode 100644 index 0000000..95726e9 --- /dev/null +++ b/app/src/main/res/layout/map_car_info_update.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center_horizontal"> + + <TextView + android:id="@+id/tv_map_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="娑櫟浜ら�氶┚鏍�" + android:layout_weight="3" + android:drawablePadding="@dimen/ui_margin_5dp" + android:paddingStart="?android:attr/listPreferredItemPaddingStart" + android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:drawableLeft="@mipmap/auto_check_status" + android:textColor="@android:color/white" +/> + + <TextView + android:id="@+id/tv_version" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/mapversion" + android:layout_weight="1" + android:textColor="@android:color/white" + /> + + <Button + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="鏇存柊杞﹁締妯″瀷" + android:textColor="@android:color/white" + android:background="@drawable/bg_rgb_dlg" + android:layout_weight="2" + android:id="@+id/btn_update_map_car" + /> +</LinearLayout> \ 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 87f2c9f..50efd62 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -52,6 +52,7 @@ <string name="by_crossing">閫氳繃璺彛</string> <string name="lane_change">鍙樻洿杞﹂亾</string> <string name="simulate_light_tip_start">涓嬮潰灏嗚繘琛屾ā鎷熷闂磋椹跺満鏅伅鍏変娇鐢ㄧ殑鑰冭瘯锛岃鎸夎闊虫寚浠ゅ湪5绉掑唴鍋氬嚭鐩稿簲鐨勭伅鍏夋搷浣�</string> + <string name="mapversion">鐗堟湰锛歏</string> <array name="simulate_light_tips"> <item>涓嬮潰灏嗚繘琛屾ā鎷熷闂磋椹跺満鏅伅鍏変娇鐢ㄧ殑鑰冭瘯锛岃鎸夎闊虫寚浠ゅ湪5绉掑唴鍋氬嚭鐩稿簲鐨勭伅鍏夋搷浣�</item> <item>妯℃嫙澶滈棿鑰冭瘯瀹屾垚璇峰叧闂墍鏈夌伅鍏夛紝璇疯捣姝ョ户缁畬鎴愯�冭瘯</item> -- Gitblit v1.8.0