From 36bb5cfd8a726945a17a18bd107d21e8d2a71bd0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E5=81=A5?= Date: Tue, 9 Nov 2021 09:24:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E6=9C=89=E6=B1=BD=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../baselib/constant/PathConfig.java | 13 +- .../baselib/core/camera/JCameraView.java | 29 +- .../widget/base/ViewPageNavigatorAdapter.java | 1 + .../core/widget/views/AddCarPersonDialog.java | 184 +++++ .../drawable-xhdpi/ic_checkbox_check_16.png | Bin 0 -> 449 bytes .../drawable-xhdpi/ic_checkbox_check_32.png | Bin 0 -> 989 bytes .../drawable-xhdpi/ic_checkbox_uncheck_16.png | Bin 0 -> 350 bytes .../drawable-xhdpi/ic_checkbox_uncheck_32.png | Bin 0 -> 787 bytes .../res/drawable-xhdpi/ic_loading_blue.png | Bin 0 -> 1738 bytes .../main/res/drawable-xhdpi/ic_star_gray.png | Bin 2419 -> 670 bytes .../res/drawable-xhdpi/ic_star_yellow.png | Bin 1748 -> 495 bytes .../src/main/res/drawable/anim_loading.xml | 4 +- .../main/res/drawable/sel_check_item_cir.xml | 4 +- .../main/res/layout/dialog_add_person_car.xml | 245 +++++++ .../src/main/res/layout/dialog_appraise.xml | 5 +- .../main/res/layout/dialog_choose_area.xml | 16 +- baselib/src/main/res/layout/dialog_input.xml | 21 +- .../src/main/res/layout/dialog_time_input.xml | 21 +- baselib/src/main/res/layout/fragment_base.xml | 4 +- baselib/src/main/res/values/strings.xml | 2 +- baselib/src/main/res/values/styles.xml | 2 + chatmodule/src/main/AndroidManifest.xml | 23 +- commandmodule/src/main/AndroidManifest.xml | 42 +- commonmodule/src/main/AndroidManifest.xml | 136 +++- .../cases/IncidentReportActivity.java | 387 +++++----- .../adapters/CarBelongPersonAdapter.java | 71 ++ .../commonmodule/adapters/CarListAdapter.java | 36 +- .../adapters/CarUsePersonAdapter.java | 68 ++ .../adapters/IncidentListAdapter.java | 2 +- .../beans/CarBelongPersonDetailBean.java | 92 +++ .../beans/CarBelongPersonListBean.java | 124 ++++ .../commonmodule/beans/CarDetailBean.java | 99 +++ .../commonmodule/beans/CarListBean.java | 131 ++++ .../beans/CarUsePersonDetailBean.java | 92 +++ .../beans/CarUsePersonListBean.java | 124 ++++ .../commonmodule/beans/SaveCarBean.java | 92 +++ .../beans/SaveCarBelongPersonBean.java | 83 +++ .../beans/SaveCarUsePersonBean.java | 83 +++ .../holders/CarBelongPersonHolder.java | 40 ++ .../commonmodule/holders/CarListHolder.java | 11 +- .../holders/CarUsePersonHolder.java | 39 + .../commonmodule/nets/GridApis.java | 115 +++ .../src/main/res/layout/item_car_list.xml | 33 +- .../src/main/res/layout/item_car_person.xml | 127 ++++ .../main/res/layout/item_incident_list.xml | 19 +- .../layout/item_knowledge_appraise_list.xml | 2 +- gridmodule/src/main/AndroidManifest.xml | 394 ++++++++-- .../activitys/cars/CarManageAddActivity.java | 521 ++++++++++++++ .../cars/CarManageDetailActivity.java | 678 ++++++++++++++++++ .../activitys/cars/CarManageEditActivity.java | 589 +++++++++++++++ .../activitys/cars/CarManageListActivity.java | 321 +++++++++ .../activitys/cars/CarPersonEditActivity.java | 356 +++++++++ .../orgmanage/NonPublicOrgAddActivity.java | 2 + .../orgmanage/NonPublicOrgEditActivity.java | 2 + .../orgmanage/SocialOrgAddActivity.java | 2 + .../orgmanage/SocialOrgEditActivity.java | 2 + .../res/layout/activity_car_manage_add.xml | 156 ++++ .../res/layout/activity_car_manage_detail.xml | 336 +++++++++ .../res/layout/activity_car_manage_edit.xml | 156 ++++ .../res/layout/activity_car_manage_list.xml | 59 ++ .../res/layout/activity_car_person_edit.xml | 229 ++++++ .../fragments/GridMainFragment.java | 7 + .../moduleijkplayer/SimpleVideoActivity.java | 6 + .../main/res/layout/activity_simple_video.xml | 2 +- modulemap/src/main/AndroidManifest.xml | 6 +- .../src/main/AndroidManifest.xml | 36 +- 66 files changed, 6080 insertions(+), 402 deletions(-) create mode 100755 baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java create mode 100644 baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_16.png create mode 100644 baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_32.png create mode 100644 baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_16.png create mode 100644 baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_32.png create mode 100644 baselib/src/main/res/drawable-xhdpi/ic_loading_blue.png create mode 100755 baselib/src/main/res/layout/dialog_add_person_car.xml create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/CarBelongPersonAdapter.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/adapters/CarUsePersonAdapter.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/CarBelongPersonDetailBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/CarBelongPersonListBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/CarUsePersonDetailBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/CarUsePersonListBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/SaveCarBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/SaveCarBelongPersonBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/beans/SaveCarUsePersonBean.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/CarBelongPersonHolder.java create mode 100644 commonmodule/src/main/java/com/tengshisoft/commonmodule/holders/CarUsePersonHolder.java create mode 100644 commonmodule/src/main/res/layout/item_car_person.xml create mode 100644 gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/cars/CarManageAddActivity.java create mode 100644 gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/cars/CarManageDetailActivity.java create mode 100644 gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/cars/CarManageEditActivity.java create mode 100644 gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/cars/CarManageListActivity.java create mode 100644 gridmodule/src/main/java/com/tengshisoft/gridmodule/incident/activitys/cars/CarPersonEditActivity.java create mode 100644 gridmodule/src/main/res/layout/activity_car_manage_add.xml create mode 100644 gridmodule/src/main/res/layout/activity_car_manage_detail.xml create mode 100644 gridmodule/src/main/res/layout/activity_car_manage_edit.xml create mode 100644 gridmodule/src/main/res/layout/activity_car_manage_list.xml create mode 100644 gridmodule/src/main/res/layout/activity_car_person_edit.xml diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java index d3fd95a..97b789d 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/constant/PathConfig.java @@ -140,7 +140,7 @@ public class PathConfig { public static final String DIC_ORG_TYPE = "9041ffbf-6fb6-4a0d-909b-92aff2d0f432";//社会组织类型 public static final String DIC_DANGER_TYPE = "c15f10cf-0e92-46b9-b5ba-98f6ebc1701e";//安全隐患类型 public static final String DIC_ENTERPRISE_TYPE = "5b50ab4c-70b1-47e8-a3a7-ab279f73b87d";//企业类型 - + public static final String DIC_CAR_TYPE = "8e696099-0bda-4f29-9c60-9449a8c89bf5";//车辆类型 //=============================主页按钮模块类型=========================== public static final String MODULE_CALL = "call"; public static final String MODULE_PRISON = "prison"; @@ -324,6 +324,8 @@ public class PathConfig { public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_DEPT = "/modulecommon/activity/chooseDept";//部门选择接口 public static final String PATH_MODULE_COMMON_ACTIVITY_SEL_PERSON = "/modulecommon/activity/choosePerson";//人员选择 + + public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";//事件上报 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_LOG = "/modulecommon/activity/incidentLog";//事件日志 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DONE = "/modulecommon/activity/incidentDone";//已办事件 public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_DETAIL = "/modulecommon/activity/incidentDetail";//事件详情 @@ -522,12 +524,17 @@ public class PathConfig { public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_ADD = "/modulegrid/activity/componentAdd";//部件采集 public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_EDIT = "/modulegrid/activity/componentEdit";//部件信息编辑 public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_DETAIL = "/modulegrid/activity/componentDetail";//部件信息详情 - public static final String PATH_MODULE_GRID_ACTIVITY_COMPONENT_SEL_DEPT = "/modulegrid/activity/componentSelDept";//选择组织机构 - public static final String PATH_MODULE_COMMON_ACTIVITY_INCIDENT_REPORT = "/modulecommon/activity/incidentReport";//事件上报 + //车辆管理 + public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_LIST = "/modulegrid/activity/carManageList";//车辆管理列表 + public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_ADD = "/modulegrid/activity/carManageAdd";//车辆信息添加 + public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_EDIT = "/modulegrid/activity/carManageEdit";//车辆信息编辑 + public static final String PATH_MODULE_GRID_ACTIVITY_CAR_MANAGE_DETAIL = "/modulegrid/activity/carManageDetail";//车辆信息详情 + public static final String PATH_MODULE_GRID_ACTIVITY_CAR_PERSON_EDIT = "/modulegrid/activity/carPersonEdit";//车辆人员信息编辑 public static final String PATH_MODULE_GRID_ACTIVITY_WORK_LOCUS = "/modulegrid/activity/locusWork";//工作轨迹 + /*=========================================中心端============================================*/ public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_LIST = "/modulecommand/activity/incidentAcceptList";//事件受理列表 public static final String PATH_MODULE_COMMAND_ACTIVITY_INCIDENT_ACCEPT_DETAIL = "/modulecommand/activity/incidentAcceptDetail";//事件受理 diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/camera/JCameraView.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/camera/JCameraView.java index 3753ee3..b65853c 100755 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/camera/JCameraView.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/camera/JCameraView.java @@ -44,7 +44,7 @@ import java.io.IOException; * ===================================== */ public class JCameraView extends FrameLayout implements CameraInterface.CameraOpenOverCallback, SurfaceHolder - .Callback, CameraView { + .Callback, CameraView { // private static final String TAG = "JCameraView"; //Camera状态机 @@ -127,9 +127,9 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp //get AttributeSet TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.JCameraView, defStyleAttr, 0); iconSize = a.getDimensionPixelSize(R.styleable.JCameraView_iconSize, (int) TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_SP, 35, getResources().getDisplayMetrics())); + TypedValue.COMPLEX_UNIT_SP, 35, getResources().getDisplayMetrics())); iconMargin = a.getDimensionPixelSize(R.styleable.JCameraView_iconMargin, (int) TypedValue.applyDimension( - TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics())); + TypedValue.COMPLEX_UNIT_SP, 15, getResources().getDisplayMetrics())); iconSrc = a.getResourceId(R.styleable.JCameraView_iconSrc, R.drawable.ic_camera); iconLeft = a.getResourceId(R.styleable.JCameraView_iconLeft, 0); iconRight = a.getResourceId(R.styleable.JCameraView_iconRight, 0); @@ -150,11 +150,11 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp private void initView() { setWillNotDraw(false); View view = LayoutInflater.from(mContext).inflate(R.layout.camera_view, this); - mVideoView = (VideoView) view.findViewById(R.id.video_preview); - mPhoto = (ImageView) view.findViewById(R.id.image_photo); - mSwitchCamera = (ImageView) view.findViewById(R.id.image_switch); + mVideoView = view.findViewById(R.id.video_preview); + mPhoto = view.findViewById(R.id.image_photo); + mSwitchCamera = view.findViewById(R.id.image_switch); mSwitchCamera.setImageResource(iconSrc); - mFlashLamp = (ImageView) view.findViewById(R.id.image_flash); + mFlashLamp = view.findViewById(R.id.image_flash); setFlashRes(); mFlashLamp.setOnClickListener(v -> { type_flash++; @@ -162,10 +162,10 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp type_flash = TYPE_FLASH_AUTO; setFlashRes(); }); - mCaptureLayout = (CaptureLayout) view.findViewById(R.id.capture_layout); + mCaptureLayout = view.findViewById(R.id.capture_layout); mCaptureLayout.setDuration(duration); mCaptureLayout.setIconSrc(iconLeft, iconRight); - mFoucsView = (FoucsView) view.findViewById(R.id.fouce_view); + mFoucsView = view.findViewById(R.id.fouce_view); mVideoView.getHolder().addCallback(this); //切换摄像头 mSwitchCamera.setOnClickListener(v -> machine.swtich(mVideoView.getHolder(), screenProp)); @@ -325,7 +325,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp float point_2_Y = event.getY(1); float result = (float) Math.sqrt(Math.pow(point_1_X - point_2_X, 2) + Math.pow(point_1_Y - - point_2_Y, 2)); + point_2_Y, 2)); if (firstTouch) { firstTouchLength = result; @@ -347,12 +347,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp //对焦框指示器动画 private void setFocusViewWidthAnimation(float x, float y) { - machine.foucs(x, y, new CameraInterface.FocusCallback() { - @Override - public void focusSuccess() { - mFoucsView.setVisibility(INVISIBLE); - } - }); + machine.foucs(x, y, () -> mFoucsView.setVisibility(INVISIBLE)); } private void updateVideoViewSize(float videoWidth, float videoHeight) { @@ -476,7 +471,7 @@ public class JCameraView extends FrameLayout implements CameraInterface.CameraOp mMediaPlayer.setVideoScalingMode(MediaPlayer.VIDEO_SCALING_MODE_SCALE_TO_FIT); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mMediaPlayer.setOnVideoSizeChangedListener((mp, width, height) -> updateVideoViewSize(mMediaPlayer.getVideoWidth(), mMediaPlayer - .getVideoHeight())); + .getVideoHeight())); mMediaPlayer.setOnPreparedListener(mp -> mMediaPlayer.start()); mMediaPlayer.setLooping(true); mMediaPlayer.prepare(); diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ViewPageNavigatorAdapter.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ViewPageNavigatorAdapter.java index 293663b..4012e08 100644 --- a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ViewPageNavigatorAdapter.java +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/base/ViewPageNavigatorAdapter.java @@ -27,6 +27,7 @@ public class ViewPageNavigatorAdapter extends CommonNavigatorAdapter { public ViewPageNavigatorAdapter(Context ctx, List titles, ViewPager2 vp) { this.mTitles = titles; this.mContext = ctx; + this.mVp = vp; } @Override diff --git a/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java new file mode 100755 index 0000000..34081a5 --- /dev/null +++ b/baselib/src/main/java/com/tenlionsoft/baselib/core/widget/views/AddCarPersonDialog.java @@ -0,0 +1,184 @@ +package com.tenlionsoft.baselib.core.widget.views; + +import android.app.Activity; +import android.app.Dialog; +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.text.TextUtils; +import android.util.DisplayMetrics; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.Window; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; +import android.widget.TextView; + +import com.bigkoo.pickerview.builder.TimePickerBuilder; +import com.bigkoo.pickerview.view.TimePickerView; +import com.hjq.toast.ToastUtils; +import com.tenlionsoft.baselib.R; +import com.tenlionsoft.baselib.utils.RegexUtils; +import com.tenlionsoft.baselib.utils.TimeUtils; + +import androidx.appcompat.widget.SwitchCompat; + + +/** + * 作者 : Adam on 2018/7/23. + * 邮箱 : itgaojian@163.com + * 描述 : 添加汽车使用或所属人员 + */ +public class AddCarPersonDialog extends Dialog { + + private View view; + private Context context; + private EditText mEtName; + private EditText mEtIdCard; + private OnChangeListener mChangeListener; + private SwitchCompat mSwIsKey; + private int mIsKey = 0; + private TextView mTvStartDate; + private TextView mTvEndDate; + private EditText mEtPhone; + + private AddCarPersonDialog(Context context) { + super(context, R.style.dialog_center_alpha); + this.context = context; + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + view = LayoutInflater.from(context).inflate(R.layout.dialog_add_person_car, null); + setContentView(view); + setCancelable(false); + setCanceledOnTouchOutside(false); + + mEtName = view.findViewById(R.id.et_name); + mEtIdCard = view.findViewById(R.id.et_id_card); + mEtPhone = view.findViewById(R.id.et_phone); + mTvStartDate = view.findViewById(R.id.tv_start_date); + mTvEndDate = view.findViewById(R.id.tv_end_date); + mSwIsKey = view.findViewById(R.id.sw_is_key); + mSwIsKey.setOnCheckedChangeListener((buttonView, isChecked) -> mIsKey = isChecked ? 1 : 0); + mTvStartDate.setOnClickListener(v -> onShowDate(1)); + mTvEndDate.setOnClickListener(v -> onShowDate(2)); + view.findViewById(R.id.tv_cancel).setOnClickListener(v -> this.dismiss()); + view.findViewById(R.id.tv_confirm).setOnClickListener(v -> doConfirm()); + view.findViewById(R.id.tv_both).setOnClickListener(v -> doBoth()); + DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); + Window window = this.getWindow(); + window.setGravity(Gravity.CENTER); + window.setWindowAnimations(R.style.dialog_center_alpha); + WindowManager.LayoutParams params = window.getAttributes(); + params.width = (int) (displayMetrics.widthPixels * 0.9); + params.height = WindowManager.LayoutParams.WRAP_CONTENT; + window.setAttributes(params); + window.setBackgroundDrawable(new ColorDrawable()); + } + + private void doBoth() { + if (checkParams()) { + if (mChangeListener != null) { + String name = mEtName.getText().toString().trim(); + String idcard = mEtIdCard.getText().toString().trim(); + String phone = mEtPhone.getText().toString().trim(); + String startDate = mTvStartDate.getText().toString().trim(); + String endDate = mTvEndDate.getText().toString().trim(); + mChangeListener.doChange(name, idcard, phone, startDate, endDate, mIsKey + "", 2); + } + } + } + + private void doConfirm() { + if (checkParams()) { + if (mChangeListener != null) { + String name = mEtName.getText().toString().trim(); + String idcard = mEtIdCard.getText().toString().trim(); + String phone = mEtPhone.getText().toString().trim(); + String startDate = mTvStartDate.getText().toString().trim(); + String endDate = mTvEndDate.getText().toString().trim(); + mChangeListener.doChange(name, idcard, phone, startDate, endDate, mIsKey + "", 1); + } + } + } + + private void onShowDate(int type) { + TimePickerView mTimePickerView = new TimePickerBuilder(context, (date, v) -> { + switch (type) { + case 1: + mTvStartDate.setText(TimeUtils.dateToString(date)); + break; + case 2: + mTvEndDate.setText(TimeUtils.dateToString(date)); + break; + } + }) + .setTitleText("请选日期") + .setCancelColor(Color.parseColor("#1189FF")) + .setSubmitColor(Color.parseColor("#1189FF")) + .isDialog(true) + .setType(new boolean[]{true, true, true, false, false, false}) + .setTitleColor(Color.parseColor("#1189FF")) + .build(); + mTimePickerView.show(); + } + + public void HideSoftKeyBoardDialog(Activity activity) { + try { + InputMethodManager imm = (InputMethodManager) activity.getSystemService(activity.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(InputMethodManager.HIDE_NOT_ALWAYS, 0); + } catch (Exception ex) { + + + } + } + + public void addOnChangeListener(OnChangeListener listener) { + this.mChangeListener = listener; + } + + public interface OnChangeListener { + void doChange(String name, String idcard, String phone, String startTime, String endTime, String isUse, int type); + } + + /** + * 校验参数 + */ + private boolean checkParams() { + String originPwd = mEtName.getText().toString().trim(); + if (TextUtils.isEmpty(originPwd)) { + ToastUtils.show("请输入姓名"); + return false; + } + String idcard = mEtIdCard.getText().toString().trim(); + if (TextUtils.isEmpty(idcard) || !RegexUtils.isIDNumber(idcard)) { + ToastUtils.show("请输入正确的身份证号码"); + return false; + } + String phone = mEtPhone.getText().toString().trim(); + if (TextUtils.isEmpty(phone) || !RegexUtils.isTel(phone)) { + ToastUtils.show("请输入合法的联系电话"); + return false; + } + return true; + } + + + public static class DialogBuilder { + private Context mContext; + + public DialogBuilder(Context context) { + this.mContext = context; + } + + + public AddCarPersonDialog build() { + return new AddCarPersonDialog(mContext); + } + } +} \ No newline at end of file diff --git a/baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_16.png b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_16.png new file mode 100644 index 0000000000000000000000000000000000000000..7c15724731fdf0814c34736891f132d908dab735 GIT binary patch literal 449 zcmV;y0Y3hTP)Px$dr3q=R5(wylf5rQK@`Q$eTYghuO*S#AwuhqP-+xP1=)Fpk4R)Sb}K=ndGkU+ zkI?xWM4}^N=Sd`#b`X(}Wv`4_d2e@#L`*jy_sqHHH$(X2pg-2*M}dy$yvJQ|pB=dR z?xKbQerT4Npa5)r7ETaDmjaoq6{-^u+Ax4ItK@F-uph;v%)D=vOx2_&zBU1Yj&4=v zL};@E&@jMH;L4s2`tzMSp7g*iB_+eEcuGKM^JtZ96S}wt(0tMXF|U?_z6B8$%Qon1 zsS{}5FumR@=I#O+h|pYv(3R?!abpA7?VPN?^YFl`)O16veA`kMG(he#GmxGARi_OZ`h8Z|~@aVXd%^dh)afLzS zOn4?>(NS^21g|xTvks#lnYhBVdZ#j*Ne7)e9wG4Ij~J^34kt6OgXrL6jd_%aW|H_C rwov=Z92vJ(O}x=_{@>5^o1gj)N)eY4$WUhS00000NkvXXu0mjff-1}Q literal 0 HcmV?d00001 diff --git a/baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_32.png b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_32.png new file mode 100644 index 0000000000000000000000000000000000000000..b48676fcb725b8f76a8df722e80c8f2c0b2aad10 GIT binary patch literal 989 zcmV<310wv1P)Px&mq|oHR9HvtmQ9EpMHI*XuO{y1urYRTl0y^`XKELAb4hdw8WazUxrivDC!+x+ z?$kuVk3%F8M=&TFP?mI!>mvAhQ9(pKm?%m)j+Y2q*Lwf=e*E9-S53GA4qX8ZScGVG;s5JI-?&-1gfL73Lm-+JVR)27I$@uX ze_qavWpcvR{woZ=mw-ZtVn@LAfh`qwWr0Zru|iJ`hRD4GU_F360RPM+4pWGOVrfr< zFI^l7nMa6e1i+mPd|RKM*@*J+Od6O(2-mBYLE?D;XPCre^Zi)Lne>)Su7{!Ey zb$=A)Pe~wMAsk)3jUe`c!xwC6u$+`Ee(!2?2*9vaa#@nDD}<}fNdT@@(wSGltCoqx zItFe6XokW20Xk4ug*RJqE4}Hy2A#jajF;;r`D{0kju4La#|iv6fG4ezueXx8+I$)H zyj=4<@D0DiZs zusIXNvWe=7s~X}g6Ys1S2X;i_*nlRr81Wf$wV7mKZQP-S3EDd0RQwIZe1HV*3C857 za}e5m2;lx?0suslwpiE_#rAu(?IF=~btRW(a>CKIF#=UYZ|}9|9=ZO^KTep_AY7LU z0{n$l19#2oDktv)haW>=*pA6x+UeUnq5Ulco|p%r{a*pTAq@lpp9Mv9-S$OWC){y!HJ0Ffd@!A+JEiV6o}@{9 z%CD)IwSut^Kp!F89H_zQzoO%DJ+ljhrva*2RTxYHi0%_1T1gzwyhMa;0DT4UDPlgw zA~!{i*^nuBBN68rECCt?;Wb;7Po)9K1ks$42MILF;57i&5YXE!bRl{{0UQ@Xd=iZ1 zzfKE~8De2#_YE^7X2tBet@&D(q6=eFx8uJQNzyJtv>aM=qUFTjEZ<`={(GA<00000 LNkvXXu0mjfiEY1- literal 0 HcmV?d00001 diff --git a/baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_16.png b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0d78e435e699a00940ba61d8e7aa85e8af1f3483 GIT binary patch literal 350 zcmV-k0iphhP)Px$7)eAyR5(wylfO#DKoG{iU2SYG1;SXg+4f5?0xomNR^8yhVwv{%s1 zXAr?RQ1BJRN+hf-TqMcuCBor$yF2rnneSr^);wm-d<+7LqSy)r@;rZERVWHj)xsEa z0N{F&xaYmUB$@X?O8`~%0Cq{bCd(B+Ih-2;es8O7bnl{dN!(Pm<(NM2<%QH+5Z~HO}-$ z_z;oJ5x^J8X;g!Sea|BD5Q9`zb!v>6w(X4B_zFNtUbP`*S?*YC9|vu05`vuo&H*%? w%m5s-WtVYWBuhF!FaQ7m literal 0 HcmV?d00001 diff --git a/baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_32.png b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_32.png new file mode 100644 index 0000000000000000000000000000000000000000..b2ffe6a1d1345cd2d6dd03226317eb41cea4e28d GIT binary patch literal 787 zcmV+u1MK{XP)Px%%}GQ-R9HvtmPu$7K@^7nzXB=~6%;*rb0Ls;Q4FG@co4lRUKMi?x8Ol1^~#Wl zEofp@4=6$q5kWz3f(V{mP~sL3;sP#+f*$msCzlB*Nk3^ZAR#k7J;^~K5BgMZ`TDO{ zRgd@wjQ;=wCLu<4;r~^lr>AEw$rfWwGsz*6Ps`=<%P5Mz*3)CTl!)UvBuTP~gqn@FAqupGcO0MAH1GRE8+8X6il#S5LA(VpTSR7MB^tfn*Vi|_TrPhDa7;uxtHoD@2qByVuvb<0Ipx}nI_J8_ z32_F%5)oOJ3nGND3cy{G8?Cih#slHK?;?3nM5g6}@ZRqtc}i91Ip@-&S+|7{HUqe1 zjA`lU=y)+!qA`0Sgs=m^>4}6;)n@11%bFqLI9{%*0~56!#+U=v+KTtZm`X%ZG_z1B ze3_`mB-w1OP5W$2t9C@w>-N(`98myoL}Yh85FG$wlHJzYqxE#A_kIt_K9Vb~wGVPb zqyZs>TL9LINajN~xE&bf51sAwUCbf77cd~L05$^uB&Ga>$Z19|}* z0B{4qJ5_y0@)gM>Ns{>_Q~4JGSO?&^i0rQgAQwdH9LMpNw1}!M29SPJ{}f7}>_-5e zH#9U{E*6V7YX!&+F*P5@JN5NhL;<_yr)X4=_n3 RQ)mDH002ovPDHLkV1nvTSO@?B literal 0 HcmV?d00001 diff --git a/baselib/src/main/res/drawable-xhdpi/ic_loading_blue.png b/baselib/src/main/res/drawable-xhdpi/ic_loading_blue.png new file mode 100644 index 0000000000000000000000000000000000000000..ee7d4372fb423f66aadb4e8b6213ba6e638b27ce GIT binary patch literal 1738 zcmV;*1~vJKP)Px*gh@m}RCr$PTU%@tRT%#MnN|(qwzGvG#0YFpi-ec}CV1fi5-&j`JYht60J*d~ z3m7lKXkrQv-Y+4*&QgRxB3=^S&;+9~^g&b%5?&O$vp~^^LE4!ji6ZRGZ>C{ox}DkX z%raZLbYGgz`7hu9o&WsjGG_=k`Hyb$_%TAjjgSEiJ5JuiwzbLz&5*#qkRl*+K?f{r*nVD?-)cs7+bVu$1k3bI_s+d1435aKMZ!z;m5Aa6}Roq*6K2FO{mq91} zg0w9x>|HN9q9h@b42Ws^Ap#b70e1)0pylS;VBfLMpcYeY+*z>Gu>1TN>vHd6vTZ@2 zE|%#BqgDJ|2|spmp`~q(9e8KNp6Czyw^a?uT5?elk=stJry5%dKbd*1~fJ zZ!^`V4aIWfGbg4>sBZ)FivQb)_S(3zxzPJDE&CXOKKBcd7;pBZ#LJNrFuDEcs7uy3 z9l&I_GXg&AQN`k70AqLkrqo~hM_96Tt`LkL$ato6ij|jyTxaV&$>!hPa0F~leZ_5&^S@tl3k%3kZ%lhc<+MwK;RsAX!Jso0N_i>Yy)Ka*%*pj^FBD7E<-6R4RY~jbg7AXN zSJt-BGT2HoGy&H$s7h@qncSX!)2PefV9V)YPe44KUBN_q{77V=!&JpWzjj{&6ir_W zpbg;LLA2FKip`bwR22GgP1hJmma@&Vbf?*p@S456PlUYZ-Tq6{D1r%Nv((0`V6W6L z@XP@3F-2X5+Bhu?$S8FbP5%JE>QX)|aN>g6bjnM{lYqFE%`m97NWpW>A7yam*jCb= zn?O=q3E8to9@DWw{985w9vdEj!>_i=38WGkMbn+VL%;n=!5%|OnrdQ4@FKWFp9ve! z6EKm14-Hl9uLNY&x=KcWAB^X&`JpUHr1rEXzAoi^*iVD*;HtV3jJiiFwePG{Vc|Xk zTb5*X_-)5)DgzwSeD(}rf@&s3rkL28BS6vgF91B^l|c*~FjcX{-BwcsC~18a2m@Ze z^dp0@+DM7rg=Yf@7`;`WP%mRC$>^x`$hp#S98_OPXFmqfvXaYUAZ@B*ohJdYOl}r| z_k%H`Pk`~BkrFQk1u|6fik9sGNEyWcK|>Xf`Vf$9Atv{tq2HUFp$e>Azlx@R4`5!& zd7tr7Pf9HJBtX&npV2epyqOXc%LOphavp~w10XT*hN+5IJPGhv0`E3dQF5a()Iq!b z_s#t_z5_7U2iIR$WIJ)OrMcU;2wpu0SjvnJGbOYeDZp~Dl-e9I(R?%6c(`V#!9rlM z_LK9;=2c)UU~nGbgOKG{&6dQ4nqLT&lO;8u0YONpsg+=mzf)IZ7@4mFq7&UHE?B?jD3^CP3?2q>r5N0!1a21YUnCAtS5q%k z2E^0)J|;X(MdxeP1b)4I1t#F?Eivb|Xx~p}66aHmx$6a}+I9jHfUWwiv3h(0o^C19v7QwAYBG6LMiaxilUCna{sPe%}WCT>2n$^-D gA)s1J->8261LVeYUn55Iv;Y7A07*qoM6N<$f*5-|ssI20 literal 0 HcmV?d00001 diff --git a/baselib/src/main/res/drawable-xhdpi/ic_star_gray.png b/baselib/src/main/res/drawable-xhdpi/ic_star_gray.png index 5f9b1deab7c5683cc913d1eeb4b6812a0be78c57..2842aa567898f8b11b65ac35f0cb81388bd6faf9 100644 GIT binary patch literal 670 zcmV;P0%84$P)QS13?r`;nk?1g#kfOuuv>4 zJSrgwTBH&Sn`k9ksGwp{ECdTnMX)i2AcBa3SXhXH5)v#^8geH^q7bzbw6KZq%il08 zliloY5)txY$n4I4$KSb#%~p+S{O3rg(=F8gL_8LY?W5(m?N?fSPY_qyUZupx1<~n5 zBHl!Pij8WkODF25E3s?%`(Ua^aS++JpB+| zB2Izdp=ID1!rfMdWdUw)K?9ud%n5h7T&||X;=4+LT1hj)TzN_;z9@YD8NK9HA$h~9 zIHuDn@U0dFqJu^NO_>$P0_>r4qtM}{XTrkj15^a@Xl3Cn7}r%fp;qgeitHcw-GCNQ{tISrd4+Li-FJF zh`DaoFz`lr;xcT2L=^+UV9>4_b6{bfDdXs0Mj{cXngj2{S_SAC$X`x@K%kbYr7IQB z5y_3IoSrYV-|1Rrjz`V2Un@{iyFl($iG8D;LTH$`+Y$O7s+>HAxC|R$6Wc1%0NSSP z&j_Zej?R1-xfd~bJ}@P&1XT&575t7FFg^s#LNTBI2caV{L;uXyW&i*H07*qoM6N<$ Ef}e^TRsaA1 literal 2419 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 \ No newline at end of file diff --git a/baselib/src/main/res/drawable/sel_check_item_cir.xml b/baselib/src/main/res/drawable/sel_check_item_cir.xml index 9ba6b9a..e4055c0 100644 --- a/baselib/src/main/res/drawable/sel_check_item_cir.xml +++ b/baselib/src/main/res/drawable/sel_check_item_cir.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/baselib/src/main/res/layout/dialog_add_person_car.xml b/baselib/src/main/res/layout/dialog_add_person_car.xml new file mode 100755 index 0000000..2211884 --- /dev/null +++ b/baselib/src/main/res/layout/dialog_add_person_car.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/baselib/src/main/res/layout/dialog_appraise.xml b/baselib/src/main/res/layout/dialog_appraise.xml index 7cca2ea..77bcffa 100755 --- a/baselib/src/main/res/layout/dialog_appraise.xml +++ b/baselib/src/main/res/layout/dialog_appraise.xml @@ -57,11 +57,12 @@ + android:layout_weight="1" + android:gravity="center_vertical"> + android:gravity="right" + android:orientation="horizontal" + android:paddingRight="10dp">