0
0
Переглянути джерело

Merge branch 'master' of lhm/ich-android into master

李慧明 3 роки тому
батько
коміт
2abfa5d419

+ 17 - 4
app/src/main/AndroidManifest.xml

@@ -1,7 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    package="com.emato.ich" >
+    package="com.emato.ich"
+    android:sharedUserId="android.uid.system" >
 
 <!--    android:sharedUserId="android.uid.system"-->
     <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
@@ -15,11 +16,15 @@
     <!-- 自动更新需要的权限 -->
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <uses-permission android:name="android.permission.INTERNET"/>
-    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><!-- android10+ 不能用 -->
     <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
-<!--    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />-->
-<!--    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />-->
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
+    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
+    <!--应用卸载权限-->
+    <uses-permission android:name="permission.REQUEST_INSTALL_PACKAGES" />
+    <uses-permission android:name="permission.REQUEST_DELETE_PACKAGES" />
+    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
+
 
     <application
         android:name=".crash.CrashApplication"
@@ -57,6 +62,14 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </receiver>
+        <receiver
+            android:name="com.emato.ich.update.InstallResultReceiver"
+            android:enabled="true"
+            android:exported="true">
+            <intent-filter>
+                <action android:name="android.content.pm.extra.STATUS"/>
+            </intent-filter>
+        </receiver>
 <!--        <receiver android:name=".update.InstallResultReceiver">-->
 <!--            <intent-filter>-->
 <!--                <action android:name="MyAction" />-->

+ 3 - 0
app/src/main/java/com/emato/ich/fragment/ChooseCabinetFragment.java

@@ -163,6 +163,7 @@ public class ChooseCabinetFragment extends Fragment {
             MainActivity activity = (MainActivity) getActivity();
             activity.getBundleMap().put(ChooseCabinetFragment.class.getName(), bundle);
             Bundle exceptionBundle = activity.getBundleMap().get(ExceptionFragment.class.getName());
+            timer.cancel();
             if (null != exceptionBundle) {
                 NavHostFragment.findNavController(ChooseCabinetFragment.this).navigate(R.id.action_chooseCabinetFragment_to_exceptionFragment);
             } else {
@@ -226,6 +227,7 @@ public class ChooseCabinetFragment extends Fragment {
                                                 MainActivity activity = (MainActivity) getActivity();
                                                 activity.getBundleMap().put(InputInfoFragment.class.getName(), bundle);
                                                 activity.getBundleMap().remove(ExceptionFragment.class.getName());
+                                                timer.cancel();
                                                 NavHostFragment.findNavController(ChooseCabinetFragment.this)
                                                         .navigate(R.id.action_chooseCabinetFragment_to_sendInfoConfirmFragment);
                                             } catch (RuntimeException e) {
@@ -247,6 +249,7 @@ public class ChooseCabinetFragment extends Fragment {
                 }
             } else {
                 // 为空走正常投递流程
+                timer.cancel();
                 activity.getBundleMap().put(ChooseCabinetFragment.class.getName(), bundle);
                 NavHostFragment.findNavController(ChooseCabinetFragment.this)
                         .navigate(R.id.action_chooseCabinetFragment_to_inputInfoFragment, bundle);

+ 3 - 0
app/src/main/java/com/emato/ich/fragment/ExceptionFragment.java

@@ -88,6 +88,7 @@ public class ExceptionFragment extends Fragment {
             Bundle bundle = new Bundle();
             bundle.putString("exception", "change_cabinet");
             activity1.getBundleMap().put(ExceptionFragment.class.getName(), bundle);
+            timer.cancel();
             NavHostFragment.findNavController(ExceptionFragment.this).navigate(R.id.action_exceptionFragment_to_ChooseCabinetFragment);
         });
         // 门没开换柜门
@@ -106,6 +107,7 @@ public class ExceptionFragment extends Fragment {
         MainActivity finalActivity = activity;
         binding.returnBtn.setOnClickListener(view1 -> {
             Bundle bundle = finalActivity.getBundleMap().get(SendInfoConfirmFragment.class.getName());
+            timer.cancel();
             if (null != bundle) {
                 // 跳转确认投递页面
                 finalActivity.getBundleMap().remove(SendInfoConfirmFragment.class.getName());
@@ -198,6 +200,7 @@ public class ExceptionFragment extends Fragment {
                                         case CANCEL_11:
                                             // 未投递 取消投递 并清空Session
                                             LocalStorage.getInstance().cleanSession();
+                                            timer.cancel();
                                             NavHostFragment.findNavController(ExceptionFragment.this)
                                                     .navigate(R.id.actionExceptionFragment_to_mainFragment);
                                             break;

+ 6 - 3
app/src/main/java/com/emato/ich/fragment/InputInfoFragment.java

@@ -191,7 +191,7 @@ public class InputInfoFragment extends Fragment {
                                         } catch (RuntimeException e) {
                                             Log.e(TAG, "onResponse: InputInfoFragment页面获取SendInfoConfirmFragment传值错误! ", e);
                                         }
-
+                                        timer.cancel();
                                         NavHostFragment.findNavController(InputInfoFragment.this).navigate(R.id.action_inputInfoFragment_to_sendInfoConfirmFragment);
                                     } else {
                                         ICSPResponseCodeEnum.responseHint(view, responseData);
@@ -368,8 +368,11 @@ public class InputInfoFragment extends Fragment {
             }
         });
 
-        binding.returnBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(InputInfoFragment.this)
-                .navigate(R.id.action_inputInfoFragment_to_chooseCabinetFragment));
+        binding.returnBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(InputInfoFragment.this)
+                    .navigate(R.id.action_inputInfoFragment_to_chooseCabinetFragment);
+        });
     }
 
     public PreparedOrderResponseVo getData() {

+ 6 - 2
app/src/main/java/com/emato/ich/fragment/SendFragment.java

@@ -103,6 +103,7 @@ public class SendFragment extends Fragment {
                                         LocalStorage.getInstance().setSession(session);
                                         // 登录成功
                                         Snackbar.make(view1, "登录成功!", Snackbar.LENGTH_LONG).show();
+                                        timer.cancel();
                                         NavHostFragment.findNavController(SendFragment.this).navigate(R.id.action_sendFragment_to_sendMainFragment);
                                     } else {
                                         ICSPResponseCodeEnum.responseHint(view, responseData);
@@ -240,8 +241,11 @@ public class SendFragment extends Fragment {
                 });
             }
         });
-        binding.returnBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(SendFragment.this)
-        .navigate(R.id.action_sendFragment_to_mainFragment));
+        binding.returnBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(SendFragment.this)
+                    .navigate(R.id.action_sendFragment_to_mainFragment);
+        });
     }
 
     @Override

+ 5 - 2
app/src/main/java/com/emato/ich/fragment/SendInfoConfirmFragment.java

@@ -124,6 +124,7 @@ public class SendInfoConfirmFragment extends Fragment {
                             if (code.equals(ICSPResponseCodeEnum.OK.getCode())) {
                                 // TODO 确认投递成功逻辑处理
                                 Snackbar.make(view, "投递成功! ", Snackbar.LENGTH_LONG).show();
+                                timer.cancel();
                                 NavHostFragment.findNavController(SendInfoConfirmFragment.this)
                                         .navigate(R.id.action_sendInfoConfirmFragment_to_sendSuccessFragment);
                             } else {
@@ -145,7 +146,8 @@ public class SendInfoConfirmFragment extends Fragment {
         MainActivity finalActivity = activity;
         binding.exceptionBtn.setOnClickListener(view1 -> {
             Bundle bundle = new Bundle();
-            bundle.getString("exception", "exception_page");
+            timer.cancel();
+            bundle.putString("exception", "exception_page");
             finalActivity.getBundleMap().put(SendInfoConfirmFragment.class.getName(), bundle);
             NavHostFragment.findNavController(SendInfoConfirmFragment.this)
                     .navigate(R.id.action_sendInfoConfirmFragment_to_exceptionFragment);
@@ -154,8 +156,9 @@ public class SendInfoConfirmFragment extends Fragment {
         // 未投递按钮
         binding.noneSend.setOnClickListener(view1 -> {
             Bundle bundle = new Bundle();
-            bundle.getString("exception", "exception_page");
+            bundle.putString("exception", "exception_page");
             finalActivity.getBundleMap().put(SendInfoConfirmFragment.class.getName(), bundle);
+            timer.cancel();
             NavHostFragment.findNavController(SendInfoConfirmFragment.this)
                     .navigate(R.id.action_sendInfoConfirmFragment_to_exceptionFragment);
         });

+ 15 - 6
app/src/main/java/com/emato/ich/fragment/SendMainFragment.java

@@ -52,13 +52,22 @@ public class SendMainFragment extends Fragment {
             Log.e(TAG, "onViewCreated: 倒计时出现异常! ", e);
         }
         // 输入快件信息
-        binding.sendConfirmBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(SendMainFragment.this)
-                                                            .navigate(R.id.action_sendMainFragment_to_chooseCabinetFragment));
+        binding.sendConfirmBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(SendMainFragment.this)
+                    .navigate(R.id.action_sendMainFragment_to_chooseCabinetFragment);
+        });
         // 异常处理
-        binding.exceptionHandleBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(SendMainFragment.this)
-                                                            .navigate(R.id.action_sendMainFragment_to_exceptionFragment));
-        binding.returnBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(SendMainFragment.this)
-        .navigate(R.id.action_sendMainFragment_to_sendFragment));
+        binding.exceptionHandleBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(SendMainFragment.this)
+                    .navigate(R.id.action_sendMainFragment_to_exceptionFragment);
+        });
+        binding.returnBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(SendMainFragment.this)
+                    .navigate(R.id.action_sendMainFragment_to_sendFragment);
+        });
     }
 
 

+ 2 - 0
app/src/main/java/com/emato/ich/fragment/SendSuccessFragment.java

@@ -49,6 +49,7 @@ public class SendSuccessFragment extends Fragment {
 
         // 继续投递
         binding.continueSendBtn.setOnClickListener(view1 -> {
+            timer.cancel();
             NavHostFragment.findNavController(SendSuccessFragment.this)
                     .navigate(R.id.action_sendSuccessFragment_to_chooseCabinetFragment);
         });
@@ -58,6 +59,7 @@ public class SendSuccessFragment extends Fragment {
             // 清空Session
             LocalStorage.getInstance().cleanSession();
             ((MainActivity) getActivity()).getBundleMap().clear();
+            timer.cancel();
             NavHostFragment.findNavController(SendSuccessFragment.this)
                     .navigate(R.id.action_sendSuccessFragment_to_mainFragment);
         });

+ 6 - 2
app/src/main/java/com/emato/ich/fragment/TakeCodeFragment.java

@@ -201,6 +201,7 @@ public class TakeCodeFragment extends Fragment {
                                     bundle.putString("takeParcelCode", takeParcelCode);
                                     bundle.putString("takeCabinetNo", responseData.getData().getLockerName());
                                     ((MainActivity) getActivity()).getBundleMap().put(TakeCodeFragment.class.getName(), bundle);
+                                    timer.cancel();
                                     NavHostFragment.findNavController(TakeCodeFragment.this).navigate(R.id.action_takeCodeFragment_to_takeSuccessFragment);
                                 }
                             } catch (RuntimeException e) {
@@ -215,8 +216,11 @@ public class TakeCodeFragment extends Fragment {
             }
 
         });
-        binding.returnBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(TakeCodeFragment.this)
-        .navigate(R.id.action_takeCodeFragment_to_takeFragment));
+        binding.returnBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(TakeCodeFragment.this)
+                    .navigate(R.id.action_takeCodeFragment_to_takeFragment);
+        });
         binding.editTextTextPersonName6.requestFocus();
     }
 

+ 10 - 4
app/src/main/java/com/emato/ich/fragment/TakeFragment.java

@@ -89,10 +89,16 @@ public class TakeFragment extends Fragment {
         // TODO 对接微信
 
         // 跳转输入取件码
-        binding.toInputTakeCodeBtn.setOnClickListener( view1 -> NavHostFragment.findNavController(TakeFragment.this)
-                .navigate(R.id.action_takeFragment_to_takeCodeFragment));
-        binding.returnBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(TakeFragment.this)
-                .navigate(R.id.action_takeFragment_to_mainFragment));
+        binding.toInputTakeCodeBtn.setOnClickListener( view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(TakeFragment.this)
+                    .navigate(R.id.action_takeFragment_to_takeCodeFragment);
+        });
+        binding.returnBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(TakeFragment.this)
+                    .navigate(R.id.action_takeFragment_to_mainFragment);
+        });
     }
 
 

+ 10 - 4
app/src/main/java/com/emato/ich/fragment/TakeSuccessFragment.java

@@ -66,11 +66,17 @@ public class TakeSuccessFragment extends Fragment {
             Log.e(TAG, "onViewCreated: 倒计时出现异常! ", e);
         }
 
-        binding.continueTakeBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(TakeSuccessFragment.this)
-        .navigate(R.id.action_takeSuccessFragment_to_takeCodeFragment));
+        binding.continueTakeBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(TakeSuccessFragment.this)
+                    .navigate(R.id.action_takeSuccessFragment_to_takeCodeFragment);
+        });
 
-        binding.returnMainBtn.setOnClickListener(view1 -> NavHostFragment.findNavController(TakeSuccessFragment.this)
-            .navigate(R.id.action_takeSuccessFragment_to_mainFragment));
+        binding.returnMainBtn.setOnClickListener(view1 -> {
+            timer.cancel();
+            NavHostFragment.findNavController(TakeSuccessFragment.this)
+                    .navigate(R.id.action_takeSuccessFragment_to_mainFragment);
+        });
 
         try {
             MainActivity activity = (MainActivity) getActivity();

+ 1 - 1
app/src/main/java/com/emato/ich/update/APKUpdateDownload.java

@@ -55,7 +55,7 @@ public class APKUpdateDownload {
                     @Override
                     public void onInstallSuccess() {
                         // TODO 重启应用 重启失败? 一直重启?
-//                        PackageManagerCompat.restartApp(context);
+                        PackageManagerCompat.restartApp(context);
                     }
                 });
             }

+ 1 - 1
app/src/main/java/com/emato/ich/update/InstallResultReceiver.java

@@ -16,7 +16,7 @@ public class InstallResultReceiver extends BroadcastReceiver {
             final int status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS,PackageInstaller.STATUS_FAILURE);
             if (status == PackageInstaller.STATUS_SUCCESS) {
                 // TODO 安装成功 启动应用
-//                PackageManagerCompat.restartApp(context);
+                PackageManagerCompat.restartApp(context);
             } else {
                 // 失败
                 Log.e(TAG, "onReceive: 自动安装失败! ");

+ 14 - 14
app/src/main/java/com/emato/ich/update/PackageManagerCompat.java

@@ -148,18 +148,18 @@ public class PackageManagerCompat {
      * 重启
      * @param context   应用上下文
      */
-//    public static void restartApp(Context context) {
-//        Log.i(TAG, "restartApp: 应用程序重启中! 日期=====>" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
-//        Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
-//        PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
-//        AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
-//
-//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
-//            mgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
-//
-//        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
-//            mgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
-//        }
-//        Log.i(TAG, "restartApp: 应用程序重启完成! 日期=====>" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
-//    }
+    public static void restartApp(Context context) {
+        Log.i(TAG, "restartApp: 应用程序重启中! 日期=====>" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        Intent intent = context.getPackageManager().getLaunchIntentForPackage(context.getPackageName());
+        PendingIntent restartIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);
+        AlarmManager mgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {// 6.0及以上
+            mgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
+
+        } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {// 4.4及以上
+            mgr.setExact(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, restartIntent);
+        }
+        Log.i(TAG, "restartApp: 应用程序重启完成! 日期=====>" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+    }
 }