first
This commit is contained in:
151
app/src/main/java/com/ckkj/water/index/IndexFragment.java
Normal file
151
app/src/main/java/com/ckkj/water/index/IndexFragment.java
Normal file
@@ -0,0 +1,151 @@
|
||||
package com.ckkj.water.index;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.base.BaseFragment;
|
||||
import com.ckkj.water.databinding.IndexFragmentLayoutBinding;
|
||||
import com.ckkj.water.device.AddDeviceActivity;
|
||||
import com.ckkj.water.device.DeviceControlActivity;
|
||||
import com.ckkj.water.index.adapter.DeviceAdapter;
|
||||
import com.ckkj.water.index.entity.IndexDeviceEntity;
|
||||
import com.ckkj.water.index.mvp.IndexContract;
|
||||
import com.ckkj.water.index.mvp.IndexImpl;
|
||||
import com.ckkj.water.index.mvp.IndexPresenter;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
import com.ckkj.water.utils.show.ToastUtil;
|
||||
import com.maning.mlkitscanner.scan.MNScanManager;
|
||||
import com.maning.mlkitscanner.scan.callback.act.MNScanCallback;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import pub.devrel.easypermissions.EasyPermissions;
|
||||
|
||||
public class IndexFragment extends BaseFragment<IndexFragmentLayoutBinding, IndexPresenter>
|
||||
implements IndexContract.IndexView , EasyPermissions.PermissionCallbacks{
|
||||
|
||||
private DeviceAdapter deviceAdapter;
|
||||
private List<IndexDeviceEntity> devList = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
protected void initArgs(Bundle bundle) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initData(@Nullable Bundle savedInstanceState) {
|
||||
IndexDeviceEntity entity = new IndexDeviceEntity("智能浇水设备A1","YA226641000101","工作中",100);
|
||||
IndexDeviceEntity entity2 = new IndexDeviceEntity("智能浇水设备B1","YA22664100000","工作中",80);
|
||||
IndexDeviceEntity entity3 = new IndexDeviceEntity("智能浇水设备C5","YA234534000101","工作中",70);
|
||||
IndexDeviceEntity entity4 = new IndexDeviceEntity("智能浇水设备D6","YA2266678543101","工作中",50);
|
||||
devList.add(entity);
|
||||
devList.add(entity2);
|
||||
devList.add(entity3);
|
||||
devList.add(entity4);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IndexPresenter createPresenter() {
|
||||
return new IndexPresenter(new IndexImpl());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initView() {
|
||||
super.initView();
|
||||
setupRecyclerView();
|
||||
initListener();
|
||||
}
|
||||
|
||||
private void initListener() {
|
||||
setClick(viewBinding.imgScan);
|
||||
setClick(viewBinding.imgAdd);
|
||||
}
|
||||
|
||||
private void setClick(View view) {
|
||||
view.setOnClickListener(this::onClick);
|
||||
}
|
||||
|
||||
public void onClick(View v){
|
||||
switch (v.getId()){
|
||||
|
||||
case R.id.img_scan:
|
||||
//检测有无相机权限
|
||||
String readPermission = Manifest.permission.CAMERA;
|
||||
if(!hasRecordPermission(readPermission)){
|
||||
getPermissionRequst(readPermission,"权限申请",
|
||||
"智能浇水需要您的授权访问相机,并使用扫一扫",REQUEST_EVENT_CODE_10001);
|
||||
}else{
|
||||
scanQrcode();
|
||||
}
|
||||
break;
|
||||
|
||||
case R.id.img_add:
|
||||
goTo(mContext, AddDeviceActivity.class,null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void scanQrcode() {
|
||||
//默认扫描
|
||||
MNScanManager.startScan(mContext, new MNScanCallback() {
|
||||
@Override
|
||||
public void onActivityResult(int resultCode, Intent data) {
|
||||
switch (resultCode) {
|
||||
case MNScanManager.RESULT_SUCCESS:
|
||||
ArrayList<String> results = data.getStringArrayListExtra(MNScanManager.INTENT_KEY_RESULT_SUCCESS);
|
||||
if(results != null){
|
||||
ToastUtil.showShort(mContext,results.get(0).toString());
|
||||
}
|
||||
break;
|
||||
case MNScanManager.RESULT_FAIL:
|
||||
String resultError = data.getStringExtra(MNScanManager.INTENT_KEY_RESULT_ERROR);
|
||||
break;
|
||||
case MNScanManager.RESULT_CANCLE:
|
||||
ToastUtil.showShort(mContext,"取消扫码");
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void setupRecyclerView() {
|
||||
deviceAdapter = new DeviceAdapter(mContext,R.layout.index_device_list_item,devList);
|
||||
viewBinding.rvDevices.setAdapter(deviceAdapter);
|
||||
deviceAdapter.setOnItemClickListener((adapter, view, position) -> {
|
||||
goTo(mContext, DeviceControlActivity.class,null);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetChange(int netModel) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showError(String message) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void logOut(BaseBean bean) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
|
||||
hidePermissionDialog();
|
||||
if (requestCode == REQUEST_EVENT_CODE_10001) {
|
||||
scanQrcode();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.ckkj.water.index.adapter;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.chad.library.adapter.base.BaseViewHolder;
|
||||
import com.ckkj.water.R;
|
||||
import com.ckkj.water.index.entity.IndexDeviceEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class DeviceAdapter extends BaseQuickAdapter<IndexDeviceEntity, BaseViewHolder> {
|
||||
|
||||
public DeviceAdapter(Context context, int layoutResId, @Nullable List<IndexDeviceEntity> data) {
|
||||
super(layoutResId, data);
|
||||
this.mContext = context;
|
||||
this.mData = data;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void convert(BaseViewHolder holder, IndexDeviceEntity item) {
|
||||
holder.setText(R.id.tv_device_name,item.getDeviceNames());
|
||||
holder.setText(R.id.tv_device_serial,item.getDeviceSerials());
|
||||
holder.setText(R.id.tv_device_status,item.getDeviceStatuses());
|
||||
holder.setText(R.id.tv_battery_level,item.getBatteryLevels() + "");
|
||||
}
|
||||
|
||||
|
||||
// public DeviceAdapter() {
|
||||
// super();
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull String data) {
|
||||
// holder.tvDeviceName.setText(deviceNames[position]);
|
||||
// holder.tvDeviceSerial.setText(deviceSerials[position]);
|
||||
// holder.tvDeviceStatus.setText(deviceStatuses[position]);
|
||||
// holder.tvBatteryLevel.setText(batteryLevels[position] + "%");
|
||||
// }
|
||||
//
|
||||
// @NonNull
|
||||
// @Override
|
||||
// public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||
// View view = LayoutInflater.from(parent.getContext())
|
||||
// .inflate(R.layout.index_device_list_item, parent, false);
|
||||
// return new ViewHolder(view);
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected void convert(ViewHolder helper, String item) {
|
||||
//
|
||||
// }
|
||||
//
|
||||
// static class ViewHolder extends RecyclerView.ViewHolder {
|
||||
// TextView tvDeviceName;
|
||||
// TextView tvDeviceSerial;
|
||||
// TextView tvDeviceStatus;
|
||||
// TextView tvBatteryLevel;
|
||||
//
|
||||
// public ViewHolder(@NonNull View itemView) {
|
||||
// super(itemView);
|
||||
// tvDeviceName = itemView.findViewById(R.id.tv_device_name);
|
||||
// tvDeviceSerial = itemView.findViewById(R.id.tv_device_serial);
|
||||
// tvDeviceStatus = itemView.findViewById(R.id.tv_device_status);
|
||||
// tvBatteryLevel = itemView.findViewById(R.id.tv_battery_level);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.ckkj.water.index.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class IndexDeviceEntity implements Serializable {
|
||||
private String deviceNames;
|
||||
private String deviceSerials;
|
||||
private String deviceStatuses;
|
||||
private int batteryLevels;
|
||||
|
||||
public IndexDeviceEntity(String deviceNames, String deviceSerials, String deviceStatuses, int batteryLevels) {
|
||||
this.deviceNames = deviceNames;
|
||||
this.deviceSerials = deviceSerials;
|
||||
this.deviceStatuses = deviceStatuses;
|
||||
this.batteryLevels = batteryLevels;
|
||||
}
|
||||
|
||||
public String getDeviceNames() {
|
||||
return deviceNames;
|
||||
}
|
||||
|
||||
public void setDeviceNames(String deviceNames) {
|
||||
this.deviceNames = deviceNames;
|
||||
}
|
||||
|
||||
public String getDeviceSerials() {
|
||||
return deviceSerials;
|
||||
}
|
||||
|
||||
public void setDeviceSerials(String deviceSerials) {
|
||||
this.deviceSerials = deviceSerials;
|
||||
}
|
||||
|
||||
public String getDeviceStatuses() {
|
||||
return deviceStatuses;
|
||||
}
|
||||
|
||||
public void setDeviceStatuses(String deviceStatuses) {
|
||||
this.deviceStatuses = deviceStatuses;
|
||||
}
|
||||
|
||||
public int getBatteryLevels() {
|
||||
return batteryLevels;
|
||||
}
|
||||
|
||||
public void setBatteryLevels(int batteryLevels) {
|
||||
this.batteryLevels = batteryLevels;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.ckkj.water.index.mvp;
|
||||
|
||||
import com.ckkj.water.base.IView;
|
||||
import com.ckkj.water.login.entity.LoginEntity;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
/**
|
||||
* @author fengxiaoyang
|
||||
* @date 2025/7/26
|
||||
* @description TODO: 描述该类的作用
|
||||
*/
|
||||
|
||||
public class IndexContract {
|
||||
public interface CallBack<T> {
|
||||
void success(T msg);
|
||||
void fail(String msg);
|
||||
}
|
||||
public interface DataModel{
|
||||
}
|
||||
|
||||
public interface IndexView extends IView{
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.ckkj.water.index.mvp;
|
||||
|
||||
public class IndexImpl implements IndexContract.DataModel{
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.ckkj.water.index.mvp;
|
||||
|
||||
import com.ckkj.water.base.BasePresenter;
|
||||
import com.ckkj.water.login.mvp.LoginImpl;
|
||||
import com.ckkj.water.network.BaseBean;
|
||||
|
||||
public class IndexPresenter extends BasePresenter<IndexContract.IndexView>{
|
||||
|
||||
private IndexImpl mImpl;
|
||||
|
||||
public IndexPresenter(IndexImpl mImpl) {
|
||||
this.mImpl = mImpl;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user