x1ongzhu 6 лет назад
Родитель
Сommit
0c47bc54b4

+ 3 - 5
lib/pages/RoomInfo.dart

@@ -1,8 +1,6 @@
 import 'dart:async';
 import 'dart:ui';
-import 'package:flutter/cupertino.dart' as prefix0;
 import 'package:flutter/material.dart';
-import 'package:flutter/material.dart' as prefix1;
 import 'package:flutter/painting.dart';
 import 'package:flutter_screenutil/flutter_screenutil.dart';
 import 'package:url_launcher/url_launcher.dart';
@@ -11,7 +9,7 @@ import 'package:flutter_redux/flutter_redux.dart';
 import 'package:flutter/cupertino.dart';
 import 'package:wanna_battle/model/HouseLevel.dart';
 import '../styles/colors.dart';
-import '../plugins/ScreenStramPlugin.dart';
+import 'package:screen_stream_plugin/screen_stream_plugin.dart';
 import '../net/HttpManager.dart';
 import '../net/Result.dart';
 import '../redux/AppState.dart';
@@ -140,7 +138,7 @@ class RoomInfoState extends State<RoomInfo> with SingleTickerProviderStateMixin
     Map<String, dynamic> data = {'id': playerInfo.id};
     bool success = true;
     if (result) {
-      success = await ScreenStreamPlugin.start(playerInfo.id.toString());
+      success = await ScreenStreamPlugin.start(playerInfo.id.toString(), dialogMessage: '你是否已杀戮${playerInfo.needkill}人?');
       if (success) {
         data['beginTime'] = DateTime.now().millisecondsSinceEpoch;
         data['statusFlag'] = 2;
@@ -859,7 +857,7 @@ class RoomInfoState extends State<RoomInfo> with SingleTickerProviderStateMixin
                                                         playerInfo.killNumber < playerInfo.needkill
                                                     ? (playerInfo.statusFlag == 6 ? '很遗憾您本次未参赛' : '很遗憾您本次任务失败,下次加油!')
                                                     : (playerInfo.houseRank < 4 ? '恭喜您,您获得了第${playerInfo.houseRank}名!' : '很遗憾您未能进入前三名,下次加油!'),
-                                                style: prefix0.TextStyle(
+                                                style: TextStyle(
                                                   color: Color(0xFFD4504B),
                                                   fontSize: 15,
                                                 ),

+ 0 - 2
screen_stream_plugin/android/build.gradle

@@ -41,7 +41,5 @@ dependencies {
     implementation group: 'org.bytedeco', name: 'javacv', version: '1.4.4'
     implementation group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '4.0.1-1.4.4', classifier: 'android-arm'
     implementation group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '4.1-1.4.4', classifier: 'android-arm'
-    implementation group: 'org.bytedeco.javacpp-presets', name: 'tesseract', version: '4.0.0-1.4.4', classifier: 'android-arm'
-    implementation group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.77.0-1.4.4', classifier: 'android-arm'
     implementation "net.gotev:uploadservice:3.5.2"
 }

+ 10 - 5
screen_stream_plugin/android/src/main/java/com/izouma/screen_stream_plugin/ScreenStreamPlugin.java

@@ -20,6 +20,7 @@ import android.net.Uri;
 import android.os.Build;
 import android.os.IBinder;
 import android.provider.Settings;
+import android.text.TextUtils;
 import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -63,6 +64,8 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
 
     private VideoProcessService.VideoProcessBinder videoProcessBinder;
 
+    private String dialogMessage;
+
     public static void registerWith(PluginRegistry.Registrar registrar) {
         final MethodChannel channel = new MethodChannel(registrar.messenger(), "screen_stream");
         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.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.x = layoutParams.width / 2;
-        layoutParams.y = layoutParams.height / 2;
-
-        // showFloatWindow();
+        layoutParams.x = 500;
+        layoutParams.y = 0;
+        showFloatWindow();
     }
 
     @Override
@@ -112,6 +114,9 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
             playerInfoId = Integer.parseInt(Objects.requireNonNull(methodCall.argument("playerInfoId")));
             mediaProjectionManager = (MediaProjectionManager) registrar.activeContext().getSystemService(MEDIA_PROJECTION_SERVICE);
             registrar.activity().startActivityForResult(mediaProjectionManager.createScreenCaptureIntent(), CAPTURE_PERMISSION_REQUEST_CODE);
+            if (methodCall.argument("dialogMessage") != null) {
+                dialogMessage = methodCall.argument("dialogMessage");
+            }
         } else if ("stop".equals(methodCall.method)) {
             stop();
             result.success("success");
@@ -305,7 +310,7 @@ public class ScreenStreamPlugin implements MethodChannel.MethodCallHandler, Plug
             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);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
             params.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;

+ 2 - 2
screen_stream_plugin/lib/screen_stream_plugin.dart

@@ -5,9 +5,9 @@ import 'package:flutter/services.dart';
 class ScreenStreamPlugin {
   static const _channel = MethodChannel('screen_stream');
 
-  static Future<bool> start(String playerInfoId) async {
+  static Future<bool> start(String playerInfoId, {String dialogMessage}) async {
     try {
-      await _channel.invokeMethod('start', {'playerInfoId': playerInfoId});
+      await _channel.invokeMethod('start', {'playerInfoId': playerInfoId, 'dialogMessage': dialogMessage});
       return true;
     } catch (e) {
       return false;