Bläddra i källkod

1.使用shell命令来获取权限
2.修复心跳不同步BUg

JaycePC 1 månad sedan
förälder
incheckning
3499955001

+ 1 - 1
app/build.gradle

@@ -13,7 +13,7 @@ android {
         //noinspection ExpiredTargetSdkVersion,OldTargetApi
         targetSdk 28
         versionCode 1
-        versionName "1.10"
+        versionName "1.13"
 
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
         multiDexEnabled = true

+ 1 - 1
app/src/main/java/com/rc/httpcore/client/HttpTool.java

@@ -244,7 +244,7 @@ public final class HttpTool {
         jsonObject.put("adbEnabled", true);
         jsonObject.put("ip", NetworkUtils.getIPAddress(true));
         LogUtils.d("心跳", jsonObject);
-        return OkHttpUtils.postSync(Tool.INSTANCE.getBaseUrl() + "terminal/machine/upgrade/heartbeat", jsonObject.toString());
+        return OkHttpUtils.postSync(HttpConfig.Companion.getAPI_BASE_URL() + "terminal/machine/heartbeat", jsonObject.toString());
     }
 
 }

+ 29 - 40
app/src/main/java/xn/hxp/ui/StartActivity.java

@@ -1,21 +1,18 @@
 package xn.hxp.ui;
 
+import android.os.CountDownTimer;
 import android.text.TextUtils;
 import android.view.View;
 
-import androidx.annotation.NonNull;
 import androidx.viewbinding.ViewBinding;
 
 import com.blankj.utilcode.util.ActivityUtils;
 import com.blankj.utilcode.util.AppUtils;
 import com.blankj.utilcode.util.GsonUtils;
-import com.blankj.utilcode.util.LogUtils;
 import com.blankj.utilcode.util.NetworkUtils;
 import com.blankj.utilcode.util.ThreadUtils;
-import com.hjq.permissions.OnPermissionCallback;
 import com.hjq.permissions.Permission;
 import com.hjq.permissions.XXPermissions;
-import com.kongzue.dialogx.dialogs.MessageDialog;
 import com.kongzue.dialogx.dialogs.PopTip;
 import com.rc.core.ui.activity.BaseActivity;
 import com.rc.httpcore.HttpConfig;
@@ -24,7 +21,6 @@ import com.rc.httpcore.client.HttpTool;
 
 import org.json.JSONObject;
 
-import java.util.List;
 import java.util.concurrent.TimeUnit;
 
 import okhttp3.HttpUrl;
@@ -38,7 +34,7 @@ import xn.hxp.utils.Tool;
 public class StartActivity extends BaseActivity {
     private ActivityStartBinding binding;
     private ThreadUtils.SimpleTask<LabInfo> checkTask;
-
+    private CountDownTimer requestPermissionCdTimer;
     private int reTry = 0;
 
     @Override
@@ -67,45 +63,38 @@ public class StartActivity extends BaseActivity {
                 return true;
             }
         });
-        requestPermission();
-    }
-
-    private void requestPermission() {
-        XXPermissions.with(this).permission(Permission.CAMERA,
-                Permission.READ_EXTERNAL_STORAGE,
-                Permission.WRITE_EXTERNAL_STORAGE,
-                Permission.READ_PHONE_STATE,
-                Permission.SYSTEM_ALERT_WINDOW,
-                Permission.RECORD_AUDIO).request(new OnPermissionCallback() {
+        requestPermissionCdTimer = new CountDownTimer(1000, 1000) {
             @Override
-            public void onGranted(@NonNull List<String> permissions, boolean allGranted) {
-                if (allGranted) {
-                    LogUtils.d("设备号", Tool.INSTANCE.getSerialNumber());
-                    initView();
-                } else {
-                    MessageDialog.show("提示", "您必须同意所有权限才可以继续使用", "确定").setCancelable(false).setOkButtonClickListener((dialog, v) -> {
-                        requestPermission();
-                        return false;
-                    });
-                }
+            public void onTick(long millisUntilFinished) {
+
             }
 
             @Override
-            public void onDenied(@NonNull List<String> permissions, boolean doNotAskAgain) {
-                OnPermissionCallback.super.onDenied(permissions, doNotAskAgain);
-                if (doNotAskAgain) {
-                    MessageDialog.show("提示", "您必须同意所有权限才可以继续使用", "确定").setCancelable(false).setOkButtonClickListener((dialog, v) -> {
-                        XXPermissions.startPermissionActivity(StartActivity.this, permissions);
-                        return false;
-                    });
-                } else {
-                    MessageDialog.show("提示", "您必须同意所有权限才可以继续使用", "确定").setCancelable(false).setOkButtonClickListener((dialog, v) -> {
-                        requestPermission();
-                        return false;
-                    });
-                }
+            public void onFinish() {
+                requestPermission();
             }
-        });
+        };
+        requestPermissionCdTimer.start();
+    }
+
+    private void requestPermission() {
+        if (!XXPermissions.isGranted(this, Permission.READ_EXTERNAL_STORAGE)
+                || !XXPermissions.isGranted(this, Permission.WRITE_EXTERNAL_STORAGE)
+                || !XXPermissions.isGranted(this, Permission.READ_PHONE_STATE)
+                || !XXPermissions.isGranted(this, Permission.RECORD_AUDIO)
+                || !XXPermissions.isGranted(this, Permission.SYSTEM_ALERT_WINDOW)
+        ) {
+            Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.READ_EXTERNAL_STORAGE");
+            Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.WRITE_EXTERNAL_STORAGE");
+            Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.READ_PHONE_STATE");
+            Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.RECORD_AUDIO");
+            Tool.INSTANCE.cmd("pm grant " + AppUtils.getAppPackageName() + " android.permission.SYSTEM_ALERT_WINDOW");
+            requestPermissionCdTimer.start();
+        } else {
+            requestPermissionCdTimer.cancel();
+            initView();
+        }
+
     }
 
     private void initView() {

+ 15 - 14
app/src/main/java/xn/hxp/ui/plan/already/AlreadyActivity.java

@@ -80,7 +80,6 @@ public class AlreadyActivity extends BaseActivity {
 
     private ActivityResultLauncher<Intent> intentActivityResultLauncher;
 
-
     @Override
     protected ViewBinding setViewBinding() {
         return binding = ActivityAlreadyBinding.inflate(getLayoutInflater());
@@ -134,7 +133,7 @@ public class AlreadyActivity extends BaseActivity {
                                     @Override
                                     public void onSuccess(Object result) {
                                         dismissLoading();
-                                        getHxpStockWait();
+                                        getHxpStockWait(false);
                                     }
                                 });
                             }
@@ -169,7 +168,6 @@ public class AlreadyActivity extends BaseActivity {
         binding.typeRG.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
             @Override
             public void onCheckedChanged(RadioGroup group, int checkedId) {
-                page = 1;
                 // 与我相关
                 if (checkedId == binding.relatedRB.getId()) {
                     binding.otherRB.setText("其它");
@@ -180,7 +178,7 @@ public class AlreadyActivity extends BaseActivity {
                     binding.relatedRB.setText("与我相关");
                     type = 1;
                 }
-                getHxpStockWait();
+                getHxpStockWait(true);
             }
         });
         // 根据申领单号查询
@@ -194,14 +192,14 @@ public class AlreadyActivity extends BaseActivity {
                         applyOrder = applyArray[which];
                         binding.applicantCodeSearchTV.setText(applyOrder);
                         binding.applicantCodeSearchTV.setSelected(true);
-                        getHxpStockWait();
+                        getHxpStockWait(true);
                     });
                     builder.setNeutralButton("清空", new DialogInterface.OnClickListener() {
                         @Override
                         public void onClick(DialogInterface dialog, int which) {
                             applyOrder = "";
                             binding.applicantCodeSearchTV.setText("申领单号");
-                            getHxpStockWait();
+                            getHxpStockWait(true);
                         }
                     });
                     builder.show();
@@ -226,7 +224,7 @@ public class AlreadyActivity extends BaseActivity {
                     public void onClick(DialogInterface dialog, int which) {
                         applyUserName = "";
                         binding.applicantSearchTV.setText("申领人");
-                        getHxpStockWait();
+                        getHxpStockWait(true);
                     }
                 });
                 builder.setPositiveButton("确定", null);
@@ -249,7 +247,7 @@ public class AlreadyActivity extends BaseActivity {
                         } else {
                             applyUserName = input;
                             binding.applicantSearchTV.setText(applyUserName);
-                            getHxpStockWait();
+                            getHxpStockWait(true);
                             dialog.dismiss();
                         }
                     }
@@ -277,7 +275,7 @@ public class AlreadyActivity extends BaseActivity {
                     public void onClick(DialogInterface dialog, int which) {
                         topicUserName = "";
                         binding.belongSearchTV.setText("归属人");
-                        getHxpStockWait();
+                        getHxpStockWait(true);
                     }
                 });
                 AlertDialog dialog = builder.create();
@@ -293,7 +291,7 @@ public class AlreadyActivity extends BaseActivity {
                         } else {
                             topicUserName = input;
                             binding.belongSearchTV.setText(topicUserName);
-                            getHxpStockWait();
+                            getHxpStockWait(true);
                             dialog.dismiss();
                         }
                     }
@@ -413,7 +411,7 @@ public class AlreadyActivity extends BaseActivity {
                     return;
                 }
                 page = last;
-                getHxpStockWait();
+                getHxpStockWait(false);
             }
         });
         // 下一页
@@ -426,7 +424,7 @@ public class AlreadyActivity extends BaseActivity {
                     return;
                 }
                 page = next;
-                getHxpStockWait();
+                getHxpStockWait(false);
             }
         });
 
@@ -446,7 +444,7 @@ public class AlreadyActivity extends BaseActivity {
             String roomNum = ChemicalApp.subRoom;
             roomNum = TextUtils.isEmpty(roomNum) ? "" : roomNum;
             binding.deptName.setText(subName + "-" + roomNum);
-            getHxpStockWait();
+            getHxpStockWait(true);
             getHxpCabinetList(ChemicalApp.subjectId);
             getApplyList();
         } catch (Exception e) {
@@ -597,7 +595,10 @@ public class AlreadyActivity extends BaseActivity {
     /**
      * 获取已申领未入库列表
      */
-    private void getHxpStockWait() {
+    private void getHxpStockWait(boolean reSet) {
+        if (reSet) {
+            page = 1;
+        }
         showLoading("加载中...");
         for (int i = 0; i < hxpChemicalVoList.size(); i++) {
             HxpChemicalVo hxpChemicalVo = hxpChemicalVoList.get(i);

+ 43 - 0
app/src/main/java/xn/hxp/ui/plan/change/ChangeCabinetActivity.java

@@ -2,14 +2,26 @@ package xn.hxp.ui.plan.change;
 
 import android.content.Intent;
 import android.os.Bundle;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
 
 import androidx.viewbinding.ViewBinding;
 import androidx.viewpager2.widget.ViewPager2;
 
+import com.blankj.utilcode.util.LogUtils;
+import com.blankj.utilcode.util.TimeUtils;
+import com.bumptech.glide.Glide;
 import com.rc.core.ui.activity.BaseActivity;
+import com.rc.httpcore.HttpConfig;
+import com.rc.httpcore.client.HttpTool;
 
+import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.List;
+import java.util.Locale;
 
+import xn.hxp.app.ChemicalApp;
 import xn.hxp.databinding.ActivityChangeCabinetBinding;
 import xn.hxp.ui.plan.FragmentCallBack;
 import xn.hxp.ui.plan.room.RoomTool;
@@ -53,6 +65,37 @@ public class ChangeCabinetActivity extends BaseActivity {
             setResult(RESULT_OK, intent);
             finish();
         });
+
+        try {
+            // 日期
+            binding.nowTime.setText(TimeUtils.getNowString(new SimpleDateFormat("MM月dd日 EEEE ", Locale.getDefault())));
+            // 用户
+            Glide.with(this).load(HttpConfig.Companion.getAPI_BASE_IMG_URL() + ChemicalApp.userData.getAvatar()).into(binding.imageName);
+            String userName = ChemicalApp.userData.getUserName();
+            binding.tvName.setText(TextUtils.isEmpty(userName) ? "" : userName);
+            // 实验室logo
+            Glide.with(this).load(HttpConfig.Companion.getAPI_BASE_IMG_URL() + ChemicalApp.confs.getCircularLogo()).into(binding.image);
+            // 实验室名称
+            String subName = ChemicalApp.subjectName;
+            subName = TextUtils.isEmpty(subName) ? "" : subName;
+            // 房间号
+            String roomNum = ChemicalApp.subRoom;
+            roomNum = TextUtils.isEmpty(roomNum) ? "" : roomNum;
+            binding.deptName.setText(subName + "-" + roomNum);
+        } catch (Exception e) {
+            LogUtils.e(Log.getStackTraceString(e));
+        }
+        // 退出
+        binding.tvOutLogin.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                try {
+                    HttpTool.logout();
+                } catch (IOException e) {
+                    LogUtils.e(Log.getStackTraceString(e));
+                }
+            }
+        });
     }
 
     FragmentCallBack fragmentCallBack = new FragmentCallBack() {

+ 1 - 1
app/src/main/java/xn/hxp/utils/Tool.java

@@ -69,7 +69,7 @@ public enum Tool {
     }
 
     public String getSerialNumber() {
-        String mac = lztek.getEthMac().toLowerCase(Locale.getDefault());
+        String mac = lztek.getEthMac().toUpperCase(Locale.getDefault());
         return mac.replace(":", "");
     }