From fbfa859ff0fe312cbb49a3345b6e3d67d574a946 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期四, 28 十一月 2024 16:33:37 +0800
Subject: [PATCH] 1.工单列表界面 2.工单详情界面 3.处理工单界面选择图片相关
---
app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java | 2
app/src/main/java/com/dayu/pipirrapp/tool/GlideEngine.java | 119 ++
app/src/main/java/com/dayu/pipirrapp/net/Constants.java | 4
app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java | 302 ++++-
app/src/main/res/layout/activity_order_deal.xml | 80 +
app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java | 202 ++++
app/src/main/res/drawable/ps_image_placeholder.xml | 16
app/src/main/res/layout/fragment_order.xml | 232 ++++
app/src/main/res/drawable/ic_choose_gray_edge.xml | 8
app/src/main/res/mipmap-xhdpi/ps_ic_video.png | 0
app/build.gradle | 11
app/src/main/res/values/dimens.xml | 15
app/src/main/java/com/dayu/pipirrapp/adapter/BaseRecyclerAdapter.java | 64 +
app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java | 58 +
app/src/main/java/com/dayu/pipirrapp/activity/SplashScreenActivity.java | 20
app/src/main/java/com/dayu/pipirrapp/bean/net/BaseListResult.java | 15
app/src/main/res/mipmap-xhdpi/ic_no_more.png | 0
app/src/main/res/layout/fragment_map.xml | 8
app/src/main/java/com/dayu/pipirrapp/listener/OnItemLongClickListener.java | 14
app/src/main/res/drawable/ic_choose_bg_whit.xml | 8
app/src/main/res/layout/activity_login.xml | 2
app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java | 11
app/src/main/res/mipmap-xhdpi/icon_project.png | 0
app/proguard-rules.pro | 9
app/src/main/res/layout/item_no_more.xml | 29
app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java | 110 ++
app/src/main/assets/js/map.js | 27
app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java | 101 ++
app/src/main/java/com/dayu/pipirrapp/MyApplication.java | 1
app/src/main/java/com/dayu/pipirrapp/bean/db/LoginBean.java | 9
app/src/main/res/values/colors.xml | 6
app/src/main/res/drawable/edittext_backgroud.xml | 20
app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java | 82 +
app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java | 93 +
app/src/main/res/mipmap-xhdpi/ic_item_delete.png | 0
app/src/main/res/mipmap-xhdpi/ps_ic_audio.png | 0
app/src/main/res/mipmap-xhdpi/ic_add_image.png | 0
app/src/main/res/drawable/ps_audio_placeholder.xml | 16
app/src/main/AndroidManifest.xml | 41
app/src/main/res/layout/item_order.xml | 282 +++++
app/src/main/java/com/dayu/pipirrapp/fragment/BaseFragment.java | 12
app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java | 4
app/src/main/res/layout/activity_order_detail.xml | 363 +++++++
app/src/main/res/drawable/top_state_bg.xml | 8
app/src/main/java/com/dayu/pipirrapp/tool/FullyGridLayoutManager.java | 104 ++
app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java | 225 ++++
/dev/null | 84 -
app/src/main/res/mipmap-xhdpi/icon_bottom.png | 0
app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java | 8
app/src/main/res/layout/item_add_filter_image.xml | 44
app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java | 30
app/src/main/res/layout/fragment_my.xml | 11
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java | 20
app/src/main/res/layout/item_image.xml | 14
54 files changed, 2,730 insertions(+), 214 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index e0a9d76..d407df2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -164,11 +164,20 @@
implementation 'io.github.jeremyliao:live-event-bus-x:1.8.0'
//闃块噷鐨凴ocketMQ
- implementation 'org.apache.rocketmq:rocketmq-client:4.9.4'
+// implementation 'org.apache.rocketmq:rocketmq-client:4.9.4'
+
+ implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5'
//room鏁版嵁搴�
implementation "androidx.room:room-runtime:2.3.0"
implementation "androidx.room:room-ktx:2.3.0"
runtimeOnly("androidx.room:room-common:2.3.0")
annotationProcessor "androidx.room:room-compiler:2.3.0"
+
+ //鍥剧墖
+ implementation 'com.github.bumptech.glide:glide:4.11.0'
+ // PictureSelector 鍩虹 (蹇呴』鍥剧墖閫夋嫨)
+ implementation 'io.github.lucksiege:pictureselector:v3.11.2'
+ // 鍥剧墖鍘嬬缉 (鎸夐渶寮曞叆)
+ implementation 'io.github.lucksiege:compress:v3.11.2'
}
\ No newline at end of file
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
index bb1430f..2c6288f 100644
--- a/app/proguard-rules.pro
+++ b/app/proguard-rules.pro
@@ -145,4 +145,11 @@
# Note: if you use a custom API parser for parsing, you need to add confusion to your custom API entities. Here are the custom API entity obfuscation rules configured in this demo:
-keep class com.xuexiang.xupdatedemo.entity.** { *; }
--keep class com.hjq.permissions.** {*;}
\ No newline at end of file
+-keep class com.hjq.permissions.** {*;}
+
+#閫夋嫨鍥剧墖鐨勬鏋�
+-keep class com.luck.picture.lib.** { *; }
+-keep class com.luck.lib.camerax.** { *; }
+-dontwarn com.yalantis.ucrop**
+-keep class com.yalantis.ucrop** { *; }
+-keep interface com.yalantis.ucrop** { *; }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c02d4b9..fde78da 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,9 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.dayu.pipirrapp">
<!--鐢ㄤ簬杩涜缃戠粶瀹氫綅-->
+ <uses-feature
+ android:name="android.hardware.camera"
+ android:required="false" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--鐢ㄤ簬璁块棶GPS瀹氫綅-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
@@ -22,10 +25,44 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<!--濡傛灉鎮ㄧ殑搴旂敤闇�瑕佸悗鍙板畾浣嶆潈闄愶紝涓旀湁鍙兘杩愯鍦ˋndroid Q璁惧涓�,骞朵笖璁剧疆浜唗arget>28锛屽繀椤诲鍔犺繖涓潈闄愬0鏄�-->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
+
+
+ <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
+ <uses-permission
+ android:name="android.permission.WRITE_MEDIA_STORAGE"
+ tools:ignore="ProtectedPermissions" />
+ <uses-permission
+ android:name="android.permission.WRITE_SETTINGS"
+ tools:ignore="ProtectedPermissions" />
+ <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
+ <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
+ <uses-permission android:name="android.permission.RECORD_AUDIO" />
+ <uses-permission android:name="android.permission.CAMERA" />
+ <uses-permission android:name="android.permission.VIBRATE" />
+
+ <!-- Android 13鐗堟湰閫傞厤锛岀粏鍖栧瓨鍌ㄦ潈闄�-->
+ <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
+ <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
+ <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
+
+
<!-- 妯℃嫙浣嶇疆-->
<uses-permission
android:name="android.permission.ACCESS_MOCK_LOCATION"
tools:ignore="MockLocation,ProtectedPermissions" />
+
+ <queries package="${applicationId}">
+ <intent>
+ <action android:name="android.media.action.IMAGE_CAPTURE">
+
+ </action>
+ </intent>
+ <intent>
+ <action android:name="android.media.action.ACTION_VIDEO_CAPTURE">
+
+ </action>
+ </intent>
+ </queries>
<application
android:name=".MyApplication"
@@ -66,6 +103,10 @@
android:launchMode="singleTop">
</activity>
+ <activity android:name=".activity.OrderDetailActivity" />
+ <activity android:name=".activity.OrderDealActivity" />
+
+
<!-- <activity android:name=".activity.MainActivity" />-->
<!-- Required since 5.2.0 -->
<!-- 鏂扮殑 tag/alias 鎺ュ彛缁撴灉杩斿洖闇�瑕佸紑鍙戣�呴厤缃竴涓嚜瀹氫箟鐨凷ervice -->
diff --git a/app/src/main/assets/js/map.js b/app/src/main/assets/js/map.js
index 760cee6..a574c9c 100644
--- a/app/src/main/assets/js/map.js
+++ b/app/src/main/assets/js/map.js
@@ -271,19 +271,22 @@
}
//淇濆瓨瀹氫綅鍧愭爣鐢熸垚杞ㄨ抗
var path=[];
- function updateLocation(lat,log){
- var newPoint = new T.LatLng(latitude, longitude);
- path.push(newPoint);
- var polyline = new T.Polyline({
- path: path, // 杞ㄨ抗鍧愭爣
- strokeColor: "#FF0000", // 杞ㄨ抗棰滆壊
- strokeWeight: 6, // 杞ㄨ抗绾垮
- strokeOpacity: 0.7 // 杞ㄨ抗閫忔槑搴�
- });
- map.addOverlay(polyline);
- // 绉诲姩鍦板浘瑙嗚鍒版渶鍚庝竴涓綅缃�
- map.panTo(newPoint);
+ var lineLayer = new T.Polyline([], { color: 'red', weight: 3, opacity: 0.8 });
+
+ function updateLocation(log,lat){
+ var lastLat=lat;
+ const intervalId = setInterval(() => {
+ lastLat=lastLat+0.0001;
+ var newPoint = new T.LngLat(log,lastLat);
+ path.push(newPoint);
+ lineLayer.setLngLats(path);
+ map.addOverLay(lineLayer);
+ // 绉诲姩鍦板浘瑙嗚鍒版渶鍚庝竴涓綅缃�
+ map.panTo(newPoint);
+ }, 500);
+
}
})();
+
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/MyApplication.java b/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
index f2625e6..d51ea9d 100644
--- a/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
+++ b/app/src/main/java/com/dayu/pipirrapp/MyApplication.java
@@ -18,6 +18,7 @@
public static MyApplication myApplication;
public String myTag = "-1";
public String token;
+ public String userId;
@Override
public void onCreate() {
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java
index bafc2bc..4201472 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/LoginActivity.java
@@ -139,7 +139,7 @@
data.put("type", "math");//鍥剧墖绫诲瀷锛歝har-鏂囨湰锛宮ath-涓�浣嶆暟绠楀紡锛宮ath2-涓や綅鏁扮畻寮�
- ApiManager.getInstance().requestGetHideLoading(LoginActivity.this, BASE_URL + ":8088/app/captcha/get", CodeResult.class, data, new SubscriberListener<BaseResponse<CodeResult>>() {
+ ApiManager.getInstance().requestGetHideLoading(LoginActivity.this, BASE_URL + "/app/captcha/get", CodeResult.class, data, new SubscriberListener<BaseResponse<CodeResult>>() {
@Override
public void onNext(BaseResponse<CodeResult> t) {
try {
@@ -214,22 +214,26 @@
data.put("token", token);
data.put("code", code);
}
- ApiManager.getInstance().requestPostLoading(LoginActivity.this, BASE_URL + ":8079/sso/sso/loginJson", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
+ ApiManager.getInstance().requestPostLoading(LoginActivity.this, BASE_URL + "/sso/sso/loginJson", LoginResult.class, data, new SubscriberListener<BaseResponse<LoginResult>>() {
@Override
public void onNext(BaseResponse<LoginResult> t) {
try {
if (t.isSuccess()) {
SharedPreferencesHelper.getInstance(LoginActivity.this).put(CommonKeyName.Token, t.getContent().getToken());
MyApplication.myApplication.token = t.getContent().getToken();
+ MyApplication.myApplication.userId = t.getContent().getId();
LoginBean loginBean = DaoSingleton.getInstance(LoginActivity.this).loginDao().findFirst();
if (loginBean == null) {
loginBean = new LoginBean();
}
loginBean.setName(t.getContent().getName());
loginBean.setPhone(t.getContent().getPhone());
+ loginBean.setUserID(t.getContent().getId());
DaoSingleton.getInstance(LoginActivity.this).loginDao().insert(loginBean);
SharedPreferencesHelper.getInstance(LoginActivity.this).put(CommonKeyName.isShowCode, false);
+ ToastUtil.showToastLong(LoginActivity.this, "鐧诲綍鎴愬姛!");
startMainActivity();
+
} else {
ToastUtil.showToast(LoginActivity.this, t.getMsg());
loginError++;
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
index c768fc6..4d3180b 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/MainActivity.java
@@ -15,6 +15,7 @@
import com.dayu.pipirrapp.fragment.OrderFragment;
import com.dayu.pipirrapp.fragment.MapFragment;
import com.dayu.pipirrapp.fragment.MyFragment;
+import com.dayu.pipirrapp.net.MqttManager;
import java.util.ArrayList;
import java.util.List;
@@ -26,6 +27,7 @@
private ActivityMainBinding binding;
private List<Fragment> fragments = new ArrayList<>();
private long mExitTime;
+ MqttManager mqttManager;
private enum Tab {
ORDER, MAP, MY
@@ -40,6 +42,8 @@
setupFragments();
initView();
initTab();
+ mqttManager = new MqttManager(this);
+ mqttManager.connect();
}
private void setupFragments() {
@@ -76,6 +80,13 @@
return super.onKeyDown(keyCode, event);
}
+ @Override
+ protected void onDestroy() {
+ super.onDestroy();
+ //鍏抽棴MQ
+ mqttManager.disconnect();
+ }
+
/**
* 淇敼搴曢儴鐘舵��
*/
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
new file mode 100644
index 0000000..fb91e02
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDealActivity.java
@@ -0,0 +1,101 @@
+package com.dayu.pipirrapp.activity;
+
+import android.animation.AnimatorSet;
+import android.animation.ObjectAnimator;
+import android.os.Bundle;
+import android.provider.MediaStore;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.animation.Animation;
+import android.view.animation.AnimationUtils;
+
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+import androidx.recyclerview.widget.SimpleItemAnimator;
+
+import com.dayu.pipirrapp.adapter.AddPictureAdapter;
+import com.dayu.pipirrapp.databinding.ActivityOrderDealBinding;
+import com.dayu.pipirrapp.tool.FullyGridLayoutManager;
+import com.dayu.pipirrapp.tool.GlideEngine;
+import com.luck.picture.lib.basic.PictureSelectionModel;
+import com.luck.picture.lib.basic.PictureSelector;
+import com.luck.picture.lib.config.PictureConfig;
+import com.luck.picture.lib.config.SelectMimeType;
+import com.luck.picture.lib.config.SelectModeConfig;
+import com.luck.picture.lib.decoration.GridSpacingItemDecoration;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.interfaces.OnGridItemSelectAnimListener;
+import com.luck.picture.lib.interfaces.OnQueryFilterListener;
+import com.luck.picture.lib.interfaces.OnSelectAnimListener;
+import com.luck.picture.lib.utils.DensityUtil;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * OrderDealDetailActivity -
+ * 宸ュ崟澶勭悊鐣岄潰
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-27
+ */
+public class OrderDealActivity extends BaseActivity {
+
+ ActivityOrderDealBinding binding;
+ RecyclerView mRecyclerView;
+ AddPictureAdapter mAdapter;
+ int maxSelectNum = 10;//鏈�澶х収鐗�
+ int maxSelectVideoNum = 0;//鏈�澶ц棰�
+ private final List<LocalMedia> mData = new ArrayList<>();
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivityOrderDealBinding.inflate(LayoutInflater.from(this));
+ setContentView(binding.getRoot());
+ initView();
+ }
+
+
+ void initView() {
+ mRecyclerView = binding.recycler;
+ FullyGridLayoutManager manager = new FullyGridLayoutManager(this,
+ 4, GridLayoutManager.VERTICAL, false);
+ mRecyclerView.setLayoutManager(manager);
+ RecyclerView.ItemAnimator itemAnimator = mRecyclerView.getItemAnimator();
+ if (itemAnimator != null) {
+ ((SimpleItemAnimator) itemAnimator).setSupportsChangeAnimations(false);
+ }
+ mRecyclerView.addItemDecoration(new GridSpacingItemDecoration(4,
+ DensityUtil.dip2px(this, 8), false));
+ mAdapter = new AddPictureAdapter(this, mData);
+ mAdapter.setSelectMax(maxSelectNum + maxSelectVideoNum);
+ mRecyclerView.setAdapter(mAdapter);
+ mAdapter.setOnItemClickListener(new AddPictureAdapter.OnItemClickListener() {
+ @Override
+ public void onItemClick(View v, int position) {
+
+ }
+
+ @Override
+ public void openPicture() {
+ mOpenPicture();
+ }
+ });
+ }
+
+ private void mOpenPicture() {
+ // 杩涘叆鐩稿唽
+ PictureSelectionModel selectionModel = PictureSelector.create(this)
+ .openGallery(SelectMimeType.ofImage())
+ .setMaxSelectNum(maxSelectNum)
+ .setMaxVideoSelectNum(maxSelectVideoNum)
+ .setImageEngine(GlideEngine.createGlideEngine())
+ .setSelectedData(mAdapter.getData());
+
+ selectionModel.forResult(PictureConfig.CHOOSE_REQUEST);
+ }
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
new file mode 100644
index 0000000..dc59338
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/OrderDetailActivity.java
@@ -0,0 +1,93 @@
+package com.dayu.pipirrapp.activity;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.LayoutInflater;
+
+import androidx.annotation.Nullable;
+
+import com.dayu.pipirrapp.bean.net.OrderDetailResult;
+import com.dayu.pipirrapp.databinding.ActivityOrderDetailBinding;
+import com.dayu.pipirrapp.net.ApiManager;
+import com.dayu.pipirrapp.net.BaseResponse;
+import com.dayu.pipirrapp.net.Constants;
+import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.utils.ToastUtil;
+import com.dayu.pipirrapp.view.TitleBar;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * OrderDetailActivity -
+ * 宸ュ崟璇︽儏鐣岄潰
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-27
+ */
+public class OrderDetailActivity extends BaseActivity {
+ ActivityOrderDetailBinding binding;
+ String workOrderId;
+
+ @Override
+ protected void onCreate(@Nullable Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ binding = ActivityOrderDetailBinding.inflate(LayoutInflater.from(this));
+ setContentView(binding.getRoot());
+
+ new TitleBar(this).setTitleText("宸ュ崟璇︽儏");
+ initView();
+ }
+
+ void initView() {
+ workOrderId = this.getIntent().getStringExtra("workOrderId");
+ if (!TextUtils.isEmpty(workOrderId)) {
+ getMarkerData(workOrderId);
+ } else {
+ this.finish();
+ ToastUtil.showToastLong(this, "褰撳墠workOrderId涓虹┖");
+ }
+ binding.setItemclidk(OrderDetailActivity.this);
+
+ }
+
+ /**
+ * 鑾峰彇宸ュ崟璇︽儏
+ */
+ private void getMarkerData(String workOrderId) {
+ Map<String, Object> params = new HashMap<>();
+ params.put("workOrderId", workOrderId);
+ ApiManager.getInstance().requestGetHideLoading(this, Constants.BASE_URL + "/app/workOrder/getOneWorkOrder", OrderDetailResult.class, params, new SubscriberListener<BaseResponse<OrderDetailResult>>() {
+ @Override
+ public void onNext(BaseResponse<OrderDetailResult> t) {
+ if (t.isSuccess()) {
+ if (t.isSuccess()) {
+ if (t.getContent() != null) {
+ binding.setData(t.getContent());
+ } else {
+ ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
+ }
+ }
+ } else {
+ ToastUtil.showToast(OrderDetailActivity.this, t.getMsg());
+ }
+ }
+
+ @Override
+ public void onCloose() {
+ super.onCloose();
+ }
+
+ });
+ }
+
+
+ public void startDealActivity() {
+ Intent intent = new Intent(this, OrderDealActivity.class);
+ intent.putExtra("workOrderId", workOrderId);
+ startActivity(intent);
+ }
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/activity/SplashScreenActivity.java b/app/src/main/java/com/dayu/pipirrapp/activity/SplashScreenActivity.java
index f8bcd6b..c9602bd 100644
--- a/app/src/main/java/com/dayu/pipirrapp/activity/SplashScreenActivity.java
+++ b/app/src/main/java/com/dayu/pipirrapp/activity/SplashScreenActivity.java
@@ -12,7 +12,6 @@
import com.dayu.pipirrapp.bean.db.LoginBean;
import com.dayu.pipirrapp.dao.DaoSingleton;
import com.dayu.pipirrapp.databinding.ActivitySplashScreenBinding;
-import com.dayu.pipirrapp.utils.CommonData;
import com.dayu.pipirrapp.utils.CommonKeyName;
import com.dayu.pipirrapp.utils.SharedPreferencesHelper;
@@ -31,14 +30,17 @@
binding = ActivitySplashScreenBinding.inflate(LayoutInflater.from(this));
setContentView(binding.getRoot());
new Handler().postDelayed(() -> {
- LoginBean loginBean = DaoSingleton.getInstance(SplashScreenActivity.this).loginDao().findFirst();
- String token = SharedPreferencesHelper.getInstance(SplashScreenActivity.this).get(CommonKeyName.Token, "");
- if (loginBean != null && !TextUtils.isEmpty(token)) {
- startMainActivity();
- MyApplication.myApplication.token = token;
- } else {
- startLoginActivity();
- }
+// LoginBean loginBean = DaoSingleton.getInstance(SplashScreenActivity.this).loginDao().findFirst();
+// String token = SharedPreferencesHelper.getInstance(SplashScreenActivity.this).get(CommonKeyName.Token, "");
+// if (loginBean != null && !TextUtils.isEmpty(token)) {
+// startMainActivity();
+// MyApplication.myApplication.token = token;
+// MyApplication.myApplication.userId = loginBean.getUserID();
+// } else {
+// startLoginActivity();
+// }
+ Intent intent = new Intent(this, OrderDealActivity.class);
+ startActivity(intent);
SplashScreenActivity.this.finish();
}, 1000);
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
new file mode 100644
index 0000000..b5bd809
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/AddPictureAdapter.java
@@ -0,0 +1,225 @@
+package com.dayu.pipirrapp.adapter;
+
+import android.content.Context;
+import android.net.Uri;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.listener.OnItemLongClickListener;
+import com.luck.picture.lib.adapter.holder.PreviewGalleryAdapter;
+import com.luck.picture.lib.config.PictureMimeType;
+import com.luck.picture.lib.config.SelectMimeType;
+import com.luck.picture.lib.entity.LocalMedia;
+import com.luck.picture.lib.utils.DateUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * AddPictureAdapter -
+ * 娣诲姞鍥剧墖
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-28
+ */
+public class AddPictureAdapter extends RecyclerView.Adapter<AddPictureAdapter.ViewHolder> {
+ public static final String TAG = "PictureSelector";
+ public static final int TYPE_CAMERA = 1;
+ public static final int TYPE_PICTURE = 2;
+ private final LayoutInflater mInflater;
+ private final ArrayList<LocalMedia> list = new ArrayList<>();
+ private int selectMax = 9;
+
+ /**
+ * 鍒犻櫎
+ */
+ public void delete(int position) {
+ try {
+
+ if (position != RecyclerView.NO_POSITION && list.size() > position) {
+ list.remove(position);
+ notifyItemRemoved(position);
+ notifyItemRangeChanged(position, list.size());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public AddPictureAdapter(Context context, List<LocalMedia> result) {
+ this.mInflater = LayoutInflater.from(context);
+ this.list.addAll(result);
+ }
+
+ public void setSelectMax(int selectMax) {
+ this.selectMax = selectMax;
+ }
+
+ public int getSelectMax() {
+ return selectMax;
+ }
+
+ public ArrayList<LocalMedia> getData() {
+ return list;
+ }
+
+ public void remove(int position) {
+ if (position < list.size()) {
+ list.remove(position);
+ }
+ }
+
+ public static class ViewHolder extends RecyclerView.ViewHolder {
+
+ ImageView mImg;
+ ImageView mIvDel;
+ TextView tvDuration;
+
+ public ViewHolder(View view) {
+ super(view);
+ mImg = view.findViewById(R.id.fiv);
+ mIvDel = view.findViewById(R.id.iv_del);
+ tvDuration = view.findViewById(R.id.tv_duration);
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ if (list.size() < selectMax) {
+ return list.size() + 1;
+ } else {
+ return list.size();
+ }
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ if (isShowAddItem(position)) {
+ return TYPE_CAMERA;
+ } else {
+ return TYPE_PICTURE;
+ }
+ }
+
+ /**
+ * 鍒涘缓ViewHolder
+ */
+ @Override
+ public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
+ View view = mInflater.inflate(R.layout.item_add_filter_image, viewGroup, false);
+ return new ViewHolder(view);
+ }
+
+ private boolean isShowAddItem(int position) {
+ int size = list.size();
+ return position == size;
+ }
+
+ /**
+ * 璁剧疆鍊�
+ */
+ @Override
+ public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
+ //灏戜簬MaxSize寮狅紝鏄剧ず缁х画娣诲姞鐨勫浘鏍�
+ if (getItemViewType(position) == TYPE_CAMERA) {
+ viewHolder.mImg.setImageResource(R.mipmap.ic_add_image);
+ viewHolder.mImg.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ if (mItemClickListener != null) {
+ mItemClickListener.openPicture();
+ }
+ }
+ });
+ viewHolder.mIvDel.setVisibility(View.INVISIBLE);
+ } else {
+ viewHolder.mIvDel.setVisibility(View.VISIBLE);
+ viewHolder.mIvDel.setOnClickListener(view -> {
+ int index = viewHolder.getAbsoluteAdapterPosition();
+ if (index != RecyclerView.NO_POSITION && list.size() > index) {
+ list.remove(index);
+ notifyItemRemoved(index);
+ notifyItemRangeChanged(index, list.size());
+ }
+ });
+ LocalMedia media = list.get(position);
+ int chooseModel = media.getChooseModel();
+ String path = media.getAvailablePath();
+ long duration = media.getDuration();
+ viewHolder.tvDuration.setVisibility(PictureMimeType.isHasVideo(media.getMimeType())
+ ? View.VISIBLE : View.GONE);
+ if (chooseModel == SelectMimeType.ofAudio()) {
+ viewHolder.tvDuration.setVisibility(View.VISIBLE);
+ viewHolder.tvDuration.setCompoundDrawablesRelativeWithIntrinsicBounds
+ (R.mipmap.ps_ic_audio, 0, 0, 0);
+
+ } else {
+ viewHolder.tvDuration.setCompoundDrawablesRelativeWithIntrinsicBounds
+ (R.mipmap.ps_ic_video, 0, 0, 0);
+ }
+ viewHolder.tvDuration.setText(DateUtils.formatDurationTime(duration));
+ if (chooseModel == SelectMimeType.ofAudio()) {
+ viewHolder.mImg.setImageResource(R.drawable.ps_audio_placeholder);
+ } else {
+ Glide.with(viewHolder.itemView.getContext())
+ .load(PictureMimeType.isContent(path) && !media.isCut() && !media.isCompressed() ? Uri.parse(path)
+ : path)
+ .centerCrop()
+ .placeholder(R.color.app_color_f6)
+ .diskCacheStrategy(DiskCacheStrategy.ALL)
+ .into(viewHolder.mImg);
+ }
+ //itemView 鐨勭偣鍑讳簨浠�
+ if (mItemClickListener != null) {
+ viewHolder.itemView.setOnClickListener(v -> {
+ int adapterPosition = viewHolder.getAbsoluteAdapterPosition();
+ mItemClickListener.onItemClick(v, adapterPosition);
+ });
+ }
+
+ if (mItemLongClickListener != null) {
+ viewHolder.itemView.setOnLongClickListener(v -> {
+ int adapterPosition = viewHolder.getAbsoluteAdapterPosition();
+ mItemLongClickListener.onItemLongClick(viewHolder, adapterPosition, v);
+ return true;
+ });
+ }
+ }
+ }
+
+ private OnItemClickListener mItemClickListener;
+
+ public void setOnItemClickListener(OnItemClickListener l) {
+ this.mItemClickListener = l;
+ }
+
+ public interface OnItemClickListener {
+ /**
+ * Item click event
+ *
+ * @param v
+ * @param position
+ */
+ void onItemClick(View v, int position);
+
+ /**
+ * Open PictureSelector
+ */
+ void openPicture();
+ }
+
+ private OnItemLongClickListener mItemLongClickListener;
+
+ public void setItemLongClickListener(OnItemLongClickListener l) {
+ this.mItemLongClickListener = l;
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/BaseRecyclerAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/BaseRecyclerAdapter.java
new file mode 100644
index 0000000..3ad4c3e
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/BaseRecyclerAdapter.java
@@ -0,0 +1,64 @@
+package com.dayu.pipirrapp.adapter;
+
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.dayu.pipirrapp.databinding.ItemNoMoreBinding;
+
+/**
+ * Copyright (C), 2023,
+ * Author: zuo
+ * Date: 2023-04-20 8:48
+ * Description:
+ */
+public class BaseRecyclerAdapter<T extends RecyclerView.ViewHolder> extends RecyclerView.Adapter<T> {
+
+ /**
+ * viewType--鍒嗗埆涓篿tem浠ュ強绌簐iew
+ */
+ public static final int VIEW_TYPE_ITEM = 1;
+ public static final int VIEW_TYPE_EMPTY = 0;
+
+ public int myiewType;
+
+
+ @NonNull
+ @Override
+ public T onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+ return null;
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull T holder, int position) {
+
+ }
+
+ @Override
+ public int getItemCount() {
+ return 0;
+ }
+
+
+ static class ViewHolderEmpty extends RecyclerView.ViewHolder {
+ ItemNoMoreBinding mBinding;
+
+
+ public ItemNoMoreBinding getBinding() {
+ return mBinding;
+ }
+
+ public void setBinding(ItemNoMoreBinding binding) {
+ this.mBinding = binding;
+ }
+
+ public ViewHolderEmpty(ItemNoMoreBinding itemView) {
+ super(itemView.getRoot());
+ this.mBinding = itemView;
+
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java
new file mode 100644
index 0000000..d41fc68
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/ImageAdapter.java
@@ -0,0 +1,58 @@
+package com.dayu.pipirrapp.adapter;
+
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ImageView;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.bumptech.glide.Glide;
+import com.dayu.pipirrapp.R;
+
+/**
+ * ImageAdapter -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-27
+ */
+public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder>{
+ private String[] imageUrls; // 鍥剧墖鐨� URL 鎴栨湰鍦拌矾寰�
+
+ // 鏋勯�犳柟娉�
+ public ImageAdapter(String[] imageUrls) {
+ this.imageUrls = imageUrls;
+ }
+
+ @Override
+ public ImageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
+ // 鑾峰彇甯冨眬鏂囦欢
+ View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false);
+ return new ImageViewHolder(view);
+ }
+
+ @Override
+ public void onBindViewHolder(ImageViewHolder holder, int position) {
+ // 浣跨敤 Glide 鍔犺浇鍥剧墖鍒� ImageView 涓�
+ Glide.with(holder.itemView.getContext())
+ .load(imageUrls[position]) // 鍔犺浇鍥剧墖鐨� URL 鎴栬矾寰�
+ .thumbnail(0.1f) // 璁剧疆缂╃暐鍥炬瘮渚�
+ .into(holder.imageView);
+ }
+
+ @Override
+ public int getItemCount() {
+ return imageUrls.length;
+ }
+
+ public static class ImageViewHolder extends RecyclerView.ViewHolder {
+
+ ImageView imageView;
+
+ public ImageViewHolder(View itemView) {
+ super(itemView);
+// imageView = itemView.findViewById(R.id.thumbnailImageView);
+ }
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java b/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java
new file mode 100644
index 0000000..a7bdd38
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/adapter/OrderAdapter.java
@@ -0,0 +1,110 @@
+package com.dayu.pipirrapp.adapter;
+
+import android.content.Context;
+import android.view.LayoutInflater;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.databinding.DataBindingUtil;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.bean.net.OrderListResult;
+import com.dayu.pipirrapp.databinding.ItemNoMoreBinding;
+import com.dayu.pipirrapp.databinding.ItemOrderBinding;
+import com.dayu.pipirrapp.fragment.OrderFragment;
+
+import java.util.List;
+
+/**
+ * OrderAdapter -
+ * 宸ュ崟鍒楄〃
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-27
+ */
+public class OrderAdapter extends BaseRecyclerAdapter<RecyclerView.ViewHolder> {
+
+
+ List<OrderListResult.Data> recordsList;
+ Context context;
+ OrderFragment orderFragment;
+
+ public OrderAdapter(Context context, List<OrderListResult.Data> recordsList, OrderFragment orderFragment) {
+ this.context = context;
+ this.recordsList = recordsList;
+ this.orderFragment = orderFragment;
+ }
+
+ @NonNull
+ @Override
+ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
+
+ if (viewType == VIEW_TYPE_EMPTY) {
+ ItemNoMoreBinding emptyView = DataBindingUtil.inflate((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE), R.layout.item_no_more, parent, false);
+ return new BaseRecyclerAdapter.ViewHolderEmpty(emptyView);
+ } else {
+ ItemOrderBinding binding = DataBindingUtil.inflate((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE), R.layout.item_order, parent, false);
+ return new OrderAdapter.ViewHolder(binding, orderFragment);
+ }
+ }
+
+ @Override
+ public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
+ if (holder instanceof OrderAdapter.ViewHolder) {
+ if (recordsList.size() > 0) {
+ OrderListResult.Data record = recordsList.get(position);
+ ((OrderAdapter.ViewHolder) holder).getBinding().setData(record);
+ }
+ }
+ }
+
+ @Override
+ public int getItemCount() {
+ //鍚屾椂杩欓噷涔熼渶瑕佹坊鍔犲垽鏂紝濡傛灉mData.size()涓�0鐨勮瘽锛屽彧寮曞叆涓�涓竷灞�锛屽氨鏄痚mptyView
+ // 閭d箞锛岃繖涓猺ecyclerView鐨刬temCount涓�1
+ if (recordsList != null) {
+ if (recordsList.size() == 0) {
+ return 1;
+ }
+ return recordsList.size();
+ } else {
+ return 1;
+ }
+
+ }
+
+ @Override
+ public int getItemViewType(int position) {
+ if (recordsList != null) {
+ if (recordsList.size() == 0) {
+ return VIEW_TYPE_EMPTY;
+ } else {
+ return VIEW_TYPE_ITEM;
+ }
+ } else {
+ return VIEW_TYPE_EMPTY;
+ }
+ }
+
+ static class ViewHolder extends RecyclerView.ViewHolder {
+ ItemOrderBinding mBinding;
+
+ public ItemOrderBinding getBinding() {
+ return mBinding;
+ }
+
+ public void setBinding(ItemOrderBinding binding) {
+ this.mBinding = binding;
+ }
+
+ public ViewHolder(ItemOrderBinding itemView, OrderFragment orderFragment) {
+ super(itemView.getRoot());
+ this.mBinding = itemView;
+ mBinding.setItemclidk(orderFragment);
+ }
+ }
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/db/LoginBean.java b/app/src/main/java/com/dayu/pipirrapp/bean/db/LoginBean.java
index 3eb21c3..fa17536 100644
--- a/app/src/main/java/com/dayu/pipirrapp/bean/db/LoginBean.java
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/db/LoginBean.java
@@ -19,6 +19,15 @@
public String phone;
+ public String userID;
+
+ public String getUserID() {
+ return userID;
+ }
+
+ public void setUserID(String userID) {
+ this.userID = userID;
+ }
public String getName() {
return name;
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/BaseListResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/BaseListResult.java
new file mode 100644
index 0000000..b82e4e5
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/BaseListResult.java
@@ -0,0 +1,15 @@
+package com.dayu.pipirrapp.bean.net;
+
+/**
+ * BaseListResult -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-26
+ */
+public class BaseListResult {
+
+
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java
new file mode 100644
index 0000000..8dc1c15
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderDetailResult.java
@@ -0,0 +1,30 @@
+package com.dayu.pipirrapp.bean.net;
+
+/**
+ * OrderDetailResult -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-28
+ */
+public class OrderDetailResult {
+
+ public String workOrderId;//宸ュ崟ID
+ public String dispatcherId;//娲惧崟浜篒D
+ public String dispatcher;//娲惧崟浜哄鍚�
+ public String inspectorId;//宸℃鍛業D
+ public String inspector;//宸℃鍛樺鍚�
+ public String taskType;//浠诲姟绫诲瀷
+ public String taskContent;//浠诲姟鍐呭
+ public String completeCriteria;//瀹屾垚鏍囧噯
+ public String deadLine;//瑕佹眰瀹屾垚鏃堕棿
+ public String clientReportId;//鍐滄埛闂涓婃姤ID
+ public String inspectorReportId;//宸℃鍛橀棶棰樹笂鎶D
+ public String completeTime;//浠诲姟瀹屾垚鏃堕棿
+ public String dispatchTime;//娲惧崟鏃堕棿
+ public int rejectTimes;//椹冲洖娆℃暟
+ public String state;//宸ュ崟鐘舵��
+ public String processingState;//澶勭悊鐘舵��
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java
new file mode 100644
index 0000000..8051f39
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/bean/net/OrderListResult.java
@@ -0,0 +1,82 @@
+package com.dayu.pipirrapp.bean.net;
+
+import java.util.List;
+
+/**
+ * OrderListResult -
+ * 鏈垹闄ゅ伐鍗曞垪琛�
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-26
+ */
+public class OrderListResult {
+
+
+ int itemTotal;
+ int pageCurr;
+ int pageSize;
+ int pageTotal;
+ List<Data> obj;
+
+ public int getItemTotal() {
+ return itemTotal;
+ }
+
+ public void setItemTotal(int itemTotal) {
+ this.itemTotal = itemTotal;
+ }
+
+ public int getPageCurr() {
+ return pageCurr;
+ }
+
+ public void setPageCurr(int pageCurr) {
+ this.pageCurr = pageCurr;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ public int getPageTotal() {
+ return pageTotal;
+ }
+
+ public void setPageTotal(int pageTotal) {
+ this.pageTotal = pageTotal;
+ }
+
+ public List<Data> getObj() {
+ return obj;
+ }
+
+ public void setObj(List<Data> obj) {
+ this.obj = obj;
+ }
+
+ public class Data {
+ public String workOrderId;//宸ュ崟ID
+ public String dispatcherId;//娲惧崟浜篒D
+ public String dispatcher;//娲惧崟浜哄鍚�
+ public String inspectorId;//宸℃鍛業D
+ public String inspector;//宸℃鍛樺鍚�
+ public String taskType;//浠诲姟绫诲瀷
+ public String taskContent;//浠诲姟鍐呭
+ public String completeCriteria;//瀹屾垚鏍囧噯
+ public String deadLine;//瑕佹眰瀹屾垚鏃堕棿
+ public String clientReportId;//鍐滄埛闂涓婃姤ID
+ public String inspectorReportId;//宸℃鍛橀棶棰樹笂鎶D
+ public String completeTime;//浠诲姟瀹屾垚鏃堕棿
+ public String dispatchTime;//娲惧崟鏃堕棿
+ public int rejectTimes;//椹冲洖娆℃暟
+ public String state;//宸ュ崟鐘舵��
+ public String processingState;//澶勭悊鐘舵��
+ }
+
+
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/BaseFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/BaseFragment.java
index a205694..f8a19d7 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/BaseFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/BaseFragment.java
@@ -2,6 +2,8 @@
import androidx.fragment.app.Fragment;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+
/**
* author: zuo
* Date: 2023/12/20
@@ -9,4 +11,14 @@
* 澶囨敞锛�
*/
public class BaseFragment extends Fragment {
+ public void layoutFinish(RefreshLayout refreshLayout, boolean isRefresh) {
+ if (refreshLayout != null) {
+ if (isRefresh) {
+ refreshLayout.finishRefresh();
+ } else {
+ refreshLayout.finishLoadMore();
+ }
+ }
+ }
+
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
index ebc3cd1..e8e1f24 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -106,8 +106,10 @@
LiveEventBus.get(CommonKeyName.locationData).observeForever(new Observer<Object>() {
@Override
public void onChanged(Object o) {
+
LatLonBean latLonBean = (LatLonBean) o;
- mWebView.evaluateJavascript("javascript:updateLocation(\"" + latLonBean.getLatitude()+ "\",\"" + latLonBean.getLongitude()+ "\")", value -> {
+ Log.i("chageInspecState", "lat:" + latLonBean.getLatitude() + ",log:" + latLonBean.getLongitude());
+ mWebView.evaluateJavascript("javascript:updateLocation(\"" + latLonBean.getLatitude() + "\",\"" + latLonBean.getLongitude() + "\")", value -> {
});
}
});
@@ -200,7 +202,7 @@
* 鑾峰彇鍙栨按鍙e垪琛�
*/
private void getMarkerData() {
- ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + ":8085/project/intake/all", MarkerResult.class, null, new SubscriberListener<BaseResponse<MarkerResult>>() {
+ ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + "/project/intake/all", MarkerResult.class, null, new SubscriberListener<BaseResponse<MarkerResult>>() {
@Override
public void onNext(BaseResponse<MarkerResult> t) {
if (t.isSuccess()) {
@@ -284,11 +286,7 @@
void initView() {
- //璺宠浆鍒版寚瀹氫綅缃�
- binding.flyBtn.setOnClickListener(v -> {
- mWebView.evaluateJavascript("javascript:locationOverLay(116.399565,39.89432)", value -> {
- });
- });
+
mWebView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
@@ -346,15 +344,15 @@
});
//宸℃鎸夐挳
binding.inspectButton.setOnClickListener(v -> {
- if (isStartInspec){
- ConfirmDialog confirmDialog=new ConfirmDialog(MapFragment.this.getActivity(), "鎻愮ず", "纭鍏抽棴宸℃鍚楋紵", new View.OnClickListener() {
+ if (isStartInspec) {
+ ConfirmDialog confirmDialog = new ConfirmDialog(MapFragment.this.getActivity(), "鎻愮ず", "纭鍏抽棴宸℃鍚楋紵", new View.OnClickListener() {
@Override
public void onClick(View v) {
isStartInspec = !isStartInspec;
chageInspecState();
}
});
- }else {
+ } else {
isStartInspec = !isStartInspec;
chageInspecState();
}
@@ -374,7 +372,7 @@
*/
private void getCenterPoint() {
- ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + ":8080/base/dict_item/map_center", CenterPointResult.class, null, new SubscriberListener<BaseResponse<CenterPointResult>>() {
+ ApiManager.getInstance().requestGet(this.getContext(), Constants.BASE_URL + "/base/dict_item/map_center", CenterPointResult.class, null, new SubscriberListener<BaseResponse<CenterPointResult>>() {
@Override
public void onNext(BaseResponse<CenterPointResult> t) {
if (t.isSuccess()) {
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
index 02e248e..3eabb79 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/MyFragment.java
@@ -98,6 +98,6 @@
@Override
public void onStart() {
super.onStart();
- new TitleBar(MyFragment.this.getActivity()).setTitleText("鎴戠殑");
+
}
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
index 9f0d1b5..4ca4016 100644
--- a/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
+++ b/app/src/main/java/com/dayu/pipirrapp/fragment/OrderFragment.java
@@ -1,5 +1,7 @@
package com.dayu.pipirrapp.fragment;
+import android.content.Intent;
+import android.graphics.Typeface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -8,23 +10,31 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.Observer;
+import androidx.recyclerview.widget.LinearLayoutManager;
-import com.dayu.pipirrapp.bean.db.LatLonBean;
+import com.dayu.pipirrapp.R;
+import com.dayu.pipirrapp.activity.OrderDetailActivity;
+import com.dayu.pipirrapp.adapter.OrderAdapter;
+import com.dayu.pipirrapp.bean.net.OrderListResult;
import com.dayu.pipirrapp.bean.net.WeatherResponse;
-import com.dayu.pipirrapp.databinding.FragmentMainBinding;
+import com.dayu.pipirrapp.databinding.FragmentOrderBinding;
import com.dayu.pipirrapp.net.ApiManager;
-import com.dayu.pipirrapp.utils.ImageUtils;
-import com.dayu.pipirrapp.utils.MyJsonParser;
-import com.dayu.pipirrapp.utils.SharedPreferencesHelper;
-import com.dayu.pipirrapp.view.TitleBar;
+import com.dayu.pipirrapp.net.BaseResponse;
+import com.dayu.pipirrapp.net.Constants;
+import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
+import com.dayu.pipirrapp.utils.CommonKeyName;
+import com.dayu.pipirrapp.utils.ToastUtil;
import com.jeremyliao.liveeventbus.LiveEventBus;
-import com.tencent.bugly.crashreport.CrashReport;
+import com.scwang.smart.refresh.footer.ClassicsFooter;
+import com.scwang.smart.refresh.header.ClassicsHeader;
+import com.scwang.smart.refresh.layout.api.RefreshLayout;
+import com.scwang.smart.refresh.layout.listener.OnLoadMoreListener;
+import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
-import java.util.Calendar;
-
-import retrofit2.Call;
-import retrofit2.Callback;
-import retrofit2.Response;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* author: zuo
@@ -34,89 +44,221 @@
*/
public class OrderFragment extends BaseFragment {
- FragmentMainBinding binding;
- WeatherResponse weatherResponse;
- //鏀跺埌瀹氫綅骞挎挱鍚庤幏鍙栧ぉ姘斾俊鎭�
- Observer<LatLonBean> myObserver = new Observer<LatLonBean>() {
- @Override
- public void onChanged(LatLonBean latLonBean) {
- String jsonStr = SharedPreferencesHelper.getInstance(OrderFragment.this.getActivity()).get("WeatherResponse", "");
- weatherResponse = MyJsonParser.getBeanFromJson(jsonStr, WeatherResponse.class);
- if (weatherResponse == null) {
- weatherResponse = new WeatherResponse();
- }
- // 鑾峰彇褰撳墠鏃堕棿
- Calendar calendar = Calendar.getInstance();
- // 鑾峰彇褰撳墠骞存湀鏃�
- int year = calendar.get(Calendar.YEAR);
- int month = calendar.get(Calendar.MONTH) + 1; // 娉ㄦ剰鏈堜唤鏄粠0寮�濮嬭鏁扮殑锛屾墍浠ヨ鍔�1
- int day = calendar.get(Calendar.DAY_OF_MONTH);
- String date = year + "骞�" + month + "鏈�" + day + "鏃�";
- if (weatherResponse == null || !date.equals(weatherResponse.getDate())) {
- weatherResponse.setDate(date);
- ApiManager.getInstance().requestWeather(latLonBean.getLatitude() + ":" + latLonBean.getLongitude(), new Callback<WeatherResponse>() {
- @Override
- public void onResponse(Call<WeatherResponse> call, Response<WeatherResponse> response) {
+ private final int STATE_DONE = 2;
+ private final int STATE_UNDONE = 1;
- if (response.isSuccessful()) {
- weatherResponse.setResults(response.body().getResults());
- SharedPreferencesHelper.getInstance(OrderFragment.this.getActivity()).put("WeatherResponse", weatherResponse);
- setWeatherData(weatherResponse);
- }
- }
-
- @Override
- public void onFailure(Call<WeatherResponse> call, Throwable t) {
-
- }
- });
- } else {
- setWeatherData(weatherResponse);
- }
- LiveEventBus.get("location", LatLonBean.class).removeObserver(myObserver);
- }
- };
-
+ FragmentOrderBinding binding;
+ OrderAdapter mAdapter;
+ int page = 1;
+ int pageSize = 10;
+ int state = 1;
+ List<OrderListResult.Data> recordsListDone = new ArrayList<>();
+ List<OrderListResult.Data> recordsList = new ArrayList<>();
/**
* 璁剧疆澶╂皵鐩稿叧淇℃伅
*
- * @param data
+ * @param
*/
- private void setWeatherData(WeatherResponse data) {
- try {
- if (data.getResults() != null) {
- binding.cityName.setText(data.getResults()[0].getLocation().getName());
- binding.time.setText(data.getDate());
- int weatherImg = ImageUtils.getWeatherDrawable(data.getResults()[0].getDaily()[0].getCode_day());
- if (weatherImg != 0) {
- binding.weatherImg.setImageDrawable(getResources().getDrawable(weatherImg));
- }
- binding.weatherName.setText(data.getResults()[0].getDaily()[0].getText_day());
- binding.weatherTemperature.setText(data.getResults()[0].getDaily()[0].getLow() + "掳C 锝� " + data.getResults()[0].getDaily()[0].getHigh() + "掳C");
- }
- } catch (Exception e) {
- e.printStackTrace();
- CrashReport.postCatchedException(e);
- }
- }
-
-
+// private void setWeatherData(WeatherResponse data) {
+// try {
+// if (data.getResults() != null) {
+// binding.cityName.setText(data.getResults()[0].getLocation().getName());
+// binding.time.setText(data.getDate());
+// int weatherImg = ImageUtils.getWeatherDrawable(data.getResults()[0].getDaily()[0].getCode_day());
+// if (weatherImg != 0) {
+// binding.weatherImg.setImageDrawable(getResources().getDrawable(weatherImg));
+// }
+// binding.weatherName.setText(data.getResults()[0].getDaily()[0].getText_day());
+// binding.weatherTemperature.setText(data.getResults()[0].getDaily()[0].getLow() + "掳C 锝� " + data.getResults()[0].getDaily()[0].getHigh() + "掳C");
+// }
+// } catch (Exception e) {
+// e.printStackTrace();
+// CrashReport.postCatchedException(e);
+// }
+// }
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
- binding = FragmentMainBinding.inflate(inflater, container, false);
- //鑾峰彇鍒扮粡绾害鍚庤幏鍙栧ぉ姘斾俊鎭�
- LiveEventBus
- .get("location", LatLonBean.class)
- .observeForever(myObserver);
+ binding = FragmentOrderBinding.inflate(inflater, container, false);
+ initView();
+ //鑾峰彇瀹氫綅鏈嶅姟浼犺繃鏉ョ殑鍧愭爣鐐�
+ LiveEventBus.get(CommonKeyName.MQTTData).observeForever(new Observer<Object>() {
+ @Override
+ public void onChanged(Object o) {
+
+ }
+ });
+
return binding.getRoot();
}
+
+ void initView() {
+ //鏈畬鎴�
+ binding.manageStateProgress.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ chooseStateView(true);
+ state = STATE_UNDONE;//1 鏈紑濮� 2 宸插畬鎴�
+
+ }
+ });
+ //宸插畬鎴�
+ binding.manageStateFinish.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ chooseStateView(false);
+ state = STATE_DONE;//1 鏈紑濮� 2 宸插畬鎴�
+ }
+ });
+ //鏈畬鎴�
+ RefreshLayout myRefreshLayout = (RefreshLayout) binding.refreshLayout;
+ myRefreshLayout.setRefreshHeader(new ClassicsHeader(this.getContext()));
+ myRefreshLayout.setRefreshFooter(new ClassicsFooter(this.getContext()));
+
+ myRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(RefreshLayout refreshlayout) {
+// refreshlayout.finishRefresh(2000/*,false*/);//浼犲叆false琛ㄧず鍒锋柊澶辫触
+ recordsList.clear();
+ page = 0;
+ getMarkerData(refreshlayout, true, STATE_UNDONE);
+ }
+ });
+ myRefreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(RefreshLayout refreshlayout) {
+ page = page + 1;
+ getMarkerData(refreshlayout, false, STATE_UNDONE);
+ }
+ });
+
+ mAdapter = new OrderAdapter(this.getContext(), recordsList, this);
+ LinearLayoutManager layoutManager = new LinearLayoutManager(this.getContext());
+ binding.recyclerView.setLayoutManager(layoutManager);
+ binding.recyclerView.setAdapter(mAdapter);
+ getMarkerData(myRefreshLayout, true, STATE_UNDONE);
+ //宸插畬鎴�
+ RefreshLayout myRefreshLayoutDone = (RefreshLayout) binding.refreshLayoutDone;
+ myRefreshLayoutDone.setRefreshHeader(new ClassicsHeader(this.getContext()));
+ myRefreshLayoutDone.setRefreshFooter(new ClassicsFooter(this.getContext()));
+ myRefreshLayoutDone.setOnRefreshListener(new OnRefreshListener() {
+ @Override
+ public void onRefresh(RefreshLayout refreshlayout) {
+// refreshlayout.finishRefresh(2000/*,false*/);//浼犲叆false琛ㄧず鍒锋柊澶辫触
+ recordsList.clear();
+ page = 0;
+ getMarkerData(refreshlayout, true, STATE_DONE);
+ }
+ });
+ myRefreshLayoutDone.setOnLoadMoreListener(new OnLoadMoreListener() {
+ @Override
+ public void onLoadMore(RefreshLayout refreshlayout) {
+ page = page + 1;
+ getMarkerData(refreshlayout, false, STATE_DONE);
+ }
+ });
+ mAdapter = new OrderAdapter(this.getContext(), recordsListDone, this);
+ LinearLayoutManager layoutManagerDone = new LinearLayoutManager(this.getContext());
+ binding.recyclerViewDone.setLayoutManager(layoutManagerDone);
+ binding.recyclerViewDone.setAdapter(mAdapter);
+ getMarkerData(myRefreshLayoutDone, true, 2);
+ }
+
+
@Override
public void onStart() {
super.onStart();
- new TitleBar(OrderFragment.this.getActivity()).setTitleText("宸ュ崟");
}
+
+ /**
+ * 鑾峰彇鏈垹闄ゅ伐鍗�
+ */
+ private void getMarkerData(RefreshLayout refreshlayout, boolean isRefresh, int state) {
+
+ Map<String, Object> params = new HashMap<>();
+ if (isRefresh) {
+ page = 1;
+ if (state == STATE_UNDONE) {
+ recordsList.clear();
+ } else {
+ recordsListDone.clear();
+ }
+ }
+ params.put("pageSize", pageSize);
+ params.put("pageCurr", page);
+ params.put("state", state);
+// params.put("inspectorId", MyApplication.myApplication.userId);
+
+ ApiManager.getInstance().requestGetHideLoading(this.getContext(), Constants.BASE_URL + "/app/workOrder/getWorkOrders", OrderListResult.class, params, new SubscriberListener<BaseResponse<OrderListResult>>() {
+ @Override
+ public void onNext(BaseResponse<OrderListResult> t) {
+ if (t.isSuccess()) {
+ if (t.isSuccess()) {
+ if (t.getContent().getObj() != null && t.getContent().getObj().size() > 0) {
+ if (state == STATE_UNDONE) {
+ recordsList.addAll(t.getContent().getObj());
+ } else {
+ recordsListDone.addAll(t.getContent().getObj());
+ }
+ if (t.getContent().getObj().size() < pageSize) {
+ refreshlayout.finishLoadMoreWithNoMoreData();
+ }
+ } else {
+ refreshlayout.finishLoadMoreWithNoMoreData();
+ }
+ }
+ } else {
+ ToastUtil.showToast(OrderFragment.this.getContext(), t.getMsg());
+ }
+ }
+
+ @Override
+ public void onCloose() {
+ super.onCloose();
+ layoutFinish(refreshlayout, isRefresh);
+ mAdapter.notifyDataSetChanged();
+ }
+
+ });
+ }
+
+ public void startDetail(String id) {
+ Intent intent = new Intent(this.getContext(), OrderDetailActivity.class);
+ intent.putExtra("workOrderId", id);
+ startActivity(intent);
+ }
+
+
+ /**
+ * 淇敼杩涘害鐘舵��
+ *
+ * @param state true涓烘湭瀹屾垚 false涓哄凡瀹屾垚
+ */
+
+ void chooseStateView(boolean state) {
+ if (state) {
+ binding.manageStateProgress.setTextColor(getResources().getColor(R.color.title_color));
+ binding.manageStateProgress.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit));
+ binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
+ binding.manageStateFinish.setTextColor(getResources().getColor(R.color.black));
+ binding.manageStateFinish.setBackground(getResources().getDrawable(R.color.title_choose_bg));
+ binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
+ binding.refreshLayout.setVisibility(View.VISIBLE);
+ binding.refreshLayoutDone.setVisibility(View.GONE);
+ } else {
+ binding.manageStateFinish.setTextColor(getResources().getColor(R.color.title_color));
+ binding.manageStateFinish.setBackground(getResources().getDrawable(R.drawable.ic_choose_bg_whit));
+ binding.manageStateFinish.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));
+ binding.manageStateProgress.setTextColor(getResources().getColor(R.color.black));
+ binding.manageStateProgress.setBackground(getResources().getDrawable(R.color.title_choose_bg));
+ binding.manageStateProgress.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL));
+ binding.refreshLayout.setVisibility(View.GONE);
+ binding.refreshLayoutDone.setVisibility(View.VISIBLE);
+ }
+ }
+
+
}
diff --git a/app/src/main/java/com/dayu/pipirrapp/listener/OnItemLongClickListener.java b/app/src/main/java/com/dayu/pipirrapp/listener/OnItemLongClickListener.java
new file mode 100644
index 0000000..fc64f86
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/listener/OnItemLongClickListener.java
@@ -0,0 +1,14 @@
+package com.dayu.pipirrapp.listener;
+
+import android.view.View;
+
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+ * @author锛歭uck
+ * @date锛�2020-01-13 17:58
+ * @describe锛氶暱鎸変簨浠�
+ */
+public interface OnItemLongClickListener {
+ void onItemLongClick(RecyclerView.ViewHolder holder, int position, View v);
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/Constants.java b/app/src/main/java/com/dayu/pipirrapp/net/Constants.java
index 07eeb65..2b7b794 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/Constants.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/Constants.java
@@ -6,8 +6,8 @@
* Description:
*/
public class Constants {
-// public static final String BASE_URL = "http://192.168.10.52";
-public static final String BASE_URL = "http://192.168.40.166";
+// public static final String BASE_URL = "http://192.168.10.52:8088";
+public static final String BASE_URL = "https://no253541tf71.vicp.fun";
/**
* 浠h〃璇锋眰鎴愬姛
*/
diff --git a/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java b/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java
new file mode 100644
index 0000000..7a85cc5
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/net/MqttManager.java
@@ -0,0 +1,202 @@
+package com.dayu.pipirrapp.net;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.Network;
+import android.net.NetworkCapabilities;
+import android.net.NetworkRequest;
+import android.util.Log;
+
+import com.dayu.pipirrapp.utils.CommonKeyName;
+import com.jeremyliao.liveeventbus.LiveEventBus;
+
+import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
+import org.eclipse.paho.client.mqttv3.MqttCallback;
+import org.eclipse.paho.client.mqttv3.MqttClient;
+import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
+import org.eclipse.paho.client.mqttv3.MqttException;
+import org.eclipse.paho.client.mqttv3.MqttMessage;
+import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
+
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+
+/**
+ * MQTT鐩稿叧璁剧疆
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-26
+ */
+public class MqttManager {
+
+ private static final String MQTT_BROKER_URL = "tcp://115.236.153.170:30764"; // 淇敼涓轰綘鐨� broker 鍦板潃
+ private static final String CLIENT_ID = "mqttx_54052fa0";
+ private static final String TOPIC = "workOrder"; // 璁㈤槄鐨勪富棰�
+ private ConnectivityManager connectivityManager;
+
+ private MqttClient mqttClient;
+ private MqttConnectOptions connectOptions;
+ boolean isHasNet = false;
+
+ public MqttManager(Context context) {
+ try {
+ mqttClient = new MqttClient(MQTT_BROKER_URL, CLIENT_ID, new MemoryPersistence());
+ connectOptions = new MqttConnectOptions();
+ connectOptions.setUserName("mqtt_yjy");
+ connectOptions.setPassword("yjy".toCharArray());
+ connectOptions.setCleanSession(false);
+ connectOptions.setKeepAliveInterval(60); // 璁剧疆淇濇寔杩炴帴鐨勬椂闂�
+ connectOptions.setAutomaticReconnect(true); // 鍚敤鑷姩閲嶈繛
+ connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+ checkNetwork();
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 杩炴帴鍒� MQTT broker
+ public void connect() {
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.execute(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ if (isHasNet) {
+ mqttClient.connect(connectOptions);
+ if (mqttClient.isConnected()) {
+ Log.d("MqttManager", "Connected to MQTT broker");
+ subscribeToTopic();
+ }
+ } else {
+ reconnect();
+ }
+
+ } catch (MqttException e) {
+ reconnect();
+ Log.e("MqttManager", "Error connecting to MQTT broker", e);
+ }
+ }
+ });
+ }
+
+ // 璁㈤槄涓婚
+ private void subscribeToTopic() {
+ try {
+ mqttClient.subscribe(TOPIC, (topic, message) -> {
+ // 鏀跺埌娑堟伅鏃剁殑澶勭悊閫昏緫
+ Log.d("MqttManager", "Received message:" + new String(message.getPayload()));
+ //浼犻�扢Q鏀跺埌鐨勪俊鎭�
+ LiveEventBus.get(CommonKeyName.locationData).post(message.getPayload());
+ });
+ mqttClient.setCallback(new MqttCallback() {
+ @Override
+ public void connectionLost(Throwable cause) {
+ Log.d("MqttManager", "connectionLost" + cause.getMessage());
+ reconnect();
+ // 澶勭悊杩炴帴涓㈠け锛屽彲浠ュ皾璇曢噸鏂拌繛鎺�
+ }
+
+ @Override
+ public void messageArrived(String topic, MqttMessage message) throws Exception {
+ Log.d("MqttManager", "Received messageArrived:" + new String(message.getPayload()));
+ // 澶勭悊鏀跺埌鐨勬秷鎭�
+ }
+
+ @Override
+ public void deliveryComplete(IMqttDeliveryToken token) {
+ // 澶勭悊娑堟伅鍙戦�佸畬鎴�
+ try {
+ Log.d("MqttManager", "deliveryComplete锛�" + new String(token.getMessage().toString()));
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 鍙戝竷娑堟伅
+ public void publishMessage(String message) {
+ try {
+ MqttMessage mqttMessage = new MqttMessage(message.getBytes());
+ mqttClient.publish(TOPIC, mqttMessage);
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 鏂紑杩炴帴
+ public void disconnect() {
+ try {
+ if (mqttClient != null && mqttClient.isConnected()) {
+ mqttClient.disconnect();
+ System.out.println("Disconnected from MQTT broker");
+ }
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // 鑷姩閲嶈繛鏂规硶
+ private void reconnect() {
+ try {
+ if (isHasNet) {
+ while (!mqttClient.isConnected() && isHasNet) {
+ Log.d("MqttManager", "Attempting to reconnect...");
+ mqttClient.connect(connectOptions); // 閲嶈瘯杩炴帴
+ if (mqttClient.isConnected()) {
+ Log.d("MqttManager", "Connected to MQTT broker");
+ subscribeToTopic();
+ }
+ Thread.sleep(5000); // 姣� 5 绉掗噸璇曚竴娆�
+ }
+ Log.d("MqttManager", "Reconnected to MQTT broker! isHasNet=true");
+ } else {
+ Log.d("MqttManager", "isHasNet is false");
+ Thread.sleep(5000);
+ reconnect();
+ }
+
+ } catch (MqttException | InterruptedException e) {
+ try {
+ Thread.sleep(5000);
+ } catch (InterruptedException ex) {
+ e.printStackTrace();
+ }// 姣� 5 绉掗噸璇曚竴娆�
+ reconnect();
+
+ }
+ }
+
+ public void checkNetwork() {
+ NetworkRequest request = new NetworkRequest.Builder().addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) // 蹇呴』鍏峰浜掕仈缃戣兘鍔�
+ .build();
+
+ connectivityManager.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() {
+ @Override
+ public void onAvailable(Network network) {
+ super.onAvailable(network);
+ // 缃戠粶鍙敤鏃剁殑澶勭悊閫昏緫
+ Log.d("MqttManager", "Network is available.");
+ isHasNet = true;
+ reconnect();
+ }
+
+ @Override
+ public void onLost(Network network) {
+ super.onLost(network);
+ // 缃戠粶涓㈠け鏃剁殑澶勭悊閫昏緫
+ Log.d("MqttManager", "Network is lost.");
+ isHasNet = false;
+ try {
+ mqttClient.disconnect();
+ } catch (MqttException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/FullyGridLayoutManager.java b/app/src/main/java/com/dayu/pipirrapp/tool/FullyGridLayoutManager.java
new file mode 100644
index 0000000..7ad0a08
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/tool/FullyGridLayoutManager.java
@@ -0,0 +1,104 @@
+package com.dayu.pipirrapp.tool;
+
+import android.content.Context;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.annotation.NonNull;
+import androidx.recyclerview.widget.GridLayoutManager;
+import androidx.recyclerview.widget.RecyclerView;
+
+/**
+ * FullyGridLayoutManager -
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-28
+ */
+public class FullyGridLayoutManager extends GridLayoutManager {
+ private final int[] mMeasuredDimension = new int[2];
+
+ public FullyGridLayoutManager(Context context, int spanCount) {
+ super(context, spanCount);
+ }
+
+ public FullyGridLayoutManager(Context context, int spanCount, int orientation, boolean reverseLayout) {
+ super(context, spanCount, orientation, reverseLayout);
+ }
+
+ @Override
+ public void onMeasure(@NonNull RecyclerView.Recycler recycler, @NonNull RecyclerView.State state, int widthSpec, int heightSpec) {
+ final int widthMode = View.MeasureSpec.getMode(widthSpec);
+ final int heightMode = View.MeasureSpec.getMode(heightSpec);
+ final int widthSize = View.MeasureSpec.getSize(widthSpec);
+ final int heightSize = View.MeasureSpec.getSize(heightSpec);
+
+ int width = 0;
+ int height = 0;
+ int count = getItemCount();
+ int span = getSpanCount();
+ for (int i = 0; i < count; i++) {
+ measureScrapChild(recycler, i,
+ View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED),
+ View.MeasureSpec.makeMeasureSpec(i, View.MeasureSpec.UNSPECIFIED),
+ mMeasuredDimension);
+
+ if (getOrientation() == HORIZONTAL) {
+ if (i % span == 0) {
+ width = width + mMeasuredDimension[0];
+ }
+ if (i == 0) {
+ height = mMeasuredDimension[1];
+ }
+ } else {
+ if (i % span == 0) {
+ height = height + mMeasuredDimension[1];
+ }
+ if (i == 0) {
+ width = mMeasuredDimension[0];
+ }
+ }
+ }
+
+ switch (widthMode) {
+ case View.MeasureSpec.EXACTLY:
+ width = widthSize;
+ case View.MeasureSpec.AT_MOST:
+ case View.MeasureSpec.UNSPECIFIED:
+ }
+
+ switch (heightMode) {
+ case View.MeasureSpec.EXACTLY:
+ height = heightSize;
+ case View.MeasureSpec.AT_MOST:
+ case View.MeasureSpec.UNSPECIFIED:
+ }
+
+ setMeasuredDimension(width, height);
+ }
+
+ final RecyclerView.State mState = new RecyclerView.State();
+
+ private void measureScrapChild(RecyclerView.Recycler recycler, int position, int widthSpec,
+ int heightSpec, int[] measuredDimension) {
+ int itemCount = mState.getItemCount();
+ if (position < itemCount) {
+ try {
+ View view = recycler.getViewForPosition(0);
+ if (view != null) {
+ RecyclerView.LayoutParams p = (RecyclerView.LayoutParams) view.getLayoutParams();
+ int childWidthSpec = ViewGroup.getChildMeasureSpec(widthSpec,
+ getPaddingLeft() + getPaddingRight(), p.width);
+ int childHeightSpec = ViewGroup.getChildMeasureSpec(heightSpec,
+ getPaddingTop() + getPaddingBottom(), p.height);
+ view.measure(childWidthSpec, childHeightSpec);
+ measuredDimension[0] = view.getMeasuredWidth() + p.leftMargin + p.rightMargin;
+ measuredDimension[1] = view.getMeasuredHeight() + p.bottomMargin + p.topMargin;
+ recycler.recycleView(view);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/GlideEngine.java b/app/src/main/java/com/dayu/pipirrapp/tool/GlideEngine.java
new file mode 100644
index 0000000..0d3654b
--- /dev/null
+++ b/app/src/main/java/com/dayu/pipirrapp/tool/GlideEngine.java
@@ -0,0 +1,119 @@
+package com.dayu.pipirrapp.tool;
+
+import android.content.Context;
+import android.widget.ImageView;
+
+import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.resource.bitmap.CenterCrop;
+import com.bumptech.glide.load.resource.bitmap.RoundedCorners;
+import com.dayu.pipirrapp.R;
+import com.luck.picture.lib.engine.ImageEngine;
+import com.luck.picture.lib.utils.ActivityCompatHelper;
+
+/**
+ * GlideEngine -Glide鍔犺浇寮曟搸
+ *
+ * @author zuoxiao
+ * @version 1.0
+ * @since 2024-11-28
+ */
+public class GlideEngine implements ImageEngine {
+
+ /**
+ * 鍔犺浇鍥剧墖
+ *
+ * @param context 涓婁笅鏂�
+ * @param url 璧勬簮url
+ * @param imageView 鍥剧墖鎵胯浇鎺т欢
+ */
+ @Override
+ public void loadImage(Context context, String url, ImageView imageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return;
+ }
+ Glide.with(context)
+ .load(url)
+ .into(imageView);
+ }
+
+ @Override
+ public void loadImage(Context context, ImageView imageView, String url, int maxWidth, int maxHeight) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return;
+ }
+ Glide.with(context)
+ .load(url)
+ .override(maxWidth, maxHeight)
+ .into(imageView);
+ }
+
+ /**
+ * 鍔犺浇鐩稿唽鐩綍灏侀潰
+ *
+ * @param context 涓婁笅鏂�
+ * @param url 鍥剧墖璺緞
+ * @param imageView 鎵胯浇鍥剧墖ImageView
+ */
+ @Override
+ public void loadAlbumCover(Context context, String url, ImageView imageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return;
+ }
+ Glide.with(context)
+ .asBitmap()
+ .load(url)
+ .override(180, 180)
+ .sizeMultiplier(0.5f)
+ .transform(new CenterCrop(), new RoundedCorners(8))
+ .placeholder(R.drawable.ps_image_placeholder)
+ .into(imageView);
+ }
+
+
+ /**
+ * 鍔犺浇鍥剧墖鍒楄〃鍥剧墖
+ *
+ * @param context 涓婁笅鏂�
+ * @param url 鍥剧墖璺緞
+ * @param imageView 鎵胯浇鍥剧墖ImageView
+ */
+ @Override
+ public void loadGridImage(Context context, String url, ImageView imageView) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return;
+ }
+ Glide.with(context)
+ .load(url)
+ .override(200, 200)
+ .centerCrop()
+ .placeholder(R.drawable.ps_image_placeholder)
+ .into(imageView);
+ }
+
+ @Override
+ public void pauseRequests(Context context) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return;
+ }
+ Glide.with(context).pauseRequests();
+ }
+
+ @Override
+ public void resumeRequests(Context context) {
+ if (!ActivityCompatHelper.assertValidRequest(context)) {
+ return;
+ }
+ Glide.with(context).resumeRequests();
+ }
+
+ private GlideEngine() {
+ }
+
+ private static final class InstanceHolder {
+ static final GlideEngine instance = new GlideEngine();
+ }
+
+ public static GlideEngine createGlideEngine() {
+ return InstanceHolder.instance;
+ }
+}
diff --git a/app/src/main/java/com/dayu/pipirrapp/tool/RocketMQConsumer.java b/app/src/main/java/com/dayu/pipirrapp/tool/RocketMQConsumer.java
deleted file mode 100644
index 2ab6fac..0000000
--- a/app/src/main/java/com/dayu/pipirrapp/tool/RocketMQConsumer.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.dayu.pipirrapp.tool;
-
-import android.util.Log;
-
-import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
-import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyContext;
-import org.apache.rocketmq.client.consumer.listener.ConsumeConcurrentlyStatus;
-import org.apache.rocketmq.client.consumer.listener.MessageListenerConcurrently;
-import org.apache.rocketmq.client.exception.MQClientException;
-import org.apache.rocketmq.common.message.MessageExt;
-
-import java.util.List;
-
-/**
- * author: zuo
- * Date: 2024-09-03
- * Time: 13:51
- * 澶囨敞锛歁Q娑堟伅闃熷垪妯″潡
- */
-public class RocketMQConsumer {
-
- private DefaultMQPushConsumer consumer;
-
- public void start() {
- try {
- // 鍒涘缓涓�涓秷璐硅�呭疄渚�
- consumer = new DefaultMQPushConsumer("YourConsumerGroup");
-
- // 璁剧疆NameServer鍦板潃
- consumer.setNamesrvAddr("YourNameServerAddress");
-
- // 璁㈤槄涓�涓垨澶氫釜Topic
- consumer.subscribe("YourTopic", "*");
-
- // 娉ㄥ唽娑堟伅鐩戝惉鍣�
- consumer.registerMessageListener(new MessageListenerConcurrently() {
- @Override
- public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
- for (MessageExt msg : msgs) {
- // 澶勭悊娑堟伅
- Log.d("RocketMQ", "Receive message: " + new String(msg.getBody()));
- // 杩欓噷鍙互瑙﹀彂鏈湴閫氱煡鎴栬�呮洿鏂癠I
- }
- return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
- }
- });
-
- // 鍚姩娑堣垂鑰�
- consumer.start();
-
- } catch (MQClientException e) {
- e.printStackTrace();
- Log.e("RocketMQ", "Consumer failed to start: " + e.getMessage());
- }
- }
-
- public void stop() {
- if (consumer != null) {
- consumer.shutdown();
- }
- }
-}
diff --git a/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java b/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java
index ff1ec5b..752bc9f 100644
--- a/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java
+++ b/app/src/main/java/com/dayu/pipirrapp/utils/CommonKeyName.java
@@ -17,6 +17,8 @@
public final static String isStartInspec = "isStartInspec";
//瀹氫綅鍚�
- public final static String locationData="locationData";
+ public final static String locationData = "locationData";
+
+ public final static String MQTTData = "MQTTData";
}
diff --git a/app/src/main/res/drawable/edittext_backgroud.xml b/app/src/main/res/drawable/edittext_backgroud.xml
new file mode 100644
index 0000000..7775948
--- /dev/null
+++ b/app/src/main/res/drawable/edittext_backgroud.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <!-- 鑳屾櫙棰滆壊 -->
+ <solid android:color="#FFFFFF" />
+
+ <!-- 鍦嗚 -->
+ <corners android:radius="6dp" />
+
+ <!-- 杈规 -->
+ <stroke
+ android:color="#CCCCCC"
+ android:width="2dp" />
+
+ <!-- 鍐呰竟璺� -->
+ <padding
+ android:left="16dp"
+ android:right="16dp"
+ android:top="10dp"
+ android:bottom="10dp" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_choose_bg_whit.xml b/app/src/main/res/drawable/ic_choose_bg_whit.xml
new file mode 100644
index 0000000..f7ddfe6
--- /dev/null
+++ b/app/src/main/res/drawable/ic_choose_bg_whit.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <corners android:radius="5dp" />
+ <stroke
+ android:width="1dp"
+ android:color="#ffffff" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_choose_gray_edge.xml b/app/src/main/res/drawable/ic_choose_gray_edge.xml
new file mode 100644
index 0000000..71acd81
--- /dev/null
+++ b/app/src/main/res/drawable/ic_choose_gray_edge.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="#ffffff" />
+ <corners android:radius="5dp" />
+ <stroke
+ android:width="1dp"
+ android:color="#ededed" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ps_audio_placeholder.xml b/app/src/main/res/drawable/ps_audio_placeholder.xml
new file mode 100644
index 0000000..4f5960a
--- /dev/null
+++ b/app/src/main/res/drawable/ps_audio_placeholder.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape>
+ <size
+ android:width="100dp"
+ android:height="100dp" />
+ <solid android:color="@color/ps_color_light_grey" />
+ </shape>
+ </item>
+ <item>
+ <bitmap
+ android:gravity="center"
+ android:src="@drawable/ps_ic_audio_placeholder" />
+ </item>
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ps_image_placeholder.xml b/app/src/main/res/drawable/ps_image_placeholder.xml
new file mode 100644
index 0000000..8c63cb1
--- /dev/null
+++ b/app/src/main/res/drawable/ps_image_placeholder.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item>
+ <shape>
+ <size
+ android:width="100dp"
+ android:height="100dp" />
+ <solid android:color="@color/ps_color_light_grey" />
+ </shape>
+ </item>
+ <item>
+ <bitmap
+ android:gravity="center"
+ android:src="@drawable/ps_ic_placeholder" />
+ </item>
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/top_state_bg.xml b/app/src/main/res/drawable/top_state_bg.xml
new file mode 100644
index 0000000..ac493be
--- /dev/null
+++ b/app/src/main/res/drawable/top_state_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/title_choose_bg" />
+ <corners android:radius="5dp" />
+ <stroke
+ android:width="1dp"
+ android:color="@color/title_choose_bg" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml
index 27e2b41..20ac86a 100644
--- a/app/src/main/res/layout/activity_login.xml
+++ b/app/src/main/res/layout/activity_login.xml
@@ -45,7 +45,7 @@
android:hint="璇疯緭鍏ュ瘑鐮�"
android:inputType="textPassword"
android:maxLines="1"
- android:text="admin"
+ android:text="dyyjy"
android:paddingLeft="10dp"
android:singleLine="true" />
diff --git a/app/src/main/res/layout/activity_order_deal.xml b/app/src/main/res/layout/activity_order_deal.xml
new file mode 100644
index 0000000..46c5be9
--- /dev/null
+++ b/app/src/main/res/layout/activity_order_deal.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <data>
+
+ <variable
+ name="itemclidk"
+ type="com.dayu.pipirrapp.fragment.OrderFragment" />
+
+ <variable
+ name="data"
+ type="com.dayu.pipirrapp.bean.net.OrderListResult.Data" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/title"
+ layout="@layout/top_title" />
+
+
+ <LinearLayout
+ android:id="@+id/center"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_above="@+id/deal_button"
+ android:layout_below="@+id/title"
+ android:orientation="vertical"
+ android:padding="20dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍙嶉鍐呭锛�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/order_detail_button_size" />
+
+
+ <EditText
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:background="@drawable/edittext_backgroud"
+ android:minHeight="100dp" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鎻愪氦鍥剧墖锛�"
+ android:layout_marginTop="10dp"
+ android:textColor="@color/black"
+ android:textSize="@dimen/order_detail_button_size" />
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recycler"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:overScrollMode="never" />
+
+ </LinearLayout>
+
+ <TextView
+ android:id="@+id/deal_button"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/order_detail_button_height"
+ android:layout_alignParentBottom="true"
+ android:background="@color/title_color"
+ android:gravity="center"
+ android:text="鎻� 浜�"
+ android:textColor="@color/white"
+ android:textSize="@dimen/order_detail_button_size" />
+
+
+ </RelativeLayout>
+
+</layout>
diff --git a/app/src/main/res/layout/activity_order_detail.xml b/app/src/main/res/layout/activity_order_detail.xml
new file mode 100644
index 0000000..613ac31
--- /dev/null
+++ b/app/src/main/res/layout/activity_order_detail.xml
@@ -0,0 +1,363 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <data>
+
+ <variable
+ name="itemclidk"
+ type="com.dayu.pipirrapp.activity.OrderDetailActivity" />
+
+ <variable
+ name="data"
+ type="com.dayu.pipirrapp.bean.net.OrderDetailResult" />
+ </data>
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical">
+
+ <include
+ android:id="@+id/title"
+ layout="@layout/top_title" />
+
+
+ <ScrollView
+ android:id="@+id/ScrollView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@+id/title">
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="vertical"
+ android:padding="20dp">
+
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="30dp"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/ic_project"
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_marginRight="15dp"
+ android:layout_centerVertical="true"
+ android:src="@mipmap/icon_project" />
+
+ <TextView
+ android:id="@+id/projectName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+
+ android:layout_marginEnd="15dp"
+ android:layout_toStartOf="@+id/stateText"
+ android:layout_toEndOf="@+id/ic_project"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:text="@{data.taskType}"
+ android:textColor="@color/title_color"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ <TextView
+ android:id="@+id/stateText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:background="@drawable/ic_edt_gray_bg"
+ android:gravity="center"
+ android:paddingLeft="10dp"
+ android:paddingTop="5dp"
+ android:paddingRight="10dp"
+ android:paddingBottom="5dp"
+ android:text="@{data.state}"
+ android:textSize="@dimen/manage_item_text_state_size" />
+
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:orientation="horizontal">
+
+
+ <TextView
+ android:id="@+id/jinduTag"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="宸ュ崟ID锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+ android:id="@+id/jindu"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@{data.workOrderId}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:orientation="horizontal">
+
+
+ <TextView
+
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="娲惧崟浜哄鍚嶏細"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@{data.dispatcher}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:orientation="horizontal">
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="娲惧崟鏃堕棿锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@{data.dispatchTime}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:text="浠诲姟绫诲瀷锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+ android:id="@+id/startTime"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@{data.taskType}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:orientation="horizontal">
+
+
+ <TextView
+ android:id="@+id/daiShenPiTag"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="瑕佹眰瀹屾垚鏃堕棿锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+ android:id="@+id/daiShenPi"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@{data.deadLine}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+ <TextView
+
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="瀹屾垚鏍囧噯锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+ android:id="@+id/xiangMuJianCheng"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+
+ android:text="@{data.completeCriteria}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="浠诲姟鍐呭锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+ android:id="@+id/xiangMuType"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+
+ android:text="@{data.taskContent}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:id="@+id/orderDealLL"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:visibility="gone">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:gravity="center"
+ android:text="澶勭悊缁撴灉"
+ android:textColor="@color/base_blue"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+
+ <TextView
+
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍙嶉锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@{data.completeCriteria}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="10dp"
+ android:orientation="vertical">
+
+ <TextView
+
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="鍙嶉鍥剧墖锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/order_detail_text_size" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_centerInParent="true"
+ android:layout_marginTop="10dp" />
+
+
+ </LinearLayout>
+ </LinearLayout>
+ </LinearLayout>
+
+ </ScrollView>
+
+
+ <TextView
+ android:id="@+id/deal_button"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/order_detail_button_height"
+ android:layout_alignParentBottom="true"
+ android:background="@color/title_color"
+ android:gravity="center"
+ android:text="澶勭悊宸ュ崟"
+ android:onClick="@{()->itemclidk.startDealActivity()}"
+ android:textColor="@color/white"
+ android:textSize="@dimen/order_detail_button_size" />
+
+
+ </RelativeLayout>
+
+</layout>
diff --git a/app/src/main/res/layout/fragment_main.xml b/app/src/main/res/layout/fragment_main.xml
deleted file mode 100644
index 7fb8cea..0000000
--- a/app/src/main/res/layout/fragment_main.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:app="http://schemas.android.com/apk/res-auto"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/bg_color">
-
- <include
- android:id="@+id/title"
- layout="@layout/top_title" />
-
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/title"
- android:layout_marginStart="10dp"
- android:layout_marginTop="10dp"
- android:layout_marginEnd="10dp"
- android:layout_marginBottom="10dp"
- android:background="@drawable/bg_fillet_blue"
- android:paddingLeft="15dp"
- android:paddingTop="10dp"
- android:paddingRight="25dp"
- android:paddingBottom="10dp">
-
-
- <TextView
- android:id="@+id/cityName"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="鍩庡競"
- android:textColor="@color/white"
- android:textSize="18sp" />
-
-
- <TextView
- android:id="@+id/time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/cityName"
- android:layout_alignParentRight="true"
- android:text="鏃ユ湡"
- android:textColor="@color/white"
- android:textSize="16sp" />
-
-
- <TextView
- android:id="@+id/weather_name"
- android:layout_width="wrap_content"
- android:layout_height="30dp"
- android:layout_below="@+id/time"
- android:layout_alignParentRight="true"
- android:layout_marginTop="10dp"
- android:gravity="center"
- android:text="澶╂皵"
- android:textColor="@color/white"
- android:textSize="16sp" />
-
- <ImageView
- android:id="@+id/weather_img"
- android:layout_width="30dp"
- android:layout_height="30dp"
- android:layout_alignTop="@+id/weather_name"
- android:layout_marginRight="10dp"
- android:layout_toLeftOf="@+id/weather_name"
- android:src="@mipmap/weather_99" />
-
-
- <TextView
- android:id="@+id/weather_temperature"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/weather_name"
- android:layout_alignParentRight="true"
- android:layout_marginTop="10dp"
- android:text="娓╁害"
- android:textColor="@color/white"
- android:textSize="16sp" />
-
-
- </RelativeLayout>
-
-
-</RelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_map.xml b/app/src/main/res/layout/fragment_map.xml
index 75471b7..73c122e 100644
--- a/app/src/main/res/layout/fragment_map.xml
+++ b/app/src/main/res/layout/fragment_map.xml
@@ -12,13 +12,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent" />
- <TextView
- android:id="@+id/flyBtn"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_centerHorizontal="true"
- android:text="璺宠浆鍒版寚瀹氫綅缃�" />
+
<TextView
android:id="@+id/stateText"
diff --git a/app/src/main/res/layout/fragment_my.xml b/app/src/main/res/layout/fragment_my.xml
index 25baa94..731f974 100644
--- a/app/src/main/res/layout/fragment_my.xml
+++ b/app/src/main/res/layout/fragment_my.xml
@@ -7,9 +7,16 @@
android:background="@color/bg_color">
- <include
+
+ <TextView
android:id="@+id/title"
- layout="@layout/top_title" />
+ android:layout_width="match_parent"
+ android:background="@color/title_color"
+ android:textSize="@dimen/title_center_text_size"
+ android:gravity="center"
+ android:text="鎴戠殑"
+ android:textColor="@color/white"
+ android:layout_height="@dimen/title_height"/>
<View
diff --git a/app/src/main/res/layout/fragment_order.xml b/app/src/main/res/layout/fragment_order.xml
new file mode 100644
index 0000000..c89655f
--- /dev/null
+++ b/app/src/main/res/layout/fragment_order.xml
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+ <data>
+
+ <variable
+ name="activity"
+ type="com.dayu.pipirrapp.fragment.OrderFragment" />
+
+ </data>
+
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+
+ <TextView
+ android:id="@+id/title"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/title_height"
+ android:background="@color/title_color"
+ android:gravity="center"
+ android:text="宸ュ崟"
+ android:textColor="@color/white"
+ android:textSize="@dimen/title_center_text_size" />
+
+ <LinearLayout
+ android:id="@+id/manage_choose_ll"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/title_choose_height"
+ android:layout_below="@+id/title"
+ android:background="@color/title_choose_bg"
+ android:orientation="horizontal"
+ android:paddingTop="10dp"
+ android:paddingBottom="10dp"
+ android:visibility="gone">
+
+ <RelativeLayout
+ android:id="@+id/choose_manage_rl"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="5dp"
+
+ android:layout_marginRight="5dp"
+
+ android:layout_weight="1"
+ android:background="@drawable/ic_choose_bg_whit"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/choose_manage_name"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_toStartOf="@+id/choose_xiangmu_right"
+ android:gravity="center"
+ android:text="鍏ㄩ儴椤圭洰"
+ android:textColor="@color/choose_grey"
+ android:textSize="@dimen/top_choose_text_size" />
+
+ <ImageView
+ android:id="@+id/choose_xiangmu_right"
+ android:layout_width="15dp"
+ android:layout_height="15dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="8dp"
+ android:src="@mipmap/icon_bottom" />
+ </RelativeLayout>
+
+ <RelativeLayout
+ android:id="@+id/choose_pianqu_rl"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="5dp"
+ android:layout_marginRight="5dp"
+
+ android:layout_weight="1"
+ android:background="@drawable/ic_choose_bg_whit"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/choose_pianqu_name"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_toStartOf="@+id/choose_pianqu_right"
+ android:gravity="center"
+ android:text="鍏ㄩ儴鐗囧尯"
+ android:textColor="@color/choose_grey"
+ android:textSize="@dimen/top_choose_text_size" />
+
+ <ImageView
+ android:id="@+id/choose_pianqu_right"
+ android:layout_width="15dp"
+ android:layout_height="15dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="8dp"
+ android:src="@mipmap/icon_bottom" />
+ </RelativeLayout>
+
+ <RelativeLayout
+ android:id="@+id/choose_project_rl"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginLeft="5dp"
+
+ android:layout_marginRight="5dp"
+
+ android:layout_weight="1"
+ android:background="@drawable/ic_choose_bg_whit"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/choose_project_name"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_toStartOf="@+id/choose_project_right"
+ android:gravity="center"
+ android:text="鍏ㄩ儴宸ョ▼"
+ android:textColor="@color/choose_grey"
+ android:textSize="@dimen/top_choose_text_size" />
+
+ <ImageView
+ android:id="@+id/choose_project_right"
+ android:layout_width="15dp"
+ android:layout_height="15dp"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="8dp"
+ android:src="@mipmap/icon_bottom" />
+ </RelativeLayout>
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:id="@+id/manage_state_ll"
+ android:layout_width="match_parent"
+ android:layout_height="@dimen/top_state_height"
+ android:layout_below="@+id/manage_choose_ll"
+ android:layout_margin="10dp"
+ android:background="@drawable/top_state_bg"
+ android:orientation="horizontal">
+
+ <TextView
+ android:id="@+id/manage_state_progress"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_margin="5dp"
+ android:layout_weight="1"
+ android:background="@drawable/ic_choose_bg_whit"
+ android:gravity="center"
+ android:text="鏈В鍐�"
+ android:textColor="@color/title_color"
+ android:textSize="@dimen/top_state_text_size"
+ android:textStyle="bold" />
+
+ <TextView
+ android:id="@+id/manage_state_finish"
+ android:layout_width="wrap_content"
+ android:layout_height="match_parent"
+ android:layout_margin="5dp"
+ android:layout_weight="1"
+ android:gravity="center"
+ android:text="宸茶В鍐�"
+ android:textColor="@color/black"
+ android:textSize="@dimen/top_state_text_size" />
+
+ </LinearLayout>
+
+ <ImageView
+ android:id="@+id/line"
+ android:layout_width="match_parent"
+ android:layout_height="2px"
+ android:layout_below="@+id/manage_state_ll"
+ android:src="@color/line_bg" />
+
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/refreshLayout"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@+id/line">
+
+ <com.scwang.smart.refresh.header.ClassicsHeader
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="#fff"
+ android:overScrollMode="never"
+ android:padding="10dp" />
+
+ <com.scwang.smart.refresh.footer.ClassicsFooter
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+ <com.scwang.smart.refresh.layout.SmartRefreshLayout
+ android:id="@+id/refreshLayoutDone"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_below="@+id/line"
+ android:visibility="gone">
+
+ <com.scwang.smart.refresh.header.ClassicsHeader
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerViewDone"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="#fff"
+ android:overScrollMode="never"
+ android:padding="10dp" />
+
+ <com.scwang.smart.refresh.footer.ClassicsFooter
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+ </com.scwang.smart.refresh.layout.SmartRefreshLayout>
+
+ </RelativeLayout>
+</layout>
diff --git a/app/src/main/res/layout/item_add_filter_image.xml b/app/src/main/res/layout/item_add_filter_image.xml
new file mode 100644
index 0000000..074b184
--- /dev/null
+++ b/app/src/main/res/layout/item_add_filter_image.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<com.luck.picture.lib.widget.SquareRelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+
+ <ImageView
+ android:id="@+id/fiv"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:src="@color/app_color_f6" />
+
+ <ImageView
+ android:id="@+id/iv_del"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignTop="@id/fiv"
+ android:layout_alignRight="@id/fiv"
+ android:paddingLeft="10dp"
+ android:paddingBottom="10dp"
+ android:scaleType="centerInside"
+ android:src="@mipmap/ic_item_delete"
+ android:visibility="gone"
+ tools:visibility="visible" />
+
+ <TextView
+ android:id="@+id/tv_duration"
+ android:layout_width="match_parent"
+ android:layout_height="30dp"
+ android:layout_alignLeft="@id/fiv"
+ android:layout_alignRight="@id/fiv"
+ android:layout_alignBottom="@id/fiv"
+ android:background="@drawable/ps_ic_shadow_bg"
+ android:drawableLeft="@drawable/ps_ic_video"
+ android:drawablePadding="5dp"
+ android:gravity="center_vertical"
+ android:paddingLeft="5dp"
+ android:paddingTop="8dp"
+ android:text="00:00"
+ android:textColor="@color/app_color_white"
+ android:textSize="11sp"
+ android:visibility="gone"
+ tools:visibility="visible" />
+</com.luck.picture.lib.widget.SquareRelativeLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_image.xml b/app/src/main/res/layout/item_image.xml
new file mode 100644
index 0000000..2e11ae1
--- /dev/null
+++ b/app/src/main/res/layout/item_image.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="8dp"
+ android:elevation="4dp">
+
+ <ImageView
+ android:id="@+id/thumbnailImageView"
+ android:layout_width="100dp"
+ android:layout_height="100dp"
+ android:scaleType="centerCrop"/>
+
+</androidx.cardview.widget.CardView>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_no_more.xml b/app/src/main/res/layout/item_no_more.xml
new file mode 100644
index 0000000..2127db5
--- /dev/null
+++ b/app/src/main/res/layout/item_no_more.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:background="@color/white"
+ android:gravity="center"
+ android:orientation="vertical">
+
+ <ImageView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="50dp"
+ android:layout_marginRight="50dp"
+ android:src="@mipmap/ic_no_more" />
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="10dp"
+ android:text="娌℃湁鏁版嵁"
+ android:textColor="@color/choose_grey" />
+
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_order.xml b/app/src/main/res/layout/item_order.xml
new file mode 100644
index 0000000..43adade
--- /dev/null
+++ b/app/src/main/res/layout/item_order.xml
@@ -0,0 +1,282 @@
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <data>
+
+ <variable
+ name="itemclidk"
+ type="com.dayu.pipirrapp.fragment.OrderFragment" />
+
+ <variable
+ name="data"
+ type="com.dayu.pipirrapp.bean.net.OrderListResult.Data" />
+ </data>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
+ android:background="@drawable/ic_choose_gray_edge"
+ android:onClick="@{()->itemclidk.startDetail(data.workOrderId)}"
+ android:orientation="vertical"
+ android:padding="10dp">
+
+ <RelativeLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="30dp"
+ android:orientation="horizontal">
+
+ <ImageView
+ android:id="@+id/ic_project"
+ android:layout_width="20dp"
+ android:layout_height="20dp"
+ android:layout_centerVertical="true"
+ android:layout_marginRight="10dp"
+ android:src="@mipmap/icon_project" />
+
+ <TextView
+ android:id="@+id/projectName"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_centerVertical="true"
+
+ android:layout_marginEnd="15dp"
+ android:layout_toStartOf="@+id/stateText"
+ android:layout_toEndOf="@+id/ic_project"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:text="@{data.taskType}"
+ android:textColor="@color/title_color"
+ android:textSize="@dimen/manage_item_text_size" />
+
+
+ <TextView
+ android:id="@+id/stateText"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_alignParentRight="true"
+ android:layout_centerVertical="true"
+ android:background="@drawable/ic_edt_gray_bg"
+ android:gravity="center"
+ android:paddingLeft="10dp"
+ android:paddingTop="5dp"
+ android:paddingRight="10dp"
+ android:paddingBottom="5dp"
+ android:text="@{data.state}"
+ android:textSize="@dimen/manage_item_text_state_size" />
+
+
+ </RelativeLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1">
+
+ <TextView
+ android:id="@+id/jinduTag"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="宸ュ崟ID锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+
+ <TextView
+ android:id="@+id/jindu"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@{data.workOrderId}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+ </LinearLayout>
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1">
+
+ <TextView
+ android:id="@+id/daiShenPiTag"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="瑕佹眰瀹屾垚鏃堕棿锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+
+ <TextView
+ android:id="@+id/daiShenPi"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@{data.deadLine}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+ </LinearLayout>
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingRight="5dp">
+
+ <TextView
+
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="瀹屾垚鏍囧噯锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+
+ <TextView
+ android:id="@+id/xiangMuJianCheng"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:text="@{data.completeCriteria}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+ </LinearLayout>
+
+
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:gravity="center_vertical"
+ android:orientation="horizontal"
+ android:paddingRight="5dp">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="浠诲姟鍐呭锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+
+ <TextView
+ android:id="@+id/xiangMuType"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:ellipsize="end"
+ android:maxLines="1"
+ android:text="@{data.taskContent}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+ </LinearLayout>
+
+
+ </LinearLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
+ android:orientation="horizontal">
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="5dp"
+ android:layout_weight="2"
+ android:gravity="center_vertical"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:gravity="center_vertical"
+ android:text="娲惧崟鏃堕棿锛�"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+
+ <TextView
+ android:id="@+id/startTime"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@{data.dispatchTime}"
+ android:textColor="@color/manage_item_text"
+ android:textSize="@dimen/manage_item_text_size" />
+
+ </LinearLayout>
+
+
+ <LinearLayout
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginLeft="10dp"
+ android:layout_marginTop="5dp"
+ android:layout_marginRight="10dp"
+ android:layout_weight="1"
+ android:orientation="horizontal"
+ android:visibility="gone">
+
+
+ <TextView
+ android:id="@+id/lookDetail"
+ android:layout_width="0dp"
+ android:layout_height="@dimen/manage_item_btn_height"
+ android:layout_weight="1"
+ android:background="@drawable/ic_blue_background"
+ android:gravity="center"
+
+ android:text="鏌ョ湅"
+ android:textColor="@color/white"
+ android:textSize="@dimen/manage_item_btn_text_size" />
+
+
+ <TextView
+ android:id="@+id/examineBtn"
+ android:layout_width="0dp"
+ android:layout_height="@dimen/manage_item_btn_height"
+ android:layout_marginLeft="15dp"
+ android:layout_weight="1"
+ android:background="@drawable/ic_blue_background"
+ android:gravity="center"
+
+ android:text="瀹℃壒"
+ android:textColor="@color/white"
+ android:textSize="@dimen/manage_item_btn_text_size" />
+
+
+ </LinearLayout>
+ </LinearLayout>
+
+ </LinearLayout>
+</layout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-xhdpi/ic_add_image.png b/app/src/main/res/mipmap-xhdpi/ic_add_image.png
new file mode 100644
index 0000000..38e38da
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_add_image.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_item_delete.png b/app/src/main/res/mipmap-xhdpi/ic_item_delete.png
new file mode 100644
index 0000000..2025f26
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_item_delete.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_no_more.png b/app/src/main/res/mipmap-xhdpi/ic_no_more.png
new file mode 100644
index 0000000..4769505
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_no_more.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_bottom.png b/app/src/main/res/mipmap-xhdpi/icon_bottom.png
new file mode 100644
index 0000000..c71682a
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_bottom.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/icon_project.png b/app/src/main/res/mipmap-xhdpi/icon_project.png
new file mode 100644
index 0000000..2323b34
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/icon_project.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ps_ic_audio.png b/app/src/main/res/mipmap-xhdpi/ps_ic_audio.png
new file mode 100644
index 0000000..3b33f07
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ps_ic_audio.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ps_ic_video.png b/app/src/main/res/mipmap-xhdpi/ps_ic_video.png
new file mode 100644
index 0000000..9faaf32
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ps_ic_video.png
Binary files differ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 74d480f..9d0b954 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -15,4 +15,10 @@
<color name="line_bg">#DADADA</color>
<color name="text_on">#BEBEBE</color>
<color name="text_color">#696969</color>
+ <color name="title_choose_bg">#D9D9D9</color>
+ <color name="choose_grey">#cdcdcd</color>
+ <color name="manage_item_text">#000000</color>
+ <color name="manage_item_time">#AAAAAA</color>
+ <color name="app_color_f6">#f6f6f6</color>
+ <color name="app_color_white">#FFFFFF</color>
</resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index 7e06c60..9994b8b 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -10,4 +10,19 @@
<dimen name="dialog_btn_height">45dp</dimen>
<dimen name="dialog_bg_margin">30dp</dimen>
+ <dimen name="title_choose_height">50dp</dimen>
+ <dimen name="top_choose_text_size">11sp</dimen>
+ <dimen name="top_state_height">40dp</dimen>
+ <dimen name="top_state_text_size">14sp</dimen>
+ <dimen name="manage_item_text_size">13sp</dimen>
+ <dimen name="manage_item_text_state_size">10sp</dimen>
+ <dimen name="manage_item_text_time_size">10sp</dimen>
+ <dimen name="manage_item_btn_height">30dp</dimen>
+ <dimen name="manage_item_btn_text_size">14sp</dimen>
+
+
+ <dimen name="order_detail_text_size">17sp</dimen>
+
+ <dimen name="order_detail_button_size">17sp</dimen>
+ <dimen name="order_detail_button_height">50dp</dimen>
</resources>
\ No newline at end of file
--
Gitblit v1.8.0