diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6b6f98b..ac81e78 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,7 +16,7 @@ applyTypes) { + // 初始化 PopupWindow + PopupWindow popupWindow = new PopupWindow(getContext()); + // 加载自定义布局 + DropdownLayout4Binding contentViewBinding = DropdownLayout4Binding.inflate(getLayoutInflater()); + View contentView = contentViewBinding.getRoot(); + // 设置 PopupWindow 的宽高 + popupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT); + popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.all_7_fff_bg)); + popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); + // 设置 PopupWindow 显示的位置(相对于按钮) + popupWindow.showAtLocation(binding.typeGroup, Gravity.NO_GRAVITY, 0, 0); + binding.tvApplySearchTitle.setText(applyTypes.get(0).getDictLabel()); + for (ApplyType item : applyTypes) { + TextView textView = new TextView(getContext()); + textView.setWidth(ViewGroup.LayoutParams.MATCH_PARENT); + textView.setHeight(UiUtils.dp2Px(40)); + textView.setGravity(Gravity.CENTER_VERTICAL); + textView.setTextSize(16); + textView.setBackgroundResource(R.color.white); + textView.setText(item.getDictLabel()); + contentViewBinding.llApplyTypeGroup.addView(textView); + textView.setOnClickListener(view -> { + // 处理菜单项 1 的点击事件 + binding.tvApplySearchTitle.setText(item.getDictLabel()); + popupWindow.dismiss(); // 关闭 PopupWindow + }); + } + // 将自定义布局设置为 PopupWindow 的内容视图 + popupWindow.setContentView(contentView); + // 设置 PopupWindow 的焦点 + popupWindow.setFocusable(true); + popupWindow.setOutsideTouchable(true); // 设置点击 PopupWindow 外部区域使其消失 + binding.typeGroup.setOnClickListener(view -> { + popupWindow.setWidth(binding.typeGroup.getWidth()); + popupWindow.showAsDropDown(binding.typeGroup); + }); + binding.includeApply.tvQueryName.setOnClickListener(view -> { + + }); + binding.includeApply.tvQueryOrg.setOnClickListener(view -> { + + }); + } + + public void setPopupWindow2(List applyDept) { + + } + + public void setPopupWindow3(List applyPeople) { + + } + + public void loadingShow() { + if (getActivity() != null) { + getActivity().runOnUiThread(() -> binding.rlLoading.setVisibility(View.VISIBLE)); + } + } + + public void loadingNone() { + if (getActivity() != null) { + getActivity().runOnUiThread(() -> binding.rlLoading.setVisibility(View.GONE)); + } + } + + public void showDialog() { + if (getContext() == null) return; + AlertDialog.Builder builder = new AlertDialog.Builder(getContext()); + DialogSelectorBinding selectorBinding = DialogSelectorBinding.inflate(getLayoutInflater()); + View dialogView = selectorBinding.getRoot(); + RecyclerView recyclerView = selectorBinding.rcv; + recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); + List items = Arrays.asList("Item 1", "Item 2", "Item 3", "Item 4"); + BaseQuickAdapter adapter = new BaseQuickAdapter(R.layout.item_dialog_selector, items) { + @Override + protected void convert(@NonNull BaseViewHolder baseViewHolder, String s) { + baseViewHolder.setText(R.id.tv_item_text, s); + } + }; + recyclerView.setAdapter(adapter); + adapter.setOnItemClickListener((adapter1, view, position) -> { + + }); + builder.setView(dialogView); + AlertDialog dialog = builder.create(); + dialog.show(); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/police/policedatasystem/apply/model/ApplyDept.java b/app/src/main/java/com/police/policedatasystem/apply/model/ApplyDept.java new file mode 100644 index 0000000..f1a1e01 --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/apply/model/ApplyDept.java @@ -0,0 +1,72 @@ +package com.police.policedatasystem.apply.model; + +import java.io.Serializable; + +/** + * {\"checked\":false,\"id\":\"220000000000\",\"name\":\"吉林省公安厅\",\"nocheck\":false,\"open\":false,\"pId\":\"0\",\"title\":\"吉林省公安厅\"} + */ +public class ApplyDept implements Serializable { + private boolean checked; + private String id; + private String name; + private String pId; + private String title; + private boolean open; + private boolean nocheck; + + public boolean isChecked() { + return checked; + } + + public void setChecked(boolean checked) { + this.checked = checked; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getpId() { + return pId; + } + + public void setpId(String pId) { + this.pId = pId; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public boolean isOpen() { + return open; + } + + public void setOpen(boolean open) { + this.open = open; + } + + public boolean isNocheck() { + return nocheck; + } + + public void setNocheck(boolean nocheck) { + this.nocheck = nocheck; + } +} diff --git a/app/src/main/java/com/police/policedatasystem/apply/model/ApplyPerson.java b/app/src/main/java/com/police/policedatasystem/apply/model/ApplyPerson.java new file mode 100644 index 0000000..0848231 --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/apply/model/ApplyPerson.java @@ -0,0 +1,24 @@ +package com.police.policedatasystem.apply.model; + +import java.io.Serializable; + +public class ApplyPerson implements Serializable { + private String loginName; + private String userName; + + public String getLoginName() { + return loginName; + } + + public void setLoginName(String loginName) { + this.loginName = loginName; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } +} diff --git a/app/src/main/java/com/police/policedatasystem/apply/model/ApplyType.java b/app/src/main/java/com/police/policedatasystem/apply/model/ApplyType.java new file mode 100644 index 0000000..8225685 --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/apply/model/ApplyType.java @@ -0,0 +1,33 @@ +package com.police.policedatasystem.apply.model; + +import java.io.Serializable; + +public class ApplyType implements Serializable { + private String dictLabel; + private String dictSort; + private String dictValue; + + public String getDictLabel() { + return dictLabel; + } + + public void setDictLabel(String dictLabel) { + this.dictLabel = dictLabel; + } + + public String getDictSort() { + return dictSort; + } + + public void setDictSort(String dictSort) { + this.dictSort = dictSort; + } + + public String getDictValue() { + return dictValue; + } + + public void setDictValue(String dictValue) { + this.dictValue = dictValue; + } +} diff --git a/app/src/main/java/com/police/policedatasystem/apply/viewmodel/ApplyViewModel.java b/app/src/main/java/com/police/policedatasystem/apply/viewmodel/ApplyViewModel.java new file mode 100644 index 0000000..f2b9c34 --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/apply/viewmodel/ApplyViewModel.java @@ -0,0 +1,78 @@ +package com.police.policedatasystem.apply.viewmodel; + +import androidx.annotation.NonNull; + +import com.police.policedatasystem.apply.fragment.ApplyFragment; +import com.police.policedatasystem.apply.model.ApplyDept; +import com.police.policedatasystem.apply.model.ApplyType; +import com.police.policedatasystem.http.CustomCallBack; +import com.police.policedatasystem.indexActivity; +import com.police.policedatasystem.util.UiUtils; + +import java.util.Comparator; +import java.util.List; + +import okhttp3.Call; + +public class ApplyViewModel { + private final ApplyFragment fragment; + public indexActivity activity; + + public ApplyViewModel(ApplyFragment fragment, indexActivity activity) { + this.fragment = fragment; + this.activity = activity; + } + + public void getApplyType() { + fragment.loadingShow(); + activity.requestClient.getApplyType(new CustomCallBack>() { + @Override + public void onError(@NonNull Call call, @NonNull Exception e) { + UiUtils.toast(e.getMessage()); + fragment.loadingNone(); + } + + @Override + public void onSuccess(List value) { + value.sort(Comparator.comparing(ApplyType::getDictSort)); + fragment.setPopupWindow(value); + fragment.loadingNone(); + } + }); + } + + public void getApplyDept() { + fragment.loadingShow(); + activity.requestClient.getApplyDept(new CustomCallBack>() { + @Override + public void onError(@NonNull Call call, @NonNull Exception e) { + UiUtils.toast(e.getMessage()); + fragment.loadingNone(); + } + + @Override + public void onSuccess(List value) { +// value.sort(Comparator.comparing(ApplyDept::getDictSort)); + fragment.setPopupWindow2(value); + fragment.loadingNone(); + } + }); + } + public void getApplyPerson() { + fragment.loadingShow(); + activity.requestClient.getApplyDept(new CustomCallBack>() { + @Override + public void onError(@NonNull Call call, @NonNull Exception e) { + UiUtils.toast(e.getMessage()); + fragment.loadingNone(); + } + + @Override + public void onSuccess(List value) { +// value.sort(Comparator.comparing(ApplyDept::getDictSort)); + fragment.setPopupWindow2(value); + fragment.loadingNone(); + } + }); + } +} diff --git a/app/src/main/java/com/police/policedatasystem/data/activity/KeyPersonDetailActivity.java b/app/src/main/java/com/police/policedatasystem/data/activity/KeyPersonDetailActivity.java index e48388f..eed887e 100644 --- a/app/src/main/java/com/police/policedatasystem/data/activity/KeyPersonDetailActivity.java +++ b/app/src/main/java/com/police/policedatasystem/data/activity/KeyPersonDetailActivity.java @@ -11,7 +11,7 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.police.policedatasystem.databinding.ActivityKeyPersonDetailBinding; -import com.police.policedatasystem.model.KeyPersonDetail; +import com.police.policedatasystem.data.model.KeyPersonDetail; import com.police.policedatasystem.util.Constants; import com.police.policedatasystem.util.UiUtils; diff --git a/app/src/main/java/com/police/policedatasystem/data/activity/PoliceEmergencyDetailActivity.java b/app/src/main/java/com/police/policedatasystem/data/activity/PoliceEmergencyDetailActivity.java index 3211c5f..e2085b4 100644 --- a/app/src/main/java/com/police/policedatasystem/data/activity/PoliceEmergencyDetailActivity.java +++ b/app/src/main/java/com/police/policedatasystem/data/activity/PoliceEmergencyDetailActivity.java @@ -8,9 +8,9 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import com.google.gson.Gson; -import com.police.policedatasystem.App; +import com.police.policedatasystem.main.App; import com.police.policedatasystem.databinding.ActivityPoliceEmergencyDetailBinding; -import com.police.policedatasystem.model.PoliceEmergencyDetail; +import com.police.policedatasystem.data.model.PoliceEmergencyDetail; import com.police.policedatasystem.util.Constants; import com.police.policedatasystem.util.UiUtils; diff --git a/app/src/main/java/com/police/policedatasystem/data/adapter/KeyPersonAdapter.java b/app/src/main/java/com/police/policedatasystem/data/adapter/KeyPersonAdapter.java index 5b60884..f28b10c 100644 --- a/app/src/main/java/com/police/policedatasystem/data/adapter/KeyPersonAdapter.java +++ b/app/src/main/java/com/police/policedatasystem/data/adapter/KeyPersonAdapter.java @@ -5,9 +5,9 @@ import android.widget.ImageView; import com.bumptech.glide.Glide; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.viewholder.BaseViewHolder; -import com.police.policedatasystem.App; +import com.police.policedatasystem.main.App; import com.police.policedatasystem.R; -import com.police.policedatasystem.model.KeyPerson; +import com.police.policedatasystem.data.model.KeyPerson; import com.police.policedatasystem.util.UiUtils; public class KeyPersonAdapter extends BaseQuickAdapter { diff --git a/app/src/main/java/com/police/policedatasystem/data/adapter/PoliceEmergencyAdapter.java b/app/src/main/java/com/police/policedatasystem/data/adapter/PoliceEmergencyAdapter.java index 08f8e49..ac51552 100644 --- a/app/src/main/java/com/police/policedatasystem/data/adapter/PoliceEmergencyAdapter.java +++ b/app/src/main/java/com/police/policedatasystem/data/adapter/PoliceEmergencyAdapter.java @@ -3,7 +3,7 @@ package com.police.policedatasystem.data.adapter; import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.viewholder.BaseViewHolder; import com.police.policedatasystem.R; -import com.police.policedatasystem.model.PoliceEmergency; +import com.police.policedatasystem.data.model.PoliceEmergency; import com.police.policedatasystem.util.UiUtils; public class PoliceEmergencyAdapter extends BaseQuickAdapter { diff --git a/app/src/main/java/com/police/policedatasystem/fragment/DataFragment.java b/app/src/main/java/com/police/policedatasystem/data/fragment/DataFragment.java similarity index 98% rename from app/src/main/java/com/police/policedatasystem/fragment/DataFragment.java rename to app/src/main/java/com/police/policedatasystem/data/fragment/DataFragment.java index dd9ce2a..4a33ca6 100644 --- a/app/src/main/java/com/police/policedatasystem/fragment/DataFragment.java +++ b/app/src/main/java/com/police/policedatasystem/data/fragment/DataFragment.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.fragment; +package com.police.policedatasystem.data.fragment; import android.app.Activity; import android.content.Context; @@ -23,9 +23,9 @@ import com.police.policedatasystem.data.adapter.KeyPersonAdapter; import com.police.policedatasystem.data.adapter.PoliceEmergencyAdapter; import com.police.policedatasystem.databinding.FragmentDataBinding; import com.police.policedatasystem.indexActivity; -import com.police.policedatasystem.model.KeyPerson; -import com.police.policedatasystem.model.PoliceEmergency; -import com.police.policedatasystem.viewmodel.DataViewModel; +import com.police.policedatasystem.data.model.KeyPerson; +import com.police.policedatasystem.data.model.PoliceEmergency; +import com.police.policedatasystem.data.viewmodel.DataViewModel; import com.scwang.smart.refresh.footer.ClassicsFooter; import com.scwang.smart.refresh.header.ClassicsHeader; diff --git a/app/src/main/java/com/police/policedatasystem/model/DataCount.java b/app/src/main/java/com/police/policedatasystem/data/model/DataCount.java similarity index 95% rename from app/src/main/java/com/police/policedatasystem/model/DataCount.java rename to app/src/main/java/com/police/policedatasystem/data/model/DataCount.java index b0a24ed..7f7ab93 100644 --- a/app/src/main/java/com/police/policedatasystem/model/DataCount.java +++ b/app/src/main/java/com/police/policedatasystem/data/model/DataCount.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.data.model; import java.io.Serializable; diff --git a/app/src/main/java/com/police/policedatasystem/model/KeyPerson.java b/app/src/main/java/com/police/policedatasystem/data/model/KeyPerson.java similarity index 97% rename from app/src/main/java/com/police/policedatasystem/model/KeyPerson.java rename to app/src/main/java/com/police/policedatasystem/data/model/KeyPerson.java index 9708000..bbb8ce2 100644 --- a/app/src/main/java/com/police/policedatasystem/model/KeyPerson.java +++ b/app/src/main/java/com/police/policedatasystem/data/model/KeyPerson.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.data.model; import java.io.Serializable; diff --git a/app/src/main/java/com/police/policedatasystem/model/KeyPersonDetail.java b/app/src/main/java/com/police/policedatasystem/data/model/KeyPersonDetail.java similarity index 99% rename from app/src/main/java/com/police/policedatasystem/model/KeyPersonDetail.java rename to app/src/main/java/com/police/policedatasystem/data/model/KeyPersonDetail.java index 67e5f3b..4f0e36a 100644 --- a/app/src/main/java/com/police/policedatasystem/model/KeyPersonDetail.java +++ b/app/src/main/java/com/police/policedatasystem/data/model/KeyPersonDetail.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.data.model; import java.io.Serializable; import java.util.List; diff --git a/app/src/main/java/com/police/policedatasystem/model/PoliceEmergency.java b/app/src/main/java/com/police/policedatasystem/data/model/PoliceEmergency.java similarity index 95% rename from app/src/main/java/com/police/policedatasystem/model/PoliceEmergency.java rename to app/src/main/java/com/police/policedatasystem/data/model/PoliceEmergency.java index abdd193..65f136a 100644 --- a/app/src/main/java/com/police/policedatasystem/model/PoliceEmergency.java +++ b/app/src/main/java/com/police/policedatasystem/data/model/PoliceEmergency.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.data.model; import java.io.Serializable; diff --git a/app/src/main/java/com/police/policedatasystem/model/PoliceEmergencyDetail.java b/app/src/main/java/com/police/policedatasystem/data/model/PoliceEmergencyDetail.java similarity index 99% rename from app/src/main/java/com/police/policedatasystem/model/PoliceEmergencyDetail.java rename to app/src/main/java/com/police/policedatasystem/data/model/PoliceEmergencyDetail.java index f3d0381..5d4fccf 100644 --- a/app/src/main/java/com/police/policedatasystem/model/PoliceEmergencyDetail.java +++ b/app/src/main/java/com/police/policedatasystem/data/model/PoliceEmergencyDetail.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.data.model; import java.io.Serializable; import java.util.List; diff --git a/app/src/main/java/com/police/policedatasystem/viewmodel/DataViewModel.java b/app/src/main/java/com/police/policedatasystem/data/viewmodel/DataViewModel.java similarity index 96% rename from app/src/main/java/com/police/policedatasystem/viewmodel/DataViewModel.java rename to app/src/main/java/com/police/policedatasystem/data/viewmodel/DataViewModel.java index 9dabad9..d896558 100644 --- a/app/src/main/java/com/police/policedatasystem/viewmodel/DataViewModel.java +++ b/app/src/main/java/com/police/policedatasystem/data/viewmodel/DataViewModel.java @@ -1,21 +1,21 @@ -package com.police.policedatasystem.viewmodel; +package com.police.policedatasystem.data.viewmodel; import androidx.annotation.NonNull; import com.google.gson.Gson; import com.police.policedatasystem.data.activity.KeyPersonDetailActivity; import com.police.policedatasystem.data.activity.PoliceEmergencyDetailActivity; -import com.police.policedatasystem.fragment.DataFragment; +import com.police.policedatasystem.data.fragment.DataFragment; import com.police.policedatasystem.http.CustomCallBack; import com.police.policedatasystem.http.requestparams.GetKeyPersonListParams; import com.police.policedatasystem.http.requestparams.GetOrgKeyPersonListParams; import com.police.policedatasystem.http.requestparams.GetPoliceEmergencyListParams; import com.police.policedatasystem.indexActivity; -import com.police.policedatasystem.model.DataCount; -import com.police.policedatasystem.model.KeyPerson; -import com.police.policedatasystem.model.KeyPersonDetail; -import com.police.policedatasystem.model.PoliceEmergency; -import com.police.policedatasystem.model.PoliceEmergencyDetail; +import com.police.policedatasystem.data.model.DataCount; +import com.police.policedatasystem.data.model.KeyPerson; +import com.police.policedatasystem.data.model.KeyPersonDetail; +import com.police.policedatasystem.data.model.PoliceEmergency; +import com.police.policedatasystem.data.model.PoliceEmergencyDetail; import com.police.policedatasystem.util.Constants; import com.police.policedatasystem.util.UiUtils; diff --git a/app/src/main/java/com/police/policedatasystem/fragment/ApplyFragment.java b/app/src/main/java/com/police/policedatasystem/fragment/ApplyFragment.java deleted file mode 100644 index a97ea94..0000000 --- a/app/src/main/java/com/police/policedatasystem/fragment/ApplyFragment.java +++ /dev/null @@ -1,99 +0,0 @@ -package com.police.policedatasystem.fragment; - -import android.content.Context; -import android.graphics.drawable.ColorDrawable; -import android.os.Bundle; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.LinearLayout; -import android.widget.PopupWindow; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; - -import com.police.policedatasystem.R; -import com.police.policedatasystem.databinding.FragmentApplyBinding; - -public class ApplyFragment extends Fragment { - private FragmentApplyBinding binding; - private PopupWindow popupWindow; - - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - binding = FragmentApplyBinding.inflate(inflater); - initView(); - return binding.getRoot(); - } - - private void initView() { - setPopupWindow(); - binding.typeGroup.setOnClickListener(view -> { - popupWindow.setWidth(binding.typeGroup.getWidth()); - popupWindow.showAsDropDown(binding.typeGroup); - }); - } - - private void setPopupWindow() { - // 初始化 PopupWindow - popupWindow = new PopupWindow(getContext()); - // 加载自定义布局 - LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); - View contentView = inflater.inflate(R.layout.dropdown_layout4, null); - // 设置 PopupWindow 的宽高 - popupWindow.setWidth(LinearLayout.LayoutParams.MATCH_PARENT); - popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.all_7_fff_bg)); - popupWindow.setHeight(LinearLayout.LayoutParams.WRAP_CONTENT); - // 设置 PopupWindow 的背景 -// popupWindow.setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); - // 设置 PopupWindow 显示的位置(相对于按钮) - popupWindow.showAtLocation(binding.typeGroup, Gravity.NO_GRAVITY, 0, 0); - // 为每个菜单项设置点击事件 - TextView textView1 = contentView.findViewById(R.id.textView1); // 假设这是菜单项1的ID - TextView textView2 = contentView.findViewById(R.id.textView2); // 假设这是菜单项2的ID - TextView textView3 = contentView.findViewById(R.id.textView3); // 假设这是菜单项2的ID - TextView textView4 = contentView.findViewById(R.id.textView4); // 假设这是菜单项2的ID - TextView textView5 = contentView.findViewById(R.id.textView5); // 假设这是菜单项2的ID - TextView textView6 = contentView.findViewById(R.id.textView6); // 假设这是菜单项2的ID - textView1.setOnClickListener(v -> { - // 处理菜单项 1 的点击事件 - binding.tvApplySearchTitle.setText("处置警情"); - popupWindow.dismiss(); // 关闭 PopupWindow - }); - textView2.setOnClickListener(v -> { - // 处理菜单项 2 的点击事件 - binding.tvApplySearchTitle.setText("处置案情"); - popupWindow.dismiss(); // 关闭 PopupWindow - }); - textView3.setOnClickListener(v -> { - // 处理菜单项 2 的点击事件 - binding.tvApplySearchTitle.setText("管控重点人"); - popupWindow.dismiss(); // 关闭 PopupWindow - }); - textView4.setOnClickListener(v -> { - // 处理菜单项 2 的点击事件 - binding.tvApplySearchTitle.setText("追踪逃犯"); - popupWindow.dismiss(); // 关闭 PopupWindow - }); - textView5.setOnClickListener(v -> { - // 处理菜单项 2 的点击事件 - binding.tvApplySearchTitle.setText("核查线索"); - popupWindow.dismiss(); // 关闭 PopupWindow - }); - textView6.setOnClickListener(v -> { - // 处理菜单项 2 的点击事件 - binding.tvApplySearchTitle.setText("核验信息"); - popupWindow.dismiss(); // 关闭 PopupWindow - }); - // 将自定义布局设置为 PopupWindow 的内容视图 - popupWindow.setContentView(contentView); - // 设置 PopupWindow 的焦点 - popupWindow.setFocusable(true); - popupWindow.setOutsideTouchable(true); // 设置点击 PopupWindow 外部区域使其消失 - } - -} diff --git a/app/src/main/java/com/police/policedatasystem/http/BaseRequestClient.java b/app/src/main/java/com/police/policedatasystem/http/BaseRequestClient.java new file mode 100644 index 0000000..1ddbb6e --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/http/BaseRequestClient.java @@ -0,0 +1,259 @@ +package com.police.policedatasystem.http; + +import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_APP_CREDENTIAL; +import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_RET_CODE; +import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_RET_SUCCESS; +import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_USER_CREDENTIAL; + +import android.net.Uri; +import android.os.Bundle; + +import androidx.annotation.NonNull; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import com.police.policedatasystem.http.requestparams.RequestParams; +import com.police.policedatasystem.http.requestparams.ResponseParams; +import com.police.policedatasystem.indexActivity; +import com.police.policedatasystem.main.App; +import com.police.policedatasystem.main.model.ResourceList; +import com.police.policedatasystem.main.model.UserCredential; +import com.police.policedatasystem.util.Constants; +import com.police.policedatasystem.util.UiUtils; + +import java.io.IOException; +import java.net.URLEncoder; +import java.util.ArrayList; +import java.util.List; +import java.util.concurrent.TimeUnit; + +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.MediaType; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; +import okhttp3.Response; +import okhttp3.logging.HttpLoggingInterceptor; + +public class BaseRequestClient { + public final indexActivity activity; + private OkHttpClient okHttpClient; + + public BaseRequestClient(indexActivity activity) { + this.activity = activity; + } + + /* + + */ + private void call(String url, RequestParams params, Callback callback) { + try { + RequestBody body = RequestBody.create(new Gson().toJson(params), MediaType.parse("application/json; charset=utf-8")); + Request request = new Request.Builder() + .url(url) + .post(body) + .addHeader("userCredential", URLEncoder.encode(Constants.USER_CREDENTIAL, "UTF-8")) + .addHeader("appCredential", URLEncoder.encode(Constants.APP_CREDENTIAL, "UTF-8")) + .build(); + okHttpClient.newCall(request).enqueue(callback); + } catch (Exception e) { + e.printStackTrace(); + } + + } + + public void init() { + HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); + loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); // 设置日志级别,例如打印请求和响应的body + okHttpClient = new OkHttpClient.Builder() + .addInterceptor(loggingInterceptor) // 添加日志拦截器 + .callTimeout(30, TimeUnit.SECONDS) + .connectTimeout(30, TimeUnit.SECONDS) + .build(); + //获取接口需要用到的凭证 + getInterface(); + } + + //获取接口需要用到的凭证 + private void getInterface() { + Uri uri = Uri.parse("content://com.ydjw.ua.getCredential"); + Bundle params = new Bundle(); + String paramsMessageId = UiUtils.uuid(); + //构建参数 + params.putString("messageId", paramsMessageId);//消息id + params.putString("version", "1");//接口版本号,当前为1 + params.putString("appId", Constants.APP_ID);// + params.putString("orgId", Constants.ORG_ID);// + params.putString("networkAreaCode", "3");// + params.putString("packageName", "com.police.policedatasystem");//应用包名,可空 + //获取票据 + Bundle bundle = App.getApp().getContentResolver().call(uri, "", null, params); + //解析结果 + if (bundle == null) { + UiUtils.toast("获取应用凭证失败,bundle为空!"); + return; + } + String messageId = bundle.getString("messageId"); + if (paramsMessageId.equals(messageId)) { + int resultCode = bundle.getInt(PARAMS_KEY_UA_RET_CODE); + if (PARAMS_KEY_UA_RET_SUCCESS == resultCode) { + Constants.APP_CREDENTIAL = bundle.getString(PARAMS_KEY_UA_APP_CREDENTIAL); + Constants.USER_CREDENTIAL = bundle.getString(PARAMS_KEY_UA_USER_CREDENTIAL); + Constants.USER_ID = new Gson().fromJson(Constants.USER_CREDENTIAL, UserCredential.class).getCredential().getLoad().getUserInfo().getJh(); + Constants.SFZH = new Gson().fromJson(Constants.USER_CREDENTIAL, UserCredential.class).getCredential().getLoad().getUserInfo().getSfzh(); + Constants.USER_ORG_ID = new Gson().fromJson(Constants.USER_CREDENTIAL, UserCredential.class).getCredential().getLoad().getUserInfo().getOrgId(); + //根据票据寻址 + findAddress(); + } else { + UiUtils.toast(bundle.getString("message") + ",resultCode:" + resultCode); + } + } else { + UiUtils.toast("获取应用凭证失败,messageId不一致!"); + } + } + + //第二步,寻址 + private void findAddress() { + Thread thread = new Thread(() -> { + // 在这里执行耗时任务 + Uri uri = Uri.parse("content://com.ydjw.rsb.getResourceAddress"); + Bundle bundle = new Bundle(); + String paramsMessageId = UiUtils.uuid(); + bundle.putString("appCredential", Constants.APP_CREDENTIAL);//应用凭证,由上一步获得 + bundle.putString("userCredential", Constants.USER_CREDENTIAL);//用户凭证,由上一步获得 + bundle.putString("version", "1");//服务总线接口版本号,当前为1 + bundle.putString("messageId", paramsMessageId);//消息 ID + Bundle callBack = App.getApp().getContentResolver().call(uri, "", null, bundle); + if (callBack == null) { + UiUtils.toast("获取应用资源地址失败,bundle为空"); + return; + } + String messageId = callBack.getString("messageId"); + String resourceList = callBack.getString("resourceList"); + if (paramsMessageId.equals(messageId)) { + int resultCode = callBack.getInt("resultCode"); + if (resultCode == 0) { + if (UiUtils.isEmpty(resourceList)) { + UiUtils.toast("寻址失败,resourceList为空!"); + return; + } + List resourceLists = new Gson().fromJson(resourceList, new TypeToken>() { + }.getType()); + for (ResourceList item : resourceLists) { + Constants.resourceListsMap.put(item.getResourceId(), item); + } + //2.发起请求,获取重点人数据 + activity.initData(); + } else { + if (UiUtils.isEmpty(resourceList)) { + UiUtils.toast("寻址失败,错误码:" + resultCode); + } + } + } + }); + thread.start(); + } + + + /** + * 基类封装 + */ + public void request(String urlKey, String jsonParams, CustomCallBack callBack) { + ResourceList resourceList = Constants.resourceListsMap.get(urlKey); + if (resourceList == null) { + return; + } + RequestParams.Parameter parameter = getParameter(urlKey, jsonParams); + RequestParams requestParams = new RequestParams(); + requestParams.setMessageId(UiUtils.uuid()); + requestParams.setVersion("1.0"); + requestParams.setParameter(parameter); + call(resourceList.getResourceAddress(), requestParams, new Callback() { + @Override + public void onFailure(@NonNull Call call, @NonNull IOException e) { + // 请求失败 + activity.runOnUiThread(() -> callBack.onError(call, e)); + } + + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + if (!response.isSuccessful()) { + activity.runOnUiThread(() -> callBack.onError(call, new IOException("Unexpected code " + response))); + return; + } + try { + // 请求成功,处理响应数据 + if (response.body() == null) { + activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器返回数据异常"))); + return; + } + String responseBody = response.body().string(); + if (urlKey.equals(Constants.APPLY_TYPE_ID)){ + responseBody = "{\n" + + "\"code\":\"200\",\n" + + "\"data\":{\n" + + "\"dataList\":[\n" + + "{\n" + + "\"fieldValues\":[\n" + + "{\n" + + "\"field\":\"outjson\",\n" + + "\"value\":\"[{\\\"dictLabel\\\":\\\"管控重点人\\\",\\\"dictSort\\\":1,\\\"dictValue\\\":\\\"1\\\"},{\\\"dictLabel\\\":\\\"核验信息\\\",\\\"dictSort\\\":3,\\\"dictValue\\\":\\\"3\\\"},{\\\"dictLabel\\\":\\\"追踪逃犯\\\",\\\"dictSort\\\":2,\\\"dictValue\\\":\\\"6\\\"},{\\\"dictLabel\\\":\\\"处置警情\\\",\\\"dictSort\\\":0,\\\"dictValue\\\":\\\"0\\\"},{\\\"dictLabel\\\":\\\"核查线索\\\",\\\"dictSort\\\":2,\\\"dictValue\\\":\\\"2\\\"},{\\\"dictLabel\\\":\\\"其他\\\",\\\"dictSort\\\":5,\\\"dictValue\\\":\\\"5\\\"},{\\\"dictLabel\\\":\\\"处置案情\\\",\\\"dictSort\\\":1,\\\"dictValue\\\":\\\"7\\\"}]\"\n" + + "}\n" + + "]\n" + + "}\n" + + "],\n" + + "\"page\":{\n" + + "\"total\":7,\n" + + "\"pageNo\":10,\n" + + "\"pageSize\":1\n" + + "}\n" + + "},\n" + + "\"messageId\":\"788a1cc4-2009-4744-ba66-7503ca37b0f2\",\n" + + "\"message\":\"ok\",\n" + + "\"version\":\"1.0\"\n" + + "}"; + } + ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); + if (!"200".equals(responseParams.getCode())) { + activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器出错,请联系开发人员或稍后重试!"))); + return; + } + if (responseParams.getData().getDataList() == null || responseParams.getData().getDataList().isEmpty()) { + activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器返回数据异常"))); + return; + } + ResponseParams.FieldData fieldData = responseParams.getData().getDataList().get(0); + if (fieldData.getFieldValues() == null || fieldData.getFieldValues().isEmpty()) { + activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器返回数据异常"))); + return; + } + activity.runOnUiThread(() -> callBack.onSuccess(fieldData.getFieldValues().get(0).getValue())); + } catch (Exception e) { + activity.runOnUiThread(() -> callBack.onError(call, e)); + } + } + }); + } + + @NonNull + private static RequestParams.Parameter getParameter(String urlKey, String jsonParams) { + RequestParams.Condition condition = new RequestParams.Condition(); + condition.setLogicalOperate("and"); + RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); + keyValues.setKey("injson"); + keyValues.setValue(jsonParams); + List keyValuesList = new ArrayList<>(); + keyValuesList.add(keyValues); + condition.setKeyValueList(keyValuesList); + RequestParams.Parameter parameter = new RequestParams.Parameter(); + parameter.setCondition(condition); + parameter.setPage(new RequestParams.Page()); + parameter.setFields("outjson"); + parameter.setNetworkCode("3"); + parameter.setOrderBy(null); + parameter.setRegionalismCode(Constants.ORG_ID); + parameter.setDataObjId(urlKey); + return parameter; + } +} diff --git a/app/src/main/java/com/police/policedatasystem/http/CustomCallBack.java b/app/src/main/java/com/police/policedatasystem/http/CustomCallBack.java index 8235faf..02994b1 100644 --- a/app/src/main/java/com/police/policedatasystem/http/CustomCallBack.java +++ b/app/src/main/java/com/police/policedatasystem/http/CustomCallBack.java @@ -9,32 +9,4 @@ public abstract class CustomCallBack { public abstract void onSuccess(T value); -// @Override -// public void onFailure(@NonNull Call call, @NonNull IOException e) { -// onError(call, e); -// } -// -// @Override -// public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException { -// if (!response.isSuccessful()) { -// onError(call, new IOException("Unexpected code " + response)); -// return; -// } -// try { -// ResponseParams responseParams = new Gson().fromJson(response.body().string(), ResponseParams.class); -// if ("200".equals(responseParams.getCode())) { -// for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { -// for (ResponseParams.FieldValues i : item.getFieldValues()) { -//// new Gson().fromJson() -//// onSuccess(i.getValue()); -// } -// } -// } else { -// onError(call, new IOException(responseParams.getMessage())); -// } -// } catch (Exception e) { -// onError(call, new IOException("Unexpected code " + response)); -// } -// } - } diff --git a/app/src/main/java/com/police/policedatasystem/http/RequestClient.java b/app/src/main/java/com/police/policedatasystem/http/RequestClient.java index 61c1fb0..ca343c8 100644 --- a/app/src/main/java/com/police/policedatasystem/http/RequestClient.java +++ b/app/src/main/java/com/police/policedatasystem/http/RequestClient.java @@ -1,169 +1,35 @@ package com.police.policedatasystem.http; -import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_APP_CREDENTIAL; -import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_RET_CODE; -import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_RET_SUCCESS; -import static com.police.policedatasystem.util.UaCredentialApi.PARAMS_KEY_UA_USER_CREDENTIAL; - -import android.net.Uri; -import android.os.Bundle; - import androidx.annotation.NonNull; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; -import com.police.policedatasystem.App; +import com.police.policedatasystem.apply.model.ApplyDept; +import com.police.policedatasystem.apply.model.ApplyPerson; +import com.police.policedatasystem.apply.model.ApplyType; +import com.police.policedatasystem.data.model.DataCount; +import com.police.policedatasystem.data.model.KeyPerson; +import com.police.policedatasystem.data.model.KeyPersonDetail; +import com.police.policedatasystem.data.model.PoliceEmergency; +import com.police.policedatasystem.data.model.PoliceEmergencyDetail; import com.police.policedatasystem.http.requestparams.GetKeyPersonDetailParams; import com.police.policedatasystem.http.requestparams.GetKeyPersonListParams; import com.police.policedatasystem.http.requestparams.GetKeyPersonMessageCountParams; import com.police.policedatasystem.http.requestparams.GetOrgKeyPersonListParams; import com.police.policedatasystem.http.requestparams.GetPoliceEmergencyDetailParams; import com.police.policedatasystem.http.requestparams.GetPoliceEmergencyListParams; -import com.police.policedatasystem.http.requestparams.RequestParams; -import com.police.policedatasystem.http.requestparams.ResponseParams; import com.police.policedatasystem.indexActivity; -import com.police.policedatasystem.model.DataCount; -import com.police.policedatasystem.model.KeyPerson; -import com.police.policedatasystem.model.KeyPersonDetail; -import com.police.policedatasystem.model.PoliceEmergency; -import com.police.policedatasystem.model.PoliceEmergencyDetail; -import com.police.policedatasystem.model.ResourceList; -import com.police.policedatasystem.model.UserCredential; import com.police.policedatasystem.util.Constants; -import com.police.policedatasystem.util.UiUtils; -import java.io.IOException; -import java.net.URLEncoder; -import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import java.util.concurrent.TimeUnit; import okhttp3.Call; -import okhttp3.Callback; -import okhttp3.MediaType; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; -import okhttp3.Response; -import okhttp3.logging.HttpLoggingInterceptor; -public class RequestClient { - private final indexActivity activity; - private OkHttpClient okHttpClient; +public class RequestClient extends BaseRequestClient { public RequestClient(indexActivity activity) { - this.activity = activity; - } - - /* - - */ - private void call(String url, RequestParams params, Callback callback) { - try { - RequestBody body = RequestBody.create(new Gson().toJson(params), MediaType.parse("application/json; charset=utf-8")); - Request request = new Request.Builder() - .url(url) - .post(body) - .addHeader("userCredential", URLEncoder.encode(Constants.USER_CREDENTIAL, "UTF-8")) - .addHeader("appCredential", URLEncoder.encode(Constants.APP_CREDENTIAL, "UTF-8")) - .build(); - okHttpClient.newCall(request).enqueue(callback); - } catch (Exception e) { - e.printStackTrace(); - } - - } - - public void init() { - HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(); - loggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); // 设置日志级别,例如打印请求和响应的body - okHttpClient = new OkHttpClient.Builder() - .addInterceptor(loggingInterceptor) // 添加日志拦截器 - .callTimeout(30, TimeUnit.SECONDS) - .connectTimeout(30, TimeUnit.SECONDS) - .build(); - //获取接口需要用到的凭证 - getInterface(); - } - - //获取接口需要用到的凭证 - private void getInterface() { - Uri uri = Uri.parse("content://com.ydjw.ua.getCredential"); - Bundle params = new Bundle(); - String paramsMessageId = UiUtils.uuid(); - //构建参数 - params.putString("messageId", paramsMessageId);//消息id - params.putString("version", "1");//接口版本号,当前为1 - params.putString("appId", Constants.APP_ID);// - params.putString("orgId", Constants.ORG_ID);// - params.putString("networkAreaCode", "3");// - params.putString("packageName", "com.police.policedatasystem");//应用包名,可空 - //获取票据 - Bundle bundle = App.getApp().getContentResolver().call(uri, "", null, params); - //解析结果 - if (bundle == null) { - UiUtils.toast("获取应用凭证失败,bundle为空!"); - return; - } - String messageId = bundle.getString("messageId"); - if (paramsMessageId.equals(messageId)) { - int resultCode = bundle.getInt(PARAMS_KEY_UA_RET_CODE); - if (PARAMS_KEY_UA_RET_SUCCESS == resultCode) { - Constants.APP_CREDENTIAL = bundle.getString(PARAMS_KEY_UA_APP_CREDENTIAL); - Constants.USER_CREDENTIAL = bundle.getString(PARAMS_KEY_UA_USER_CREDENTIAL); - Constants.USER_ID = new Gson().fromJson(Constants.USER_CREDENTIAL, UserCredential.class).getCredential().getLoad().getUserInfo().getJh(); - Constants.SFZH = new Gson().fromJson(Constants.USER_CREDENTIAL, UserCredential.class).getCredential().getLoad().getUserInfo().getSfzh(); - Constants.USER_ORG_ID = new Gson().fromJson(Constants.USER_CREDENTIAL, UserCredential.class).getCredential().getLoad().getUserInfo().getOrgId(); - //根据票据寻址 - findAddress(); - } else { - UiUtils.toast(bundle.getString("message") + ",resultCode:" + resultCode); - } - } else { - UiUtils.toast("获取应用凭证失败,messageId不一致!"); - } - } - - //第二步,寻址 - private void findAddress() { - Thread thread = new Thread(() -> { - // 在这里执行耗时任务 - Uri uri = Uri.parse("content://com.ydjw.rsb.getResourceAddress"); - Bundle bundle = new Bundle(); - String paramsMessageId = UiUtils.uuid(); - bundle.putString("appCredential", Constants.APP_CREDENTIAL);//应用凭证,由上一步获得 - bundle.putString("userCredential", Constants.USER_CREDENTIAL);//用户凭证,由上一步获得 - bundle.putString("version", "1");//服务总线接口版本号,当前为1 - bundle.putString("messageId", paramsMessageId);//消息 ID - Bundle callBack = App.getApp().getContentResolver().call(uri, "", null, bundle); - if (callBack == null) { - UiUtils.toast("获取应用资源地址失败,bundle为空"); - return; - } - String messageId = callBack.getString("messageId"); - String resourceList = callBack.getString("resourceList"); - if (paramsMessageId.equals(messageId)) { - int resultCode = callBack.getInt("resultCode"); - if (resultCode == 0) { - if (UiUtils.isEmpty(resourceList)) { - UiUtils.toast("寻址失败,resourceList为空!"); - return; - } - List resourceLists = new Gson().fromJson(resourceList, new TypeToken>() { - }.getType()); - for (ResourceList item : resourceLists) { - Constants.resourceListsMap.put(item.getResourceId(), item); - } - //2.发起请求,获取重点人数据 - activity.initData(); - } else { - if (UiUtils.isEmpty(resourceList)) { - UiUtils.toast("寻址失败,错误码:" + resultCode); - } - } - } - }); - thread.start(); + super(activity); } /** @@ -173,66 +39,20 @@ public class RequestClient { * @param callback 回调函数 */ public void getKeyPerson(GetKeyPersonListParams params, CustomCallBack> callback) { - ResourceList resourceList = Constants.resourceListsMap.get(Constants.KEY_PERSON_ID); - RequestParams.Condition condition = new RequestParams.Condition(); - condition.setLogicalOperate("and"); - RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); - keyValues.setKey("injson"); params.setJybh(Constants.USER_ID); params.setSfhm(Constants.SFZH); params.setPageSize(Constants.PAGE_SIZE + ""); - keyValues.setValue(new Gson().toJson(params)); - List keyValuesList = new ArrayList<>(); - keyValuesList.add(keyValues); - condition.setKeyValueList(keyValuesList); - RequestParams.Parameter parameter = new RequestParams.Parameter(); - parameter.setCondition(condition); - parameter.setPage(new RequestParams.Page()); - parameter.setFields("outjson"); - parameter.setNetworkCode("3"); - parameter.setOrderBy(null); - parameter.setRegionalismCode(Constants.ORG_ID); - parameter.setDataObjId(Constants.KEY_PERSON_ID); - RequestParams requestParams = new RequestParams(); - requestParams.setMessageId(UiUtils.uuid()); - requestParams.setVersion("1.0"); - requestParams.setParameter(parameter); - if (resourceList == null) return; - call(resourceList.getResourceAddress(), requestParams, new Callback() { + request(Constants.KEY_PERSON_ID, new Gson().toJson(params), new CustomCallBack() { @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - activity.runOnUiThread(() -> callback.onError(call, e)); - // 请求失败 - e.printStackTrace(); + public void onError(Call call, @NonNull Exception e) { + callback.onError(call, e); } @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - try { - // 请求成功,处理响应数据 - String responseBody = response.body().string(); - activity.runOnUiThread(() -> { - if (!response.isSuccessful()) { - callback.onError(call, new IOException("Unexpected code " + response)); - return; - } - ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); - if ("200".equals(responseParams.getCode())) { - for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { - for (ResponseParams.FieldValues i : item.getFieldValues()) { - List keyPersonList = new Gson().fromJson(i.getValue(), new TypeToken>() { - }.getType()); - callback.onSuccess(keyPersonList); - } - } - } else { - callback.onError(call, new IOException(responseParams.getMessage())); - } - }); - } catch (Exception e) { - callback.onError(call, e); - e.printStackTrace(); - } + public void onSuccess(String value) { + List keyPersonList = new Gson().fromJson(value, new TypeToken>() { + }.getType()); + callback.onSuccess(keyPersonList); } }); } @@ -240,75 +60,23 @@ public class RequestClient { /** * 获取组织重点人数据 * - * @param params 搜索关键字姓名 - * @param callBack 回调函数 + * @param params 搜索关键字姓名 */ - public void getOrgKeyPerson(GetOrgKeyPersonListParams params, CustomCallBack> callBack) { - ResourceList resourceList = Constants.resourceListsMap.get(Constants.ORG_KEY_PERSON_ID); - RequestParams.Condition condition = new RequestParams.Condition(); - condition.setLogicalOperate("and"); - RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); - keyValues.setKey("injson"); + public void getOrgKeyPerson(GetOrgKeyPersonListParams params, CustomCallBack> callback) { params.setSfhm(Constants.SFZH); params.setDept(Constants.USER_ORG_ID); params.setPageSize(Constants.PAGE_SIZE + ""); - keyValues.setValue(new Gson().toJson(params)); - List keyValuesList = new ArrayList<>(); - keyValuesList.add(keyValues); - condition.setKeyValueList(keyValuesList); - RequestParams.Parameter parameter = new RequestParams.Parameter(); - parameter.setCondition(condition); - parameter.setPage(new RequestParams.Page()); - parameter.setFields("outjson"); - parameter.setNetworkCode("3"); - parameter.setOrderBy(null); - parameter.setRegionalismCode(Constants.ORG_ID); - parameter.setDataObjId(Constants.ORG_KEY_PERSON_ID); - RequestParams requestParams = new RequestParams(); - requestParams.setMessageId(UiUtils.uuid()); - requestParams.setVersion("1.0"); - requestParams.setParameter(parameter); - if (resourceList == null) { - callBack.onError(null, new Exception("寻址数据为空")); - return; - } - - call(resourceList.getResourceAddress(), requestParams, new Callback() { + request(Constants.KEY_PERSON_ID, new Gson().toJson(params), new CustomCallBack() { @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - activity.runOnUiThread(() -> callBack.onError(call, e)); - // 请求失败 - e.printStackTrace(); + public void onError(Call call, @NonNull Exception e) { + callback.onError(call, e); } @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (!response.isSuccessful()) { - activity.runOnUiThread(() -> callBack.onError(call, new IOException("Unexpected code " + response))); - return; - } - try { - // 请求成功,处理响应数据 - String responseBody = response.body().string(); - activity.runOnUiThread(() -> { - ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); - if ("200".equals(responseParams.getCode())) { - for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { - for (ResponseParams.FieldValues i : item.getFieldValues()) { - List keyPersonList = new Gson().fromJson(i.getValue(), new TypeToken>() { - }.getType()); - callBack.onSuccess(keyPersonList); - } - } - } else { - callBack.onError(call, new Exception(responseParams.getMessage())); - } - }); - } catch (Exception e) { - activity.runOnUiThread(() -> callBack.onError(call, e)); - e.printStackTrace(); - } - + public void onSuccess(String value) { + List keyPersonList = new Gson().fromJson(value, new TypeToken>() { + }.getType()); + callback.onSuccess(keyPersonList); } }); } @@ -320,62 +88,20 @@ public class RequestClient { * @param str 身份证号 */ public void keyPersonDetail(String str, CustomCallBack callBack) { - ResourceList resourceList = Constants.resourceListsMap.get(Constants.KEY_PERSON_DETAIL_ID); - RequestParams.Condition condition = new RequestParams.Condition(); - condition.setLogicalOperate("and"); - RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); - keyValues.setKey("injson"); GetKeyPersonDetailParams params = new GetKeyPersonDetailParams(); params.setSfzh(str);// params.setSfzh("220104197307276911"); params.setSfhm(Constants.SFZH); - keyValues.setValue(new Gson().toJson(params)); - List keyValuesList = new ArrayList<>(); - keyValuesList.add(keyValues); - condition.setKeyValueList(keyValuesList); - RequestParams.Parameter parameter = new RequestParams.Parameter(); - parameter.setCondition(condition); - parameter.setPage(new RequestParams.Page()); - parameter.setFields("outjson"); - parameter.setNetworkCode("3"); - parameter.setOrderBy(null); - parameter.setRegionalismCode(Constants.ORG_ID); - parameter.setDataObjId(Constants.KEY_PERSON_DETAIL_ID); - RequestParams requestParams = new RequestParams(); - requestParams.setMessageId(UiUtils.uuid()); - requestParams.setVersion("1.0"); - requestParams.setParameter(parameter); - call(resourceList.getResourceAddress(), requestParams, new Callback() { + request(Constants.KEY_PERSON_DETAIL_ID, new Gson().toJson(params), new CustomCallBack() { @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - // 请求失败 - e.printStackTrace(); - activity.runOnUiThread(() -> callBack.onError(call, e)); + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); } @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (!response.isSuccessful()) { - activity.runOnUiThread(() -> callBack.onError(call, new IOException("Unexpected code " + response))); - return; - } - try { - // 请求成功,处理响应数据 - String responseBody = response.body().string(); - ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); - if (!"200".equals(responseParams.getCode())) { - activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器异常,请联系开发人员或稍后重试!"))); - return; - } - for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { - for (ResponseParams.FieldValues i : item.getFieldValues()) { - KeyPersonDetail keyPersonDetail = new Gson().fromJson(i.getValue(), KeyPersonDetail.class); - activity.runOnUiThread(() -> callBack.onSuccess(keyPersonDetail)); - } - } - } catch (Exception e) { - e.printStackTrace(); - activity.runOnUiThread(() -> callBack.onError(call, e)); - } + public void onSuccess(String value) { + KeyPersonDetail keyPersonList = new Gson().fromJson(value, new TypeToken() { + }.getType()); + callBack.onSuccess(keyPersonList); } }); } @@ -387,71 +113,20 @@ public class RequestClient { * @param callBack 回调函数 */ public void getPoliceEmergency(GetPoliceEmergencyListParams params, CustomCallBack> callBack) { - ResourceList resourceList = Constants.resourceListsMap.get(Constants.POLICE_EMERGENCY_ID); - RequestParams.Condition condition = new RequestParams.Condition(); - condition.setLogicalOperate("and"); - RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); - keyValues.setKey("injson"); params.setSfhm(Constants.SFZH); // params.setSfhm("220104198105200331"); params.setPageSize(Constants.PAGE_SIZE + ""); - keyValues.setValue(new Gson().toJson(params)); - List keyValuesList = new ArrayList<>(); - keyValuesList.add(keyValues); - condition.setKeyValueList(keyValuesList); - RequestParams.Parameter parameter = new RequestParams.Parameter(); - parameter.setCondition(condition); - parameter.setPage(new RequestParams.Page()); - parameter.setFields("outjson"); - parameter.setNetworkCode("3"); - parameter.setOrderBy(null); - parameter.setRegionalismCode(Constants.ORG_ID); - parameter.setDataObjId(Constants.POLICE_EMERGENCY_ID); - RequestParams requestParams = new RequestParams(); - requestParams.setMessageId(UiUtils.uuid()); - requestParams.setVersion("1.0"); - requestParams.setParameter(parameter); - if (resourceList == null) { - callBack.onError(null, new Exception("寻址数据为空")); - return; - } - - call(resourceList.getResourceAddress(), requestParams, new Callback() { + request(Constants.POLICE_EMERGENCY_ID, new Gson().toJson(params), new CustomCallBack() { @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - activity.runOnUiThread(() -> callBack.onError(call, e)); - // 请求失败 - e.printStackTrace(); + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); } @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (!response.isSuccessful()) { - activity.runOnUiThread(() -> callBack.onError(call, new IOException("Unexpected code " + response))); - return; - } - try { - // 请求成功,处理响应数据 - String responseBody = response.body().string(); - activity.runOnUiThread(() -> { - ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); - if ("200".equals(responseParams.getCode())) { - for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { - for (ResponseParams.FieldValues i : item.getFieldValues()) { - List keyPersonList = new Gson().fromJson(i.getValue(), new TypeToken>() { - }.getType()); - callBack.onSuccess(keyPersonList); - } - } - } else { - callBack.onError(call, new Exception(responseParams.getMessage())); - } - }); - } catch (Exception e) { - activity.runOnUiThread(() -> callBack.onError(call, e)); - e.printStackTrace(); - } - + public void onSuccess(String value) { + List keyPersonList = new Gson().fromJson(value, new TypeToken>() { + }.getType()); + callBack.onSuccess(keyPersonList); } }); } @@ -463,62 +138,19 @@ public class RequestClient { * @param str 身份证号 */ public void getPoliceEmergencyDetail(String str, CustomCallBack callBack) { - ResourceList resourceList = Constants.resourceListsMap.get(Constants.POLICE_EMERGENCY_DETAIL_ID); - RequestParams.Condition condition = new RequestParams.Condition(); - condition.setLogicalOperate("and"); - RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); - keyValues.setKey("injson"); GetPoliceEmergencyDetailParams params = new GetPoliceEmergencyDetailParams(); params.setJcjbh(str);// params.setSfzh("220104197307276911"); params.setSfhm(Constants.SFZH); - keyValues.setValue(new Gson().toJson(params)); - List keyValuesList = new ArrayList<>(); - keyValuesList.add(keyValues); - condition.setKeyValueList(keyValuesList); - RequestParams.Parameter parameter = new RequestParams.Parameter(); - parameter.setCondition(condition); - parameter.setPage(new RequestParams.Page()); - parameter.setFields("outjson"); - parameter.setNetworkCode("3"); - parameter.setOrderBy(null); - parameter.setRegionalismCode(Constants.ORG_ID); - parameter.setDataObjId(Constants.POLICE_EMERGENCY_DETAIL_ID); - RequestParams requestParams = new RequestParams(); - requestParams.setMessageId(UiUtils.uuid()); - requestParams.setVersion("1.0"); - requestParams.setParameter(parameter); - call(resourceList.getResourceAddress(), requestParams, new Callback() { + request(Constants.POLICE_EMERGENCY_DETAIL_ID, new Gson().toJson(params), new CustomCallBack() { @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - // 请求失败 - e.printStackTrace(); - activity.runOnUiThread(() -> callBack.onError(call, e)); + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); } @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (!response.isSuccessful()) { - activity.runOnUiThread(() -> callBack.onError(call, new IOException("Unexpected code " + response))); - return; - } - try { - // 请求成功,处理响应数据 - String responseBody = response.body().string(); - ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); - if (!"200".equals(responseParams.getCode())) { - activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器异常,请联系开发人员或稍后重试!"))); - return; - } - for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { - for (ResponseParams.FieldValues i : item.getFieldValues()) { - PoliceEmergencyDetail keyPersonDetail = new Gson().fromJson(i.getValue(), PoliceEmergencyDetail.class); - activity.runOnUiThread(() -> callBack.onSuccess(keyPersonDetail)); - } - } - } catch (Exception e) { - e.printStackTrace(); - activity.runOnUiThread(() -> callBack.onError(call, e)); - } + public void onSuccess(String value) { + PoliceEmergencyDetail keyPersonDetail = new Gson().fromJson(value, PoliceEmergencyDetail.class); + callBack.onSuccess(keyPersonDetail); } }); } @@ -527,66 +159,91 @@ public class RequestClient { * 获取重点人数据统计 */ public void getKeyPersonMessageCount(CustomCallBack callBack) { - ResourceList resourceList = Constants.resourceListsMap.get(Constants.KEY_PERSON_MESSAGE_COUNT_ID); - RequestParams.Condition condition = new RequestParams.Condition(); - condition.setLogicalOperate("and"); - RequestParams.KeyValues keyValues = new RequestParams.KeyValues(); - keyValues.setKey("injson"); GetKeyPersonMessageCountParams params = new GetKeyPersonMessageCountParams(); params.setSfhm(Constants.SFZH); params.setJybh(Constants.USER_ID); params.setDept(Constants.USER_ORG_ID); // params.setSfhm("220104198105200331"); -// params.setDept(Constants.USER_ORG_ID); // params.setJybh("106222"); - keyValues.setValue(new Gson().toJson(params)); - List keyValuesList = new ArrayList<>(); - keyValuesList.add(keyValues); - condition.setKeyValueList(keyValuesList); - RequestParams.Parameter parameter = new RequestParams.Parameter(); - parameter.setCondition(condition); - parameter.setPage(new RequestParams.Page()); - parameter.setFields("outjson"); - parameter.setNetworkCode("3"); - parameter.setOrderBy(null); - parameter.setRegionalismCode(Constants.ORG_ID); - parameter.setDataObjId(Constants.KEY_PERSON_MESSAGE_COUNT_ID); - RequestParams requestParams = new RequestParams(); - requestParams.setMessageId(UiUtils.uuid()); - requestParams.setVersion("1.0"); - requestParams.setParameter(parameter); - call(resourceList.getResourceAddress(), requestParams, new Callback() { +// params.setDept(Constants.USER_ORG_ID); + request(Constants.KEY_PERSON_MESSAGE_COUNT_ID, new Gson().toJson(params), new CustomCallBack() { @Override - public void onFailure(@NonNull Call call, @NonNull IOException e) { - // 请求失败 - e.printStackTrace(); - activity.runOnUiThread(() -> callBack.onError(call, e)); + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); } @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (!response.isSuccessful()) { - activity.runOnUiThread(() -> callBack.onError(call, new IOException("Unexpected code " + response))); - return; - } - try { - // 请求成功,处理响应数据 - String responseBody = response.body().string(); - ResponseParams responseParams = new Gson().fromJson(responseBody, ResponseParams.class); - if (!"200".equals(responseParams.getCode())) { - activity.runOnUiThread(() -> callBack.onError(call, new Exception("服务器异常,请联系开发人员或稍后重试!"))); - return; - } - for (ResponseParams.FieldData item : responseParams.getData().getDataList()) { - for (ResponseParams.FieldValues i : item.getFieldValues()) { - DataCount dataCount = new Gson().fromJson(i.getValue(), DataCount.class); - activity.runOnUiThread(() -> callBack.onSuccess(dataCount)); - } - } - } catch (Exception e) { - e.printStackTrace(); - activity.runOnUiThread(() -> callBack.onError(call, e)); - } + public void onSuccess(String value) { + DataCount dataCount = new Gson().fromJson(value, DataCount.class); + callBack.onSuccess(dataCount); + } + }); + } + + /** + * 获取申请支援类型 + */ + public void getApplyType(CustomCallBack> callBack) { + HashMap params = new HashMap<>(); + params.put("type", "1"); + params.put("deptId", Constants.USER_ORG_ID); + params.put("sfhm", Constants.SFZH); + request(Constants.APPLY_TYPE_ID, new Gson().toJson(params), new CustomCallBack() { + @Override + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); + } + + @Override + public void onSuccess(String value) { + List applyTypes = new Gson().fromJson(value, new TypeToken>() { + }.getType()); + callBack.onSuccess(applyTypes); + } + }); + } + + /** + * 获取申请部门 + */ + public void getApplyDept(CustomCallBack> callBack) { + HashMap params = new HashMap<>(); + params.put("type", "2"); + params.put("deptId", Constants.USER_ORG_ID); + params.put("sfhm", Constants.SFZH); + request(Constants.APPLY_TYPE_ID, new Gson().toJson(params), new CustomCallBack() { + @Override + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); + } + + @Override + public void onSuccess(String value) { + List applyTypes = new Gson().fromJson(value, new TypeToken>() { + }.getType()); + callBack.onSuccess(applyTypes); + } + }); + } + /** + * 获取申请支援审批人 + */ + public void getApplyPerson(CustomCallBack> callBack) { + HashMap params = new HashMap<>(); + params.put("type", "3"); + params.put("deptId", Constants.USER_ORG_ID); + params.put("sfhm", Constants.SFZH); + request(Constants.APPLY_TYPE_ID, new Gson().toJson(params), new CustomCallBack() { + @Override + public void onError(Call call, @NonNull Exception e) { + callBack.onError(call, e); + } + + @Override + public void onSuccess(String value) { + List applyTypes = new Gson().fromJson(value, new TypeToken>() { + }.getType()); + callBack.onSuccess(applyTypes); } }); } diff --git a/app/src/main/java/com/police/policedatasystem/improve/fragment/ImproveFragment.java b/app/src/main/java/com/police/policedatasystem/improve/fragment/ImproveFragment.java new file mode 100644 index 0000000..e3a2f3a --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/improve/fragment/ImproveFragment.java @@ -0,0 +1,32 @@ +package com.police.policedatasystem.improve.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.PopupWindow; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.police.policedatasystem.databinding.FragmentImproveBinding; + +/** + * 改进意见 + */ +public class ImproveFragment extends Fragment { + private FragmentImproveBinding binding; + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + binding = FragmentImproveBinding.inflate(inflater); + initView(); + return binding.getRoot(); + } + + private void initView() { + + } +} diff --git a/app/src/main/java/com/police/policedatasystem/improve/viewmodel/ImproveViewModel.java b/app/src/main/java/com/police/policedatasystem/improve/viewmodel/ImproveViewModel.java new file mode 100644 index 0000000..41a22b3 --- /dev/null +++ b/app/src/main/java/com/police/policedatasystem/improve/viewmodel/ImproveViewModel.java @@ -0,0 +1,67 @@ +package com.police.policedatasystem.improve.viewmodel; + +import androidx.annotation.NonNull; + +import com.google.gson.Gson; +import com.police.policedatasystem.data.activity.KeyPersonDetailActivity; +import com.police.policedatasystem.data.activity.PoliceEmergencyDetailActivity; +import com.police.policedatasystem.data.fragment.DataFragment; +import com.police.policedatasystem.data.model.DataCount; +import com.police.policedatasystem.data.model.KeyPerson; +import com.police.policedatasystem.data.model.KeyPersonDetail; +import com.police.policedatasystem.data.model.PoliceEmergency; +import com.police.policedatasystem.data.model.PoliceEmergencyDetail; +import com.police.policedatasystem.http.CustomCallBack; +import com.police.policedatasystem.http.requestparams.GetKeyPersonListParams; +import com.police.policedatasystem.http.requestparams.GetOrgKeyPersonListParams; +import com.police.policedatasystem.http.requestparams.GetPoliceEmergencyListParams; +import com.police.policedatasystem.improve.fragment.ImproveFragment; +import com.police.policedatasystem.indexActivity; +import com.police.policedatasystem.util.Constants; +import com.police.policedatasystem.util.UiUtils; + +import java.util.List; + +import okhttp3.Call; + +public class ImproveViewModel { + private final ImproveFragment fragment; + public int pageNum = 1; + public indexActivity activity; + + public ImproveViewModel(ImproveFragment fragment, indexActivity activity) { + this.fragment = fragment; + this.activity = activity; + } + + public void keyPersonInit() { +// fragment.loadingShow(); + pageNum = 1; +// fragment.personList.clear(); + //加载数据 +// GetKeyPersonListParams params = new GetKeyPersonListParams(); +// params.setPageNum(pageNum + ""); +// if (fragment.filterType == 0) { +// params.setXm(fragment.binding.etInput.getText().toString()); +// } else { +// params.setSfzh(fragment.binding.etInput.getText().toString()); +// } +// activity.requestClient.getKeyPerson(params, new CustomCallBack>() { +// @Override +// public void onError(@NonNull Call call, @NonNull Exception e) { +// UiUtils.toast(e.getMessage()); +// fragment.loadingNone(); +// } +// +// @Override +// public void onSuccess(List value) { +// fragment.loadingNone(); +// if (value != null) { +// fragment.personList.addAll(value); +// } +// fragment.adapter.notifyDataSetChanged(); +// } +// }); + } + +} diff --git a/app/src/main/java/com/police/policedatasystem/indexActivity.java b/app/src/main/java/com/police/policedatasystem/indexActivity.java index aad2ef5..63083a9 100644 --- a/app/src/main/java/com/police/policedatasystem/indexActivity.java +++ b/app/src/main/java/com/police/policedatasystem/indexActivity.java @@ -15,22 +15,24 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; +import com.police.policedatasystem.apply.fragment.ApplyFragment; +import com.police.policedatasystem.data.fragment.DataFragment; import com.police.policedatasystem.databinding.ActivityIndexBinding; -import com.police.policedatasystem.fragment.ApplyFragment; -import com.police.policedatasystem.fragment.DataFragment; -import com.police.policedatasystem.fragment.MineFragment; import com.police.policedatasystem.http.RequestClient; +import com.police.policedatasystem.improve.fragment.ImproveFragment; +import com.police.policedatasystem.main.viewmodel.IndexViewModel; +import com.police.policedatasystem.mine.fragment.MineFragment; import com.police.policedatasystem.util.Constants; -import com.police.policedatasystem.viewmodel.IndexViewModel; public class indexActivity extends AppCompatActivity { public ActivityIndexBinding binding; private IndexViewModel viewModel; public RequestClient requestClient; public boolean findAddress = false; - private final DataFragment dataFragment = new DataFragment(); - private final ApplyFragment applyFragment= new ApplyFragment(); - private final MineFragment mineFragment= new MineFragment(); + private final DataFragment dataFragment = new DataFragment(); + private final ApplyFragment applyFragment = new ApplyFragment(); + private final MineFragment mineFragment = new MineFragment(); + private final ImproveFragment improveFragment = new ImproveFragment(); @Override protected void onCreate(Bundle savedInstanceState) { @@ -51,6 +53,8 @@ public class indexActivity extends AppCompatActivity { binding.navBarGroup.navBarText2.setTextColor(getColor(R.color.normal_color)); binding.navBarGroup.navBarIcon3.setImageResource(R.mipmap.icon_mine_normal); binding.navBarGroup.navBarText3.setTextColor(getColor(R.color.normal_color)); + binding.navBarGroup.navBarIcon4.setImageResource(R.mipmap.icon_improve_normal); + binding.navBarGroup.navBarText4.setTextColor(getColor(R.color.normal_color)); }); binding.navBarGroup.navBar2.setOnClickListener(view -> { replaceFragment(applyFragment); @@ -60,6 +64,8 @@ public class indexActivity extends AppCompatActivity { binding.navBarGroup.navBarText2.setTextColor(getColor(R.color.selected_color)); binding.navBarGroup.navBarIcon3.setImageResource(R.mipmap.icon_mine_normal); binding.navBarGroup.navBarText3.setTextColor(getColor(R.color.normal_color)); + binding.navBarGroup.navBarIcon4.setImageResource(R.mipmap.icon_improve_normal); + binding.navBarGroup.navBarText4.setTextColor(getColor(R.color.normal_color)); }); binding.navBarGroup.navBar3.setOnClickListener(view -> { replaceFragment(mineFragment); @@ -69,6 +75,19 @@ public class indexActivity extends AppCompatActivity { binding.navBarGroup.navBarText2.setTextColor(getColor(R.color.normal_color)); binding.navBarGroup.navBarIcon3.setImageResource(R.mipmap.icon_mine_selected); binding.navBarGroup.navBarText3.setTextColor(getColor(R.color.selected_color)); + binding.navBarGroup.navBarIcon4.setImageResource(R.mipmap.icon_improve_normal); + binding.navBarGroup.navBarText4.setTextColor(getColor(R.color.normal_color)); + }); + binding.navBarGroup.navBar4.setOnClickListener(view -> { + replaceFragment(improveFragment); + binding.navBarGroup.navBarIcon1.setImageResource(R.mipmap.icon_data_normal); + binding.navBarGroup.navBarText1.setTextColor(getColor(R.color.normal_color)); + binding.navBarGroup.navBarIcon2.setImageResource(R.mipmap.icon_apply_normal); + binding.navBarGroup.navBarText2.setTextColor(getColor(R.color.normal_color)); + binding.navBarGroup.navBarIcon3.setImageResource(R.mipmap.icon_mine_normal); + binding.navBarGroup.navBarText3.setTextColor(getColor(R.color.normal_color)); + binding.navBarGroup.navBarIcon4.setImageResource(R.mipmap.icon_improve_selected); + binding.navBarGroup.navBarText4.setTextColor(getColor(R.color.selected_color)); }); replaceFragment(dataFragment); registerBroadcastReceiver(); diff --git a/app/src/main/java/com/police/policedatasystem/App.java b/app/src/main/java/com/police/policedatasystem/main/App.java similarity index 91% rename from app/src/main/java/com/police/policedatasystem/App.java rename to app/src/main/java/com/police/policedatasystem/main/App.java index 183aa22..15a2423 100644 --- a/app/src/main/java/com/police/policedatasystem/App.java +++ b/app/src/main/java/com/police/policedatasystem/main/App.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem; +package com.police.policedatasystem.main; import android.app.Application; import android.os.Handler; diff --git a/app/src/main/java/com/police/policedatasystem/model/ResourceList.java b/app/src/main/java/com/police/policedatasystem/main/model/ResourceList.java similarity index 95% rename from app/src/main/java/com/police/policedatasystem/model/ResourceList.java rename to app/src/main/java/com/police/policedatasystem/main/model/ResourceList.java index cc694e0..6a011c3 100644 --- a/app/src/main/java/com/police/policedatasystem/model/ResourceList.java +++ b/app/src/main/java/com/police/policedatasystem/main/model/ResourceList.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.main.model; import java.io.Serializable; diff --git a/app/src/main/java/com/police/policedatasystem/model/UserCredential.java b/app/src/main/java/com/police/policedatasystem/main/model/UserCredential.java similarity index 98% rename from app/src/main/java/com/police/policedatasystem/model/UserCredential.java rename to app/src/main/java/com/police/policedatasystem/main/model/UserCredential.java index 339d54c..4f57e26 100644 --- a/app/src/main/java/com/police/policedatasystem/model/UserCredential.java +++ b/app/src/main/java/com/police/policedatasystem/main/model/UserCredential.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.model; +package com.police.policedatasystem.main.model; import java.io.Serializable; diff --git a/app/src/main/java/com/police/policedatasystem/viewmodel/IndexViewModel.java b/app/src/main/java/com/police/policedatasystem/main/viewmodel/IndexViewModel.java similarity index 82% rename from app/src/main/java/com/police/policedatasystem/viewmodel/IndexViewModel.java rename to app/src/main/java/com/police/policedatasystem/main/viewmodel/IndexViewModel.java index ea4c2c2..1e285ff 100644 --- a/app/src/main/java/com/police/policedatasystem/viewmodel/IndexViewModel.java +++ b/app/src/main/java/com/police/policedatasystem/main/viewmodel/IndexViewModel.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.viewmodel; +package com.police.policedatasystem.main.viewmodel; import com.police.policedatasystem.indexActivity; diff --git a/app/src/main/java/com/police/policedatasystem/main/RotatedTextView.java b/app/src/main/java/com/police/policedatasystem/main/widget/RotatedTextView.java similarity index 96% rename from app/src/main/java/com/police/policedatasystem/main/RotatedTextView.java rename to app/src/main/java/com/police/policedatasystem/main/widget/RotatedTextView.java index 5b2a4cd..1a061b4 100644 --- a/app/src/main/java/com/police/policedatasystem/main/RotatedTextView.java +++ b/app/src/main/java/com/police/policedatasystem/main/widget/RotatedTextView.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.main; +package com.police.policedatasystem.main.widget; import android.content.Context; import android.graphics.Canvas; diff --git a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkBg.java b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkBg.java similarity index 98% rename from app/src/main/java/com/police/policedatasystem/widget/WaterMarkBg.java rename to app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkBg.java index 91c24f5..2755706 100644 --- a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkBg.java +++ b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkBg.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.widget; +package com.police.policedatasystem.main.widget; import android.content.Context; import android.graphics.Canvas; diff --git a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkInfo.java b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkInfo.java similarity index 98% rename from app/src/main/java/com/police/policedatasystem/widget/WaterMarkInfo.java rename to app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkInfo.java index bbc9e73..be68c40 100644 --- a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkInfo.java +++ b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkInfo.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.widget; +package com.police.policedatasystem.main.widget; import android.graphics.Color; import android.graphics.Paint; diff --git a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkManager.java b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkManager.java similarity index 98% rename from app/src/main/java/com/police/policedatasystem/widget/WaterMarkManager.java rename to app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkManager.java index c3089c7..dd06f93 100644 --- a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkManager.java +++ b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkManager.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.widget; +package com.police.policedatasystem.main.widget; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkView.java b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkView.java similarity index 99% rename from app/src/main/java/com/police/policedatasystem/widget/WaterMarkView.java rename to app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkView.java index 53e453c..341aea9 100644 --- a/app/src/main/java/com/police/policedatasystem/widget/WaterMarkView.java +++ b/app/src/main/java/com/police/policedatasystem/main/widget/WaterMarkView.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.widget; +package com.police.policedatasystem.main.widget; import android.annotation.SuppressLint; import android.content.Context; diff --git a/app/src/main/java/com/police/policedatasystem/fragment/MineFragment.java b/app/src/main/java/com/police/policedatasystem/mine/fragment/MineFragment.java similarity index 98% rename from app/src/main/java/com/police/policedatasystem/fragment/MineFragment.java rename to app/src/main/java/com/police/policedatasystem/mine/fragment/MineFragment.java index 92eff44..780f4df 100644 --- a/app/src/main/java/com/police/policedatasystem/fragment/MineFragment.java +++ b/app/src/main/java/com/police/policedatasystem/mine/fragment/MineFragment.java @@ -1,4 +1,4 @@ -package com.police.policedatasystem.fragment; +package com.police.policedatasystem.mine.fragment; import android.content.Context; import android.os.Bundle; diff --git a/app/src/main/java/com/police/policedatasystem/util/Constants.java b/app/src/main/java/com/police/policedatasystem/util/Constants.java index a0be397..7815740 100644 --- a/app/src/main/java/com/police/policedatasystem/util/Constants.java +++ b/app/src/main/java/com/police/policedatasystem/util/Constants.java @@ -1,6 +1,6 @@ package com.police.policedatasystem.util; -import com.police.policedatasystem.model.ResourceList; +import com.police.policedatasystem.main.model.ResourceList; import java.util.HashMap; diff --git a/app/src/main/java/com/police/policedatasystem/util/UiUtils.java b/app/src/main/java/com/police/policedatasystem/util/UiUtils.java index 10bf688..beaa034 100644 --- a/app/src/main/java/com/police/policedatasystem/util/UiUtils.java +++ b/app/src/main/java/com/police/policedatasystem/util/UiUtils.java @@ -3,7 +3,7 @@ package com.police.policedatasystem.util; import android.util.Base64; import android.widget.Toast; -import com.police.policedatasystem.App; +import com.police.policedatasystem.main.App; import java.util.UUID; diff --git a/app/src/main/res/layout/activity_index.xml b/app/src/main/res/layout/activity_index.xml index 17c7fcd..d9d1d48 100644 --- a/app/src/main/res/layout/activity_index.xml +++ b/app/src/main/res/layout/activity_index.xml @@ -9,14 +9,14 @@ + android:layout_height="match_parent" + android:layout_marginBottom="50dp" /> - - - + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_selector.xml b/app/src/main/res/layout/dialog_selector.xml new file mode 100644 index 0000000..db13c75 --- /dev/null +++ b/app/src/main/res/layout/dialog_selector.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/app/src/main/res/layout/dropdown_layout4.xml b/app/src/main/res/layout/dropdown_layout4.xml index e49fb43..a9fdb37 100644 --- a/app/src/main/res/layout/dropdown_layout4.xml +++ b/app/src/main/res/layout/dropdown_layout4.xml @@ -4,73 +4,74 @@ android:background="@drawable/all_7_line_ccc_bg" android:paddingHorizontal="15dp" android:paddingVertical="2dp" + android:id="@+id/ll_apply_type_group" android:orientation="vertical"> - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - + + + + + + + + + + - - + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_apply.xml b/app/src/main/res/layout/fragment_apply.xml index 22c1c83..f8651f8 100644 --- a/app/src/main/res/layout/fragment_apply.xml +++ b/app/src/main/res/layout/fragment_apply.xml @@ -72,9 +72,9 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" - android:text="处置警情" android:textColor="@color/black" - android:textSize="16sp" /> + android:textSize="16sp" + tools:text="处置警情" /> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_dialog_selector.xml b/app/src/main/res/layout/item_dialog_selector.xml new file mode 100644 index 0000000..333cafa --- /dev/null +++ b/app/src/main/res/layout/item_dialog_selector.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/layout/view_water_mark.xml b/app/src/main/res/layout/view_water_mark.xml index 0cc4b6b..b09bbfd 100644 --- a/app/src/main/res/layout/view_water_mark.xml +++ b/app/src/main/res/layout/view_water_mark.xml @@ -1,4 +1,4 @@ - \ No newline at end of file diff --git a/app/src/main/res/mipmap-xxhdpi/icon_improve_normal.png b/app/src/main/res/mipmap-xxhdpi/icon_improve_normal.png new file mode 100644 index 0000000..5b33dda Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_improve_normal.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/icon_improve_selected.png b/app/src/main/res/mipmap-xxhdpi/icon_improve_selected.png new file mode 100644 index 0000000..38a7374 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/icon_improve_selected.png differ