diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/model/CheckItemInfo.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/model/CheckItemInfo.java index 049d0ce151..19773ee321 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/model/CheckItemInfo.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/model/CheckItemInfo.java @@ -126,6 +126,11 @@ public class CheckItemInfo implements Serializable { int ITEM_TYPE_CHECK_LIST = 1; int ITEM_TYPE_CHECK_IMAGE = 2; } + + public interface CheckInfoStyle { + String CHECK_INFO_STYLE_DEVICES = "devices"; + String CHECK_INFO_STYLE_SOFT = "soft"; + } } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java index 3dfab31efe..0eb691f2df 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/net/CheckResultData.java @@ -40,8 +40,8 @@ public class CheckResultData extends BaseData { public static class Data { private Vehicle vehicle; - private List soft; - private List devices; + private List soft; + private List devices; private Integer deviceState = 1;//硬件状态 private Integer softState = 0;//系统(软件)状态 @@ -53,19 +53,19 @@ public class CheckResultData extends BaseData { this.vehicle = vehicle; } - public List getSoft() { + public List getSoft() { return soft; } - public void setSoft(List soft) { + public void setSoft(List soft) { this.soft = soft; } - public List getDevices() { + public List getDevices() { return devices; } - public void setDevices(List devices) { + public void setDevices(List devices) { this.devices = devices; } @@ -236,10 +236,10 @@ public class CheckResultData extends BaseData { } } - public static class SoftItem { + public static class CheckListItem { private String name; private String stateValue; - private List items; + private List items; public String getName() { return name; @@ -257,11 +257,11 @@ public class CheckResultData extends BaseData { this.stateValue = stateValue; } - public List getItems() { + public List getItems() { return items; } - public void setItems(List items) { + public void setItems(List items) { this.items = items; } @@ -275,83 +275,4 @@ public class CheckResultData extends BaseData { } } - public static class DevicesItem { - private String name; - private String stateValue; - private ArrayList items; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Object getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public ArrayList getItems() { - return items; - } - - public void setItems(ArrayList items) { - this.items = items; - } - - @Override - public String toString() { - return "devices{" + - "name='" + name + '\'' + - ", stateValue=" + stateValue + - ", items=" + items + - '}'; - } - } - - - public static class ItemClass { - private String name; - private String stateValue; - private ArrayList items; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public Object getStateValue() { - return stateValue; - } - - public void setStateValue(String stateValue) { - this.stateValue = stateValue; - } - - public ArrayList getItems() { - return items; - } - - public void setItems(ArrayList items) { - this.items = items; - } - - @Override - public String toString() { - return "softItem{" + - "name='" + name + '\'' + - ", stateValue=" + stateValue + - ", items=" + items + - '}'; - } - } - } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java index 71530157c3..05d8978cbb 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckActivity.java @@ -30,6 +30,7 @@ import com.mogo.eagle.core.function.check.R; import com.mogo.eagle.core.function.check.model.CheckItemInfo; import com.mogo.eagle.core.function.check.net.CheckApiServiceFactory; import com.mogo.eagle.core.function.check.net.CheckResultData; +import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.module.common.view.ImageViewClipBounds; import com.mogo.module.common.view.SpacesItemDecoration; import com.mogo.module.service.receiver.MogoReceiver; @@ -99,7 +100,7 @@ public class CheckActivity extends AppCompatActivity { finish(); }); animation(); - checkMonitor(); + loadDetail(); mRecyclerView = findViewById(R.id.check_list); CheckLinearLayout linearLayoutManager = new CheckLinearLayout(this, CheckLinearLayout.VERTICAL, false); @@ -131,15 +132,21 @@ public class CheckActivity extends AppCompatActivity { public void onSuccess(CheckResultData o) { super.onSuccess(o); Log.d(TAG, "车辆自检结果是:" + o.toString()); - if (o != null){ - mCheckAdapter.mCheckResultData = o; - mCheckAdapter.notifyDataSetChanged(); - } - if (((CheckResultData) o).getData().getVehicle().getState() == 1) { - CallerCheckManager.updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, true); - } else { - CallerCheckManager.updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, false); - } + ThreadUtils.runOnUiThread(new Runnable() { + @Override + public void run() { + if (o != null && mCheckAdapter != null) { + mCheckAdapter.mCheckResultData = o; + mCheckAdapter.notifyDataSetChanged(); + } + + if (((CheckResultData) o).getData().getVehicle().getState() == 1) { + CallerCheckManager.updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, true); + } else { + CallerCheckManager.updateMonitoringStatus(MogoReceiver.ACTION_CHECK_VEHICLE_MONITORING, false); + } + } + }); } @Override diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java index 7d2805d48e..7a0d5ef96f 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckAdapter.java @@ -125,7 +125,7 @@ public class CheckAdapter extends RecyclerView.Adapter if (mCheckInfoListDialog != null){ mCheckInfoListDialog.dismiss(); } - mCheckInfoListDialog = new CheckInfoListDialog(mContext, "硬件自检结果", mCheckResultData); + mCheckInfoListDialog = new CheckInfoListDialog(mContext, CheckItemInfo.CheckInfoStyle.CHECK_INFO_STYLE_DEVICES, mCheckResultData); mCheckInfoListDialog.show(); }); @@ -142,7 +142,10 @@ public class CheckAdapter extends RecyclerView.Adapter } ((CheckListViewHolder) holder).iconAuto.setOnClickListener(v -> { Log.d(TAG, "系统检测结果:"); - mCheckInfoListDialog = new CheckInfoListDialog(mContext, "系统自检结果", mCheckResultData); + if (mCheckInfoListDialog != null){ + mCheckInfoListDialog.dismiss(); + } + mCheckInfoListDialog = new CheckInfoListDialog(mContext, CheckItemInfo.CheckInfoStyle.CHECK_INFO_STYLE_SOFT, mCheckResultData); mCheckInfoListDialog.show(); }); } diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java index 67343ab341..489b7aab63 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoAdapter.java @@ -1,6 +1,7 @@ package com.mogo.eagle.core.function.check.view; import android.content.Context; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -11,9 +12,11 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.mogo.eagle.core.function.check.R; +import com.mogo.eagle.core.function.check.model.CheckItemInfo; import com.mogo.eagle.core.function.check.net.CheckResultData; -import org.w3c.dom.Text; +import java.util.ArrayList; +import java.util.List; /** * @author liujing @@ -21,12 +24,16 @@ import org.w3c.dom.Text; * @since: 9/23/21 */ public class CheckInfoAdapter extends RecyclerView.Adapter { + private static final String TAG = "CheckInfoAdapter"; LayoutInflater mLayoutInflater; private Context mContext; private CheckResultData mCheckResultData; + private String mStyle; + private List result = new ArrayList<>(); - public CheckInfoAdapter(Context context, CheckResultData checkResultData) { + public CheckInfoAdapter(Context context, String style, CheckResultData checkResultData) { mContext = context; + mStyle = style; mCheckResultData = checkResultData; mLayoutInflater = LayoutInflater.from(context); } @@ -50,14 +57,62 @@ public class CheckInfoAdapter extends RecyclerView.Adapter { ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.GONE); ((CheckInfoViewHolder) holder).mTextView.setText("运行状态"); } else { - + try { + if ((position - 4) < result.size()) { + CheckResultData.CheckListItem item = (CheckResultData.CheckListItem) result.get(position - 4); + if (isEven(position) == true) {//偶数隐藏图片显示检测指标 + ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.GONE); + ((CheckInfoViewHolder) holder).mTextView.setText(item.getName()); + } else {//奇数显示图片和检测指标结果 + ((CheckInfoViewHolder) holder).checkIcon.setVisibility(View.VISIBLE); + String state = (String) item.getStateValue(); + if (state.equals("1")) { + ((CheckInfoViewHolder) holder).mTextView.setText("正常"); + ((CheckInfoViewHolder) holder).checkIcon.setImageResource(R.drawable.check_right); + } else if ((state.equals("0"))) { + ((CheckInfoViewHolder) holder).mTextView.setText("异常"); + ((CheckInfoViewHolder) holder).checkIcon.setImageResource(R.drawable.check_wrong); + } else { + ((CheckInfoViewHolder) holder).mTextView.setText(state); + } + } + } + } catch (Exception e) { + e.printStackTrace(); + } } } + public boolean isEven(int position) { + if (position % 2 == 0) { + System.out.println("偶数"); + return true; + } else { + return false; + } + } + @Override public int getItemCount() { - return 10; + List checkListResult = new ArrayList(); + try { + if (mStyle.equals(CheckItemInfo.CheckInfoStyle.CHECK_INFO_STYLE_DEVICES)) { + checkListResult = mCheckResultData.getData().getDevices(); + } else { + checkListResult = mCheckResultData.getData().getSoft(); + } + for (CheckResultData.CheckListItem item : checkListResult) { + result.addAll(checkListResult); + if (item.getItems() != null) { + result.addAll(item.getItems()); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + Log.d(TAG, "getItemCount 检测指标结果值===" + result.toString()); + return result.size() + 4; } public class CheckInfoViewHolder extends RecyclerView.ViewHolder { diff --git a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java index 4d0e1bb028..74fcf58122 100644 --- a/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java +++ b/core/function-impl/mogo-core-function-check/src/main/java/com/mogo/eagle/core/function/check/view/CheckInfoListDialog.java @@ -9,12 +9,13 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.mogo.eagle.core.function.check.R; +import com.mogo.eagle.core.function.check.model.CheckItemInfo; import com.mogo.eagle.core.function.check.net.CheckResultData; import com.mogo.module.common.dialog.BaseFloatDialog; /** * @author liujing - * @description 描述 + * @description 检测指标详情弹框 * @since: 9/22/21 */ public class CheckInfoListDialog extends BaseFloatDialog { @@ -23,14 +24,14 @@ public class CheckInfoListDialog extends BaseFloatDialog { private Context mContext; private TextView titleView; private int span; - private String mTitle; + private String mStyle; private CheckResultData mCheckResultData; - public CheckInfoListDialog(@NonNull Context context, String title,CheckResultData checkResultData) { + public CheckInfoListDialog(@NonNull Context context, String style, CheckResultData checkResultData) { super(context); mContext = context; - mTitle = title; + mStyle = style; mCheckResultData = checkResultData; initView(); } @@ -43,7 +44,11 @@ public class CheckInfoListDialog extends BaseFloatDialog { setContentView(R.layout.check_info_list); mRecyclerView = findViewById(R.id.check_list_recycler); titleView = findViewById(R.id.check_info_title); - titleView.setText(mTitle); + if (mStyle.equals(CheckItemInfo.CheckInfoStyle.CHECK_INFO_STYLE_DEVICES)) { + titleView.setText("硬件自检结果"); + } else { + titleView.setText("系统自检结果"); + } //网格布局 GridLayoutManager layoutManager = new GridLayoutManager(mContext, 4); mRecyclerView.setLayoutManager(layoutManager); @@ -55,7 +60,7 @@ public class CheckInfoListDialog extends BaseFloatDialog { } catch (Exception e) { e.printStackTrace(); } - mRecyclerView.setAdapter(new CheckInfoAdapter(mContext, mCheckResultData)); + mRecyclerView.setAdapter(new CheckInfoAdapter(mContext, mStyle, mCheckResultData)); //关闭按钮 findViewById(R.id.cancel_info_list_button).setOnClickListener(v -> { cancel(); diff --git a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml index decaf5275f..c67735a22a 100644 --- a/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml +++ b/core/function-impl/mogo-core-function-check/src/main/res/layout/check_info_adapter.xml @@ -25,8 +25,11 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="正常" + android:gravity="center" + android:textAlignment="center" android:textColor="#fff" android:textSize="@dimen/dp_38" + android:layout_marginLeft="@dimen/dp_27" app:layout_constraintLeft_toRightOf="@+id/info_check_icon" />