diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java index 0b38424..91a57f5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java @@ -2,7 +2,7 @@ public interface ICleanToiletPresenter { void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java index 0b38424..91a57f5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java @@ -2,7 +2,7 @@ public interface ICleanToiletPresenter { void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index 4959539..55898a4 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -6,9 +6,11 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.location.Location; import android.text.InputType; +import android.text.TextPaint; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; @@ -18,8 +20,6 @@ import androidx.core.content.ContextCompat; import com.amap.api.location.AMapLocation; -import com.bumptech.glide.Glide; -import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; @@ -48,6 +48,8 @@ import com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.symbology.PictureMarkerSymbol; import com.esri.arcgisruntime.util.ListenableList; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureMimeType; @@ -60,8 +62,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Timer; -import java.util.TimerTask; import butterknife.BindView; import butterknife.OnClick; @@ -81,20 +81,22 @@ MapView mapView; @BindView(R.id.locationStreetView) TextView locationStreetView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; @BindView(R.id.workContentView) TextView workContentView; @BindView(R.id.toiletIdView) TextView toiletIdView; @BindView(R.id.startScanView) ImageView startScanView; - @BindView(R.id.pictureView) - ImageView pictureView; + @BindView(R.id.showPictureView) + TextView showPictureView; @BindView(R.id.takePictureView) ImageView takePictureView; @BindView(R.id.signInButton) QMUIRoundButton signInButton; - @BindView(R.id.clockView) - TextView clockView; private UploadImagePresenterImpl uploadImagePresenter; private String imagePath = "";//服务器返回的拍照数据 @@ -126,13 +128,9 @@ @Override public void initData() { - new Timer().schedule(new TimerTask() { - @Override - public void run() { - String systemTime = TimeOrDateUtil.timestampToTime(System.currentTimeMillis()); - clockView.post(() -> clockView.setText(systemTime)); - } - }, 0, 1000); + String systemTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + //默认显示结束时间 + endTimeView.setText(systemTime); LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -180,6 +178,9 @@ @Override public void initEvent() { + TextPaint textPaint = showPictureView.getPaint(); + textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 + textPaint.setAntiAlias(true);//抗锯齿 signInButton.setChangeAlphaWhenPress(true); } @@ -199,7 +200,7 @@ graphicsOverlays.add(mGraphicsOverlay); } - @OnClick({R.id.removeToLocalView, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) + @OnClick({R.id.removeToLocalView, R.id.startTimeLayout, R.id.endTimeLayout, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -238,6 +239,30 @@ } }, true); break; + case R.id.startTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择开始时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + startTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; + case R.id.endTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + endTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; case R.id.selectWorkLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) .setTitle("请填写您此次工作的内容") @@ -275,7 +300,7 @@ QrManager.getInstance().init(qrConfig).startScan(this, new QrManager.OnScanResultCallback() { @Override public void onScanSuccess(ScanResult result) { - toiletIdView.setText(result.content); + toiletIdView.setText(result.getContent()); } }); break; @@ -312,10 +337,15 @@ ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + String startTime = startTimeView.getText().toString(); + if (startTime.equals("")) { + ToastHelper.showToast("保洁开始时间不能为空", ToastHelper.WARING); + return; + } cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), - String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath, - StringHelper.filterString(workContentView.getText().toString())); + String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), startTime, + endTimeView.getText().toString(), + imagePath, StringHelper.filterString(workContentView.getText().toString())); } } }, true); @@ -389,9 +419,8 @@ ArrayList urls = new ArrayList<>(); urls.add(realPath); - Glide.with(context).load(realPath) - .apply(new RequestOptions().error(R.drawable.ic_load_error)).into(pictureView); - pictureView.setOnClickListener(new View.OnClickListener() { + showPictureView.setVisibility(View.VISIBLE); + showPictureView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, BigImageActivity.class); diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java index 0b38424..91a57f5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java @@ -2,7 +2,7 @@ public interface ICleanToiletPresenter { void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index 4959539..55898a4 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -6,9 +6,11 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.location.Location; import android.text.InputType; +import android.text.TextPaint; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; @@ -18,8 +20,6 @@ import androidx.core.content.ContextCompat; import com.amap.api.location.AMapLocation; -import com.bumptech.glide.Glide; -import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; @@ -48,6 +48,8 @@ import com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.symbology.PictureMarkerSymbol; import com.esri.arcgisruntime.util.ListenableList; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureMimeType; @@ -60,8 +62,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Timer; -import java.util.TimerTask; import butterknife.BindView; import butterknife.OnClick; @@ -81,20 +81,22 @@ MapView mapView; @BindView(R.id.locationStreetView) TextView locationStreetView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; @BindView(R.id.workContentView) TextView workContentView; @BindView(R.id.toiletIdView) TextView toiletIdView; @BindView(R.id.startScanView) ImageView startScanView; - @BindView(R.id.pictureView) - ImageView pictureView; + @BindView(R.id.showPictureView) + TextView showPictureView; @BindView(R.id.takePictureView) ImageView takePictureView; @BindView(R.id.signInButton) QMUIRoundButton signInButton; - @BindView(R.id.clockView) - TextView clockView; private UploadImagePresenterImpl uploadImagePresenter; private String imagePath = "";//服务器返回的拍照数据 @@ -126,13 +128,9 @@ @Override public void initData() { - new Timer().schedule(new TimerTask() { - @Override - public void run() { - String systemTime = TimeOrDateUtil.timestampToTime(System.currentTimeMillis()); - clockView.post(() -> clockView.setText(systemTime)); - } - }, 0, 1000); + String systemTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + //默认显示结束时间 + endTimeView.setText(systemTime); LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -180,6 +178,9 @@ @Override public void initEvent() { + TextPaint textPaint = showPictureView.getPaint(); + textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 + textPaint.setAntiAlias(true);//抗锯齿 signInButton.setChangeAlphaWhenPress(true); } @@ -199,7 +200,7 @@ graphicsOverlays.add(mGraphicsOverlay); } - @OnClick({R.id.removeToLocalView, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) + @OnClick({R.id.removeToLocalView, R.id.startTimeLayout, R.id.endTimeLayout, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -238,6 +239,30 @@ } }, true); break; + case R.id.startTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择开始时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + startTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; + case R.id.endTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + endTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; case R.id.selectWorkLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) .setTitle("请填写您此次工作的内容") @@ -275,7 +300,7 @@ QrManager.getInstance().init(qrConfig).startScan(this, new QrManager.OnScanResultCallback() { @Override public void onScanSuccess(ScanResult result) { - toiletIdView.setText(result.content); + toiletIdView.setText(result.getContent()); } }); break; @@ -312,10 +337,15 @@ ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + String startTime = startTimeView.getText().toString(); + if (startTime.equals("")) { + ToastHelper.showToast("保洁开始时间不能为空", ToastHelper.WARING); + return; + } cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), - String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath, - StringHelper.filterString(workContentView.getText().toString())); + String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), startTime, + endTimeView.getText().toString(), + imagePath, StringHelper.filterString(workContentView.getText().toString())); } } }, true); @@ -389,9 +419,8 @@ ArrayList urls = new ArrayList<>(); urls.add(realPath); - Glide.with(context).load(realPath) - .apply(new RequestOptions().error(R.drawable.ic_load_error)).into(pictureView); - pictureView.setOnClickListener(new View.OnClickListener() { + showPictureView.setVisibility(View.VISIBLE); + showPictureView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, BigImageActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index d207d3d..5096801 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -38,8 +38,9 @@ public static final String IP_KEY = "BASE_IP"; - public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; + public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; + public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; public static final long IMAGE_MINUS_SIZE = 100 * 1024; public static final long HTTP_TIMEOUT = 30L; public static final int PERMISSIONS_CODE = 999; diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java index 0b38424..91a57f5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java @@ -2,7 +2,7 @@ public interface ICleanToiletPresenter { void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index 4959539..55898a4 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -6,9 +6,11 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.location.Location; import android.text.InputType; +import android.text.TextPaint; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; @@ -18,8 +20,6 @@ import androidx.core.content.ContextCompat; import com.amap.api.location.AMapLocation; -import com.bumptech.glide.Glide; -import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; @@ -48,6 +48,8 @@ import com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.symbology.PictureMarkerSymbol; import com.esri.arcgisruntime.util.ListenableList; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureMimeType; @@ -60,8 +62,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Timer; -import java.util.TimerTask; import butterknife.BindView; import butterknife.OnClick; @@ -81,20 +81,22 @@ MapView mapView; @BindView(R.id.locationStreetView) TextView locationStreetView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; @BindView(R.id.workContentView) TextView workContentView; @BindView(R.id.toiletIdView) TextView toiletIdView; @BindView(R.id.startScanView) ImageView startScanView; - @BindView(R.id.pictureView) - ImageView pictureView; + @BindView(R.id.showPictureView) + TextView showPictureView; @BindView(R.id.takePictureView) ImageView takePictureView; @BindView(R.id.signInButton) QMUIRoundButton signInButton; - @BindView(R.id.clockView) - TextView clockView; private UploadImagePresenterImpl uploadImagePresenter; private String imagePath = "";//服务器返回的拍照数据 @@ -126,13 +128,9 @@ @Override public void initData() { - new Timer().schedule(new TimerTask() { - @Override - public void run() { - String systemTime = TimeOrDateUtil.timestampToTime(System.currentTimeMillis()); - clockView.post(() -> clockView.setText(systemTime)); - } - }, 0, 1000); + String systemTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + //默认显示结束时间 + endTimeView.setText(systemTime); LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -180,6 +178,9 @@ @Override public void initEvent() { + TextPaint textPaint = showPictureView.getPaint(); + textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 + textPaint.setAntiAlias(true);//抗锯齿 signInButton.setChangeAlphaWhenPress(true); } @@ -199,7 +200,7 @@ graphicsOverlays.add(mGraphicsOverlay); } - @OnClick({R.id.removeToLocalView, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) + @OnClick({R.id.removeToLocalView, R.id.startTimeLayout, R.id.endTimeLayout, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -238,6 +239,30 @@ } }, true); break; + case R.id.startTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择开始时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + startTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; + case R.id.endTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + endTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; case R.id.selectWorkLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) .setTitle("请填写您此次工作的内容") @@ -275,7 +300,7 @@ QrManager.getInstance().init(qrConfig).startScan(this, new QrManager.OnScanResultCallback() { @Override public void onScanSuccess(ScanResult result) { - toiletIdView.setText(result.content); + toiletIdView.setText(result.getContent()); } }); break; @@ -312,10 +337,15 @@ ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + String startTime = startTimeView.getText().toString(); + if (startTime.equals("")) { + ToastHelper.showToast("保洁开始时间不能为空", ToastHelper.WARING); + return; + } cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), - String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath, - StringHelper.filterString(workContentView.getText().toString())); + String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), startTime, + endTimeView.getText().toString(), + imagePath, StringHelper.filterString(workContentView.getText().toString())); } } }, true); @@ -389,9 +419,8 @@ ArrayList urls = new ArrayList<>(); urls.add(realPath); - Glide.with(context).load(realPath) - .apply(new RequestOptions().error(R.drawable.ic_load_error)).into(pictureView); - pictureView.setOnClickListener(new View.OnClickListener() { + showPictureView.setVisibility(View.VISIBLE); + showPictureView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, BigImageActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index d207d3d..5096801 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -38,8 +38,9 @@ public static final String IP_KEY = "BASE_IP"; - public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; + public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; + public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; public static final long IMAGE_MINUS_SIZE = 100 * 1024; public static final long HTTP_TIMEOUT = 30L; public static final int PERMISSIONS_CODE = 999; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index db004ff..0318abd 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -487,7 +487,8 @@ @Field("userId") String userId, @Field("lng") String lng, @Field("lat") String lat, - @Field("cleanTime") String cleanTime, + @Field("startTime") String startTime, + @Field("endTime") String endTime, @Field("photo") String photo, @Field("workContent") String workContent); diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java index 0b38424..91a57f5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java @@ -2,7 +2,7 @@ public interface ICleanToiletPresenter { void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index 4959539..55898a4 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -6,9 +6,11 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.location.Location; import android.text.InputType; +import android.text.TextPaint; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; @@ -18,8 +20,6 @@ import androidx.core.content.ContextCompat; import com.amap.api.location.AMapLocation; -import com.bumptech.glide.Glide; -import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; @@ -48,6 +48,8 @@ import com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.symbology.PictureMarkerSymbol; import com.esri.arcgisruntime.util.ListenableList; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureMimeType; @@ -60,8 +62,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Timer; -import java.util.TimerTask; import butterknife.BindView; import butterknife.OnClick; @@ -81,20 +81,22 @@ MapView mapView; @BindView(R.id.locationStreetView) TextView locationStreetView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; @BindView(R.id.workContentView) TextView workContentView; @BindView(R.id.toiletIdView) TextView toiletIdView; @BindView(R.id.startScanView) ImageView startScanView; - @BindView(R.id.pictureView) - ImageView pictureView; + @BindView(R.id.showPictureView) + TextView showPictureView; @BindView(R.id.takePictureView) ImageView takePictureView; @BindView(R.id.signInButton) QMUIRoundButton signInButton; - @BindView(R.id.clockView) - TextView clockView; private UploadImagePresenterImpl uploadImagePresenter; private String imagePath = "";//服务器返回的拍照数据 @@ -126,13 +128,9 @@ @Override public void initData() { - new Timer().schedule(new TimerTask() { - @Override - public void run() { - String systemTime = TimeOrDateUtil.timestampToTime(System.currentTimeMillis()); - clockView.post(() -> clockView.setText(systemTime)); - } - }, 0, 1000); + String systemTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + //默认显示结束时间 + endTimeView.setText(systemTime); LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -180,6 +178,9 @@ @Override public void initEvent() { + TextPaint textPaint = showPictureView.getPaint(); + textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 + textPaint.setAntiAlias(true);//抗锯齿 signInButton.setChangeAlphaWhenPress(true); } @@ -199,7 +200,7 @@ graphicsOverlays.add(mGraphicsOverlay); } - @OnClick({R.id.removeToLocalView, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) + @OnClick({R.id.removeToLocalView, R.id.startTimeLayout, R.id.endTimeLayout, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -238,6 +239,30 @@ } }, true); break; + case R.id.startTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择开始时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + startTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; + case R.id.endTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + endTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; case R.id.selectWorkLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) .setTitle("请填写您此次工作的内容") @@ -275,7 +300,7 @@ QrManager.getInstance().init(qrConfig).startScan(this, new QrManager.OnScanResultCallback() { @Override public void onScanSuccess(ScanResult result) { - toiletIdView.setText(result.content); + toiletIdView.setText(result.getContent()); } }); break; @@ -312,10 +337,15 @@ ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + String startTime = startTimeView.getText().toString(); + if (startTime.equals("")) { + ToastHelper.showToast("保洁开始时间不能为空", ToastHelper.WARING); + return; + } cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), - String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath, - StringHelper.filterString(workContentView.getText().toString())); + String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), startTime, + endTimeView.getText().toString(), + imagePath, StringHelper.filterString(workContentView.getText().toString())); } } }, true); @@ -389,9 +419,8 @@ ArrayList urls = new ArrayList<>(); urls.add(realPath); - Glide.with(context).load(realPath) - .apply(new RequestOptions().error(R.drawable.ic_load_error)).into(pictureView); - pictureView.setOnClickListener(new View.OnClickListener() { + showPictureView.setVisibility(View.VISIBLE); + showPictureView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, BigImageActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index d207d3d..5096801 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -38,8 +38,9 @@ public static final String IP_KEY = "BASE_IP"; - public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; + public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; + public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; public static final long IMAGE_MINUS_SIZE = 100 * 1024; public static final long HTTP_TIMEOUT = 30L; public static final int PERMISSIONS_CODE = 999; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index db004ff..0318abd 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -487,7 +487,8 @@ @Field("userId") String userId, @Field("lng") String lng, @Field("lat") String lat, - @Field("cleanTime") String cleanTime, + @Field("startTime") String startTime, + @Field("endTime") String endTime, @Field("photo") String photo, @Field("workContent") String workContent); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 2e2cde7..25f3adc 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -526,12 +526,12 @@ */ public static Observable getCleanToiletResult(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, - String workContent) { + String startTime, String endTime, + String photo, String workContent) { Retrofit retrofit = createRetrofit(); RetrofitService service = retrofit.create(RetrofitService.class); return service.cleanToilet(AuthenticationHelper.getToken(), toiletId, userId, lng, lat, - cleanTime, photo, workContent); + startTime, endTime, photo, workContent); } /** diff --git a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java index eb7fac5..7e59046 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/CleanToiletModelImpl.java @@ -27,8 +27,10 @@ } @Override - public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, userId, lng, lat, cleanTime, photo, workContent); + public Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + Observable observable = RetrofitServiceManager.getCleanToiletResult(toiletId, + userId, lng, lat, startTime, endTime, photo, workContent); return observable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer() { @Override public void onCompleted() { diff --git a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java index 88bdd50..146fb46 100644 --- a/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java +++ b/app/src/main/java/com/casic/dcms/mvp/model/ICleanToiletModel.java @@ -4,5 +4,5 @@ public interface ICleanToiletModel { Subscription sendRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); } diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java index c59b5ca..f151d39 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/CleanToiletPresenterImpl.java @@ -26,8 +26,10 @@ } @Override - public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, String cleanTime, String photo, String workContent) { - addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, cleanTime, photo, workContent)); + public void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, + String startTime, String endTime, String photo, String workContent) { + addSubscription(actionModel.sendRetrofitRequest(toiletId, userId, lng, lat, startTime, endTime, + photo, workContent)); } @Override diff --git a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java index 0b38424..91a57f5 100644 --- a/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java +++ b/app/src/main/java/com/casic/dcms/mvp/presenter/ICleanToiletPresenter.java @@ -2,7 +2,7 @@ public interface ICleanToiletPresenter { void onReadyRetrofitRequest(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, String workContent); + String startTime, String endTime, String photo, String workContent); void disposeRetrofitRequest(); } diff --git a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java index 4959539..55898a4 100644 --- a/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java +++ b/app/src/main/java/com/casic/dcms/ui/PublicToiletActivity.java @@ -6,9 +6,11 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; +import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.location.Location; import android.text.InputType; +import android.text.TextPaint; import android.text.TextUtils; import android.view.View; import android.widget.ImageView; @@ -18,8 +20,6 @@ import androidx.core.content.ContextCompat; import com.amap.api.location.AMapLocation; -import com.bumptech.glide.Glide; -import com.bumptech.glide.request.RequestOptions; import com.casic.dcms.R; import com.casic.dcms.base.BaseActivity; import com.casic.dcms.bean.ActionResultBean; @@ -48,6 +48,8 @@ import com.esri.arcgisruntime.mapping.view.MapView; import com.esri.arcgisruntime.symbology.PictureMarkerSymbol; import com.esri.arcgisruntime.util.ListenableList; +import com.jzxiang.pickerview.TimePickerDialog; +import com.jzxiang.pickerview.data.Type; import com.luck.picture.lib.PictureSelector; import com.luck.picture.lib.config.PictureConfig; import com.luck.picture.lib.config.PictureMimeType; @@ -60,8 +62,6 @@ import java.io.File; import java.util.ArrayList; -import java.util.Timer; -import java.util.TimerTask; import butterknife.BindView; import butterknife.OnClick; @@ -81,20 +81,22 @@ MapView mapView; @BindView(R.id.locationStreetView) TextView locationStreetView; + @BindView(R.id.startTimeView) + TextView startTimeView; + @BindView(R.id.endTimeView) + TextView endTimeView; @BindView(R.id.workContentView) TextView workContentView; @BindView(R.id.toiletIdView) TextView toiletIdView; @BindView(R.id.startScanView) ImageView startScanView; - @BindView(R.id.pictureView) - ImageView pictureView; + @BindView(R.id.showPictureView) + TextView showPictureView; @BindView(R.id.takePictureView) ImageView takePictureView; @BindView(R.id.signInButton) QMUIRoundButton signInButton; - @BindView(R.id.clockView) - TextView clockView; private UploadImagePresenterImpl uploadImagePresenter; private String imagePath = "";//服务器返回的拍照数据 @@ -126,13 +128,9 @@ @Override public void initData() { - new Timer().schedule(new TimerTask() { - @Override - public void run() { - String systemTime = TimeOrDateUtil.timestampToTime(System.currentTimeMillis()); - clockView.post(() -> clockView.setText(systemTime)); - } - }, 0, 1000); + String systemTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + //默认显示结束时间 + endTimeView.setText(systemTime); LocationHelper.obtainCurrentLocationByGD(this, new ILocationListener() { @Override public void onLocationGet(Location location) { @@ -180,6 +178,9 @@ @Override public void initEvent() { + TextPaint textPaint = showPictureView.getPaint(); + textPaint.setFlags(Paint.UNDERLINE_TEXT_FLAG); //下划线 + textPaint.setAntiAlias(true);//抗锯齿 signInButton.setChangeAlphaWhenPress(true); } @@ -199,7 +200,7 @@ graphicsOverlays.add(mGraphicsOverlay); } - @OnClick({R.id.removeToLocalView, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) + @OnClick({R.id.removeToLocalView, R.id.startTimeLayout, R.id.endTimeLayout, R.id.selectWorkLayout, R.id.startScanView, R.id.takePictureView, R.id.signInButton}) @Override public void onClick(View v) { switch (v.getId()) { @@ -238,6 +239,30 @@ } }, true); break; + case R.id.startTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择开始时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + startTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; + case R.id.endTimeLayout: + new TimePickerDialog.Builder().setThemeColor(ContextCompat.getColor(this, R.color.mainThemeColor)) + .setTitleStringId("请选择结束时间") + .setWheelItemTextSize(16) + .setCyclic(false) + .setMinMillseconds(System.currentTimeMillis() - Constant.HALF_YEAR) + .setMaxMillseconds(System.currentTimeMillis()) + .setType(Type.ALL) + .setCallBack((timePickerView, millSeconds) -> { + endTimeView.setText(TimeOrDateUtil.timestampToCompleteDate(millSeconds)); + }).build().show(getSupportFragmentManager(), "all"); + break; case R.id.selectWorkLayout: new QMUIBottomSheet.BottomListSheetBuilder(this) .setTitle("请填写您此次工作的内容") @@ -275,7 +300,7 @@ QrManager.getInstance().init(qrConfig).startScan(this, new QrManager.OnScanResultCallback() { @Override public void onScanSuccess(ScanResult result) { - toiletIdView.setText(result.content); + toiletIdView.setText(result.getContent()); } }); break; @@ -312,10 +337,15 @@ ToastHelper.showToast("公厕标识不能为空", ToastHelper.WARING); return; } - String cleanTime = TimeOrDateUtil.timestampToCompleteDate(System.currentTimeMillis()); + String startTime = startTimeView.getText().toString(); + if (startTime.equals("")) { + ToastHelper.showToast("保洁开始时间不能为空", ToastHelper.WARING); + return; + } cleanToiletPresenter.onReadyRetrofitRequest(toiletId, StringHelper.getUserId(), - String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), cleanTime, imagePath, - StringHelper.filterString(workContentView.getText().toString())); + String.valueOf(gcjToWgs[0]), String.valueOf(gcjToWgs[1]), startTime, + endTimeView.getText().toString(), + imagePath, StringHelper.filterString(workContentView.getText().toString())); } } }, true); @@ -389,9 +419,8 @@ ArrayList urls = new ArrayList<>(); urls.add(realPath); - Glide.with(context).load(realPath) - .apply(new RequestOptions().error(R.drawable.ic_load_error)).into(pictureView); - pictureView.setOnClickListener(new View.OnClickListener() { + showPictureView.setVisibility(View.VISIBLE); + showPictureView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(context, BigImageActivity.class); diff --git a/app/src/main/java/com/casic/dcms/utils/Constant.java b/app/src/main/java/com/casic/dcms/utils/Constant.java index d207d3d..5096801 100644 --- a/app/src/main/java/com/casic/dcms/utils/Constant.java +++ b/app/src/main/java/com/casic/dcms/utils/Constant.java @@ -38,8 +38,9 @@ public static final String IP_KEY = "BASE_IP"; - public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; + public static final long HALF_YEAR = 180 * 60 * 60 * 24 * 1000L; public static final long ONE_YEAR = 365 * 60 * 60 * 24 * 1000L; + public static final long FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L; public static final long IMAGE_MINUS_SIZE = 100 * 1024; public static final long HTTP_TIMEOUT = 30L; public static final int PERMISSIONS_CODE = 999; diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java index db004ff..0318abd 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitService.java @@ -487,7 +487,8 @@ @Field("userId") String userId, @Field("lng") String lng, @Field("lat") String lat, - @Field("cleanTime") String cleanTime, + @Field("startTime") String startTime, + @Field("endTime") String endTime, @Field("photo") String photo, @Field("workContent") String workContent); diff --git a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java index 2e2cde7..25f3adc 100644 --- a/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java +++ b/app/src/main/java/com/casic/dcms/utils/retrofit/RetrofitServiceManager.java @@ -526,12 +526,12 @@ */ public static Observable getCleanToiletResult(String toiletId, String userId, String lng, String lat, - String cleanTime, String photo, - String workContent) { + String startTime, String endTime, + String photo, String workContent) { Retrofit retrofit = createRetrofit(); RetrofitService service = retrofit.create(RetrofitService.class); return service.cleanToilet(AuthenticationHelper.getToken(), toiletId, userId, lng, lat, - cleanTime, photo, workContent); + startTime, endTime, photo, workContent); } /** diff --git a/app/src/main/res/layout/activity_toilet.xml b/app/src/main/res/layout/activity_toilet.xml index 0f83375..c37ccf2 100644 --- a/app/src/main/res/layout/activity_toilet.xml +++ b/app/src/main/res/layout/activity_toilet.xml @@ -15,8 +15,7 @@ + android:layout_weight="1"> + android:padding="5dp" /> - - + android:layout_weight="2"> @@ -72,7 +66,7 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_gravity="center_vertical" - android:layout_toEndOf="@id/tt" + android:layout_marginStart="100dp" android:textSize="@dimen/textFontSize" /> - + android:text="查看保洁打卡图片" + android:textColor="@color/picture_color_blue" + android:textSize="@dimen/textFontSize" + android:visibility="gone" /> + + + + + + + + + + + + + + + + + + @@ -139,30 +183,16 @@ android:layout_height="match_parent" android:layout_below="@id/l"> - - - - - - +