|
|
@@ -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;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|