|
@@ -20,6 +20,7 @@ import android.net.Uri;
|
|
|
import android.os.Build;
|
|
import android.os.Build;
|
|
|
import android.os.IBinder;
|
|
import android.os.IBinder;
|
|
|
import android.provider.Settings;
|
|
import android.provider.Settings;
|
|
|
|
|
+import android.text.TextUtils;
|
|
|
import android.util.TypedValue;
|
|
import android.util.TypedValue;
|
|
|
import android.view.Gravity;
|
|
import android.view.Gravity;
|
|
|
import android.view.LayoutInflater;
|
|
import android.view.LayoutInflater;
|
|
@@ -63,6 +64,8 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
|
|
|
|
|
|
|
|
private VideoProcessService.VideoProcessBinder videoProcessBinder;
|
|
private VideoProcessService.VideoProcessBinder videoProcessBinder;
|
|
|
|
|
|
|
|
|
|
+ private String dialogMessage;
|
|
|
|
|
+
|
|
|
public static void registerWith(PluginRegistry.Registrar registrar) {
|
|
public static void registerWith(PluginRegistry.Registrar registrar) {
|
|
|
final MethodChannel channel = new MethodChannel(registrar.messenger(), "screen_stream");
|
|
final MethodChannel channel = new MethodChannel(registrar.messenger(), "screen_stream");
|
|
|
MethodChannel.MethodCallHandler methodCallHandler = new ScreenStreamPlugin(registrar);
|
|
MethodChannel.MethodCallHandler methodCallHandler = new ScreenStreamPlugin(registrar);
|
|
@@ -99,10 +102,9 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
|
|
|
layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
|
layoutParams.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
|
|
|
layoutParams.width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, registrar.activity().getResources().getDisplayMetrics());
|
|
layoutParams.width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 42, registrar.activity().getResources().getDisplayMetrics());
|
|
|
layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, registrar.activity().getResources().getDisplayMetrics());
|
|
layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 24, registrar.activity().getResources().getDisplayMetrics());
|
|
|
- layoutParams.x = layoutParams.width / 2;
|
|
|
|
|
- layoutParams.y = layoutParams.height / 2;
|
|
|
|
|
-
|
|
|
|
|
- // showFloatWindow();
|
|
|
|
|
|
|
+ layoutParams.x = 500;
|
|
|
|
|
+ layoutParams.y = 0;
|
|
|
|
|
+ showFloatWindow();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -112,6 +114,9 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
|
|
|
playerInfoId = Integer.parseInt(Objects.requireNonNull(methodCall.argument("playerInfoId")));
|
|
playerInfoId = Integer.parseInt(Objects.requireNonNull(methodCall.argument("playerInfoId")));
|
|
|
mediaProjectionManager = (MediaProjectionManager) registrar.activeContext().getSystemService(MEDIA_PROJECTION_SERVICE);
|
|
mediaProjectionManager = (MediaProjectionManager) registrar.activeContext().getSystemService(MEDIA_PROJECTION_SERVICE);
|
|
|
registrar.activity().startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE);
|
|
registrar.activity().startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE);
|
|
|
|
|
+ if (methodCall.argument("dialogMessage") != null) {
|
|
|
|
|
+ dialogMessage = methodCall.argument("dialogMessage");
|
|
|
|
|
+ }
|
|
|
} else if ("stop".equals(methodCall.method)) {
|
|
} else if ("stop".equals(methodCall.method)) {
|
|
|
stop();
|
|
stop();
|
|
|
result.success("success");
|
|
result.success("success");
|
|
@@ -305,7 +310,7 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
|
|
|
registrar.activity().startActivity(intent);
|
|
registrar.activity().startActivity(intent);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
- ((TextView) dialogOverlay.findViewById(R.id.tv_msg)).setText("是否立即返回" + getApplicationName(registrar.context()) + "?");
|
|
|
|
|
|
|
+ ((TextView) dialogOverlay.findViewById(R.id.tv_msg)).setText(TextUtils.isEmpty(dialogMessage) ? "是否立即返回" + getApplicationName(registrar.context()) + "?" : dialogMessage);
|
|
|
WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
|
|
WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT);
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
|
params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
|
|
params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
|