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 0000000..7c15724 Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_16.png differ 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 0000000..b48676f Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_check_32.png differ 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 0000000..0d78e43 Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_16.png differ 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 0000000..b2ffe6a Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_checkbox_uncheck_32.png differ 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 0000000..ee7d437 Binary files /dev/null and b/baselib/src/main/res/drawable-xhdpi/ic_loading_blue.png differ 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 5f9b1de..2842aa5 100644 Binary files a/baselib/src/main/res/drawable-xhdpi/ic_star_gray.png and b/baselib/src/main/res/drawable-xhdpi/ic_star_gray.png differ diff --git a/baselib/src/main/res/drawable-xhdpi/ic_star_yellow.png b/baselib/src/main/res/drawable-xhdpi/ic_star_yellow.png index 307538d..7937f49 100644 Binary files a/baselib/src/main/res/drawable-xhdpi/ic_star_yellow.png and b/baselib/src/main/res/drawable-xhdpi/ic_star_yellow.png differ diff --git a/baselib/src/main/res/drawable/anim_loading.xml b/baselib/src/main/res/drawable/anim_loading.xml index 884ed42..d08d2e9 100755 --- a/baselib/src/main/res/drawable/anim_loading.xml +++ b/baselib/src/main/res/drawable/anim_loading.xml @@ -1,8 +1,8 @@ \ 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">