diff --git a/app/build.gradle b/app/build.gradle index 857140d..4667ad0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -54,4 +54,7 @@ dependencies { implementation files('libs/SerialPort.jar') implementation 'androidx.gridlayout:gridlayout:1.0.0' implementation 'com.google.android.material:material:1.11.0' + implementation 'com.github.xuexiangjys:XUpdate:2.1.4' + implementation 'com.github.xuexiangjys.XUpdateAPI:xupdate-easy:1.0.1' + implementation 'com.github.bumptech.glide:glide:4.16.0' } diff --git a/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java b/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java index 12cf3cd..dd79922 100644 --- a/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java +++ b/app/src/main/java/com/example/tyre/maintenance/WorkExecuteActivity.java @@ -296,7 +296,7 @@ public class WorkExecuteActivity extends BaseActivity { public void tekePhotoResult(String fileUrl, File file) { super.tekePhotoResult(fileUrl, file); Log.e("TAG", "拍照成功,路径是:" + fileUrl); - tireUpdateDialog.setImage(file); + tireUpdateDialog.setImage(fileUrl,file); } // 删除实时表、卸车记录表 diff --git a/app/src/main/java/com/example/tyre/maintenance/adapter/DisposalFileAdapter.java b/app/src/main/java/com/example/tyre/maintenance/adapter/DisposalFileAdapter.java new file mode 100644 index 0000000..8831994 --- /dev/null +++ b/app/src/main/java/com/example/tyre/maintenance/adapter/DisposalFileAdapter.java @@ -0,0 +1,92 @@ +package com.example.tyre.maintenance.adapter; + +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.databinding.DataBindingUtil; +import androidx.recyclerview.widget.RecyclerView; + + +import com.bumptech.glide.Glide; +import com.example.tyre.BR; +import com.example.tyre.R; +import com.example.tyre.databinding.ItemDisposalImgBinding; +import com.example.tyre.maintenance.been.CheckInstanceFiles; + +import java.util.List; + +/** + * @author wanghao + * @date 2024/3/11 + */ +public class DisposalFileAdapter extends RecyclerView.Adapter { + private List list; + private static Context context; + private LayoutInflater inflater; + private ItemClickCall clickCall; + private boolean delectState=false; + + public void setDelectState(boolean delectState) { + this.delectState = delectState; + } + + public DisposalFileAdapter(Context context, ItemClickCall clickCall) { + this.context = context; + this.clickCall = clickCall; + inflater = LayoutInflater.from(context); + } + + public void setList(List list) { + this.list = list; + } + + @NonNull + @Override + public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + ItemDisposalImgBinding binding = DataBindingUtil.inflate(inflater, R.layout.item_disposal_img, parent, false); + return new MyViewHolder(binding); + } + + // @SuppressLint("CheckResult") + @Override + public void onBindViewHolder(@NonNull MyViewHolder holder, int position) { + var outstock = list.get(position); + var binding = holder.binding; + binding.setVariable(BR.vm,outstock); + Log.e("TAG", "onBindViewHolder:" + outstock.isState()); + Glide.with(context) + .load(outstock.getFaultFile()) + .into(binding.disFile); + binding.disFile.setOnClickListener(v -> clickCall.onClick(position,true)); + if (delectState){ + binding.disposalDelect.setVisibility(View.GONE); + }else{ + binding.disposalDelect.setVisibility(View.VISIBLE); + binding.disposalDelect.setOnClickListener(v -> clickCall.onClick(position,false)); + } + + } + + @Override + public int getItemCount() { + return list==null?0:list.size(); + } + + class MyViewHolder extends RecyclerView.ViewHolder { + private ItemDisposalImgBinding binding; + + public MyViewHolder(ItemDisposalImgBinding binding) { + super(binding.getRoot()); + this.binding = binding; + } + + + } + public interface ItemClickCall { + void onClick(int position,boolean type); + } +} diff --git a/app/src/main/java/com/example/tyre/maintenance/been/CheckInstanceFiles.java b/app/src/main/java/com/example/tyre/maintenance/been/CheckInstanceFiles.java new file mode 100644 index 0000000..0f50df0 --- /dev/null +++ b/app/src/main/java/com/example/tyre/maintenance/been/CheckInstanceFiles.java @@ -0,0 +1,37 @@ +package com.example.tyre.maintenance.been; + +import androidx.databinding.BaseObservable; + +/** + * @author wanghao + * 图片用 + * @date 2024/3/11 10:00 + */ +public class CheckInstanceFiles extends BaseObservable { + private String faultFile; + private boolean state=false; + + public boolean isState() { + return state; + } + + public void setState(boolean state) { + this.state = state; + + } + + public String getFaultFile() { + return faultFile; + } + + public void setFaultFile(String faultFile) { + this.faultFile = faultFile; + } + + @Override + public String toString() { + return "CheckInstanceFiles{" + + "faultFile='" + faultFile + '\'' + + '}'; + } +} diff --git a/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java b/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java index 4b5c702..83732f9 100644 --- a/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java +++ b/app/src/main/java/com/example/tyre/maintenance/dialog/TireUpdateDialog.java @@ -22,10 +22,13 @@ import androidx.databinding.ObservableBoolean; import com.example.tyre.R; import com.example.tyre.databinding.DialogTireUpdateBinding; +import com.example.tyre.maintenance.adapter.DisposalFileAdapter; import com.example.tyre.maintenance.been.BaseTyre; import com.example.tyre.maintenance.been.BizOrderTireDetail; +import com.example.tyre.maintenance.been.CheckInstanceFiles; import java.io.File; +import java.util.ArrayList; import java.util.List; public class TireUpdateDialog extends Dialog { @@ -36,7 +39,7 @@ public class TireUpdateDialog extends Dialog { private BizOrderTireDetail newTireDetail;// 新轮胎 private TireUpdateDialogSaveListener listener; private File image; - private ObservableBoolean photoState; + // private ObservableBoolean photoState; private TireChangeDialog tireChangeDialog;// 同车轮胎互换弹窗 private List baseTyreList; private BaseTyre newBaseTyre; @@ -100,8 +103,8 @@ public class TireUpdateDialog extends Dialog { // 拍照按钮点击事件 binding.dialogUpdatePhoto.setOnClickListener(view -> listener.onTakePhoto()); - photoState = new ObservableBoolean(false); - binding.setPhotoState(photoState); + // photoState = new ObservableBoolean(false); + // binding.setPhotoState(photoState); setContentView(binding.getRoot()); tireChangeDialog = new TireChangeDialog(context, new TireChangeDialog.TireChangeListener() { @Override @@ -111,7 +114,12 @@ public class TireUpdateDialog extends Dialog { }); + disposalFileAdapter=new DisposalFileAdapter(context, new DisposalFileAdapter.ItemClickCall() { + @Override + public void onClick(int position, boolean type) { + } + }); } // 换新胎了 @@ -151,8 +159,9 @@ public class TireUpdateDialog extends Dialog { newTireDetail.setDataType("换新胎,装车"); newTireDetail.setTireStatus("换新胎,装车"); // 重置ui - photoState.set(false); + // photoState.set(false); binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_xiangji); + filesList=new ArrayList<>(); show(); } @@ -180,11 +189,18 @@ public class TireUpdateDialog extends Dialog { // 点击外部不关闭 setCanceledOnTouchOutside(false); } - - public void setImage(File image) { + private DisposalFileAdapter disposalFileAdapter; + private List filesList ; + public void setImage(String fileUrl,File image) { this.image = image; - photoState.set(true); - binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_duihao); + // photoState.set(true); + // binding.dialogUpdatePhoto.setImageResource(R.mipmap.ic_duihao); + CheckInstanceFiles checkInstanceFiles = new CheckInstanceFiles(); + checkInstanceFiles.setFaultFile(fileUrl); + checkInstanceFiles.setState(true); + filesList.add(checkInstanceFiles); + disposalFileAdapter.notifyDataSetChanged(); + } public interface TireUpdateDialogSaveListener { diff --git a/app/src/main/res/layout/dialog_tire_update.xml b/app/src/main/res/layout/dialog_tire_update.xml index 7dfd07b..d86a120 100644 --- a/app/src/main/res/layout/dialog_tire_update.xml +++ b/app/src/main/res/layout/dialog_tire_update.xml @@ -161,6 +161,27 @@ android:textColor="@color/textColor1" app:layout_columnWeight="1" /> + + + + + + + @@ -290,7 +311,50 @@ android:layout_height="40dp" android:layout_marginTop="8dp" android:gravity="left|center" - android:text="胎压" + android:text="保养前胎压" + android:textColor="@color/textColor1" + app:layout_columnWeight="1" /> + + + + + + + + + + + @@ -338,16 +402,35 @@ app:layout_columnWeight="1" /> - + android:orientation="horizontal" + app:layout_columnSpan="2"> + + + + + + android:textColor="@color/textColor1" + app:layout_columnWeight="1" /> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xhdpi/ic_cha1.png b/app/src/main/res/mipmap-xhdpi/ic_cha1.png new file mode 100644 index 0000000..d692a5f Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_cha1.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_picture_err.png b/app/src/main/res/mipmap-xhdpi/ic_picture_err.png new file mode 100644 index 0000000..f788c23 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_picture_err.png differ