feat(floaty): wait for floating permission granted when creating a window
This commit is contained in:
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.stardust.autojs.util.FloatingPermission;
|
||||
import com.stardust.enhancedfloaty.FloatyService;
|
||||
import com.stardust.enhancedfloaty.FloatyWindow;
|
||||
import com.stardust.enhancedfloaty.util.FloatingWindowPermissionUtil;
|
||||
@@ -16,6 +17,8 @@ import java.lang.ref.WeakReference;
|
||||
|
||||
import ezy.assist.compat.SettingsCompat;
|
||||
|
||||
import static com.stardust.autojs.util.FloatingPermission.manageDrawOverlays;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/9/30.
|
||||
*/
|
||||
@@ -26,11 +29,7 @@ public class FloatyWindowManger {
|
||||
|
||||
public static void addWindow(Context context, FloatyWindow window) {
|
||||
context.startService(new Intent(context, FloatyService.class));
|
||||
if (!SettingsCompat.canDrawOverlays(context)) {
|
||||
Toast.makeText(context, R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show();
|
||||
manageDrawOverlays(context);
|
||||
return;
|
||||
}
|
||||
FloatingPermission.ensurePermissionGranted(context);
|
||||
try {
|
||||
FloatyService.addWindow(window);
|
||||
// SecurityException: https://github.com/hyb1996-guest/AutoJsIssueReport/issues/4781
|
||||
@@ -43,14 +42,6 @@ public class FloatyWindowManger {
|
||||
}
|
||||
|
||||
|
||||
public static void manageDrawOverlays(Context context) {
|
||||
try {
|
||||
SettingsCompat.manageDrawOverlays(context);
|
||||
} catch (Exception ex) {
|
||||
FloatingWindowPermissionUtil.goToAppDetailSettings(context, context.getPackageName());
|
||||
}
|
||||
}
|
||||
|
||||
public static void closeWindow(FloatyWindow window) {
|
||||
window.close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user