⚡ Replace pasteboard and drop zone deps
This commit is contained in:
		@@ -3,19 +3,19 @@ import 'dart:io';
 | 
				
			|||||||
import 'dart:math' as math;
 | 
					import 'dart:math' as math;
 | 
				
			||||||
import 'dart:typed_data';
 | 
					import 'dart:typed_data';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'package:desktop_drop/desktop_drop.dart';
 | 
				
			||||||
import 'package:file_picker/file_picker.dart';
 | 
					import 'package:file_picker/file_picker.dart';
 | 
				
			||||||
import 'package:flutter/material.dart';
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
import 'package:flutter_animate/flutter_animate.dart';
 | 
					import 'package:flutter_animate/flutter_animate.dart';
 | 
				
			||||||
import 'package:get/get.dart';
 | 
					import 'package:get/get.dart';
 | 
				
			||||||
import 'package:image_picker/image_picker.dart';
 | 
					import 'package:image_picker/image_picker.dart';
 | 
				
			||||||
 | 
					import 'package:pasteboard/pasteboard.dart';
 | 
				
			||||||
import 'package:path/path.dart' show basename;
 | 
					import 'package:path/path.dart' show basename;
 | 
				
			||||||
import 'package:solian/exts.dart';
 | 
					import 'package:solian/exts.dart';
 | 
				
			||||||
import 'package:solian/models/attachment.dart';
 | 
					import 'package:solian/models/attachment.dart';
 | 
				
			||||||
import 'package:solian/platform.dart';
 | 
					import 'package:solian/platform.dart';
 | 
				
			||||||
import 'package:solian/providers/auth.dart';
 | 
					import 'package:solian/providers/auth.dart';
 | 
				
			||||||
import 'package:solian/providers/content/attachment.dart';
 | 
					import 'package:solian/providers/content/attachment.dart';
 | 
				
			||||||
import 'package:super_clipboard/super_clipboard.dart';
 | 
					 | 
				
			||||||
import 'package:super_drag_and_drop/super_drag_and_drop.dart';
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
class AttachmentPublishPopup extends StatefulWidget {
 | 
					class AttachmentPublishPopup extends StatefulWidget {
 | 
				
			||||||
  final String usage;
 | 
					  final String usage;
 | 
				
			||||||
@@ -155,51 +155,16 @@ class _AttachmentPublishPopupState extends State<AttachmentPublishPopup> {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void pasteFileToUpload() async {
 | 
					  void pasteFileToUpload() async {
 | 
				
			||||||
    final clipboard = SystemClipboard.instance;
 | 
					    final data = await Pasteboard.image;
 | 
				
			||||||
    if (clipboard == null) return;
 | 
					    if(data == null) return;
 | 
				
			||||||
    final reader = await clipboard.read();
 | 
					 | 
				
			||||||
    handleNativeReader(reader);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void handlePasteEvent(ClipboardReadEvent event) async {
 | 
					    setState(() => _isBusy = true);
 | 
				
			||||||
    final reader = await event.getClipboardReader();
 | 
					 | 
				
			||||||
    handleNativeReader(reader);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void handleNativeReader(DataReader reader) async {
 | 
					    final hash = await calculateBytesSha256(data);
 | 
				
			||||||
    var read = false;
 | 
					    final ratio = await calculateDataAspectRatio(data);
 | 
				
			||||||
    for (final format in Formats.standardFormats
 | 
					    uploadAttachment(data, 'pasted image', hash, ratio: ratio);
 | 
				
			||||||
        .whereType<FileFormat>()
 | 
					 | 
				
			||||||
        .where((x) => ![Formats.tiff].contains(x))) {
 | 
					 | 
				
			||||||
      if (read) break;
 | 
					 | 
				
			||||||
      if (reader.canProvide(format)) {
 | 
					 | 
				
			||||||
        reader.getFile(format, (file) async {
 | 
					 | 
				
			||||||
          if (read) return;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
          final data = await file.readAll();
 | 
					    setState(() => _isBusy = false);
 | 
				
			||||||
          read = true;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          // Calculate ratio if available
 | 
					 | 
				
			||||||
          double? ratio;
 | 
					 | 
				
			||||||
          if ([
 | 
					 | 
				
			||||||
            Formats.png,
 | 
					 | 
				
			||||||
            Formats.jpeg,
 | 
					 | 
				
			||||||
            Formats.gif,
 | 
					 | 
				
			||||||
            Formats.ico,
 | 
					 | 
				
			||||||
            Formats.webp
 | 
					 | 
				
			||||||
          ].contains(format)) {
 | 
					 | 
				
			||||||
            ratio = await calculateDataAspectRatio(data);
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          await uploadAttachment(
 | 
					 | 
				
			||||||
            data,
 | 
					 | 
				
			||||||
            file.fileName ?? 'unknown',
 | 
					 | 
				
			||||||
            await calculateBytesSha256(data),
 | 
					 | 
				
			||||||
            ratio: ratio,
 | 
					 | 
				
			||||||
          );
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Future<void> uploadAttachment(Uint8List data, String path, String hash,
 | 
					  Future<void> uploadAttachment(Uint8List data, String path, String hash,
 | 
				
			||||||
@@ -276,13 +241,11 @@ class _AttachmentPublishPopupState extends State<AttachmentPublishPopup> {
 | 
				
			|||||||
  void initState() {
 | 
					  void initState() {
 | 
				
			||||||
    super.initState();
 | 
					    super.initState();
 | 
				
			||||||
    revertMetadataList();
 | 
					    revertMetadataList();
 | 
				
			||||||
    ClipboardEvents.instance?.registerPasteEventListener(handlePasteEvent);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  void dispose() {
 | 
					  void dispose() {
 | 
				
			||||||
    super.dispose();
 | 
					    super.dispose();
 | 
				
			||||||
    ClipboardEvents.instance?.unregisterPasteEventListener(handlePasteEvent);
 | 
					 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
@@ -292,21 +255,19 @@ class _AttachmentPublishPopupState extends State<AttachmentPublishPopup> {
 | 
				
			|||||||
    return SafeArea(
 | 
					    return SafeArea(
 | 
				
			||||||
      child: SizedBox(
 | 
					      child: SizedBox(
 | 
				
			||||||
        height: MediaQuery.of(context).size.height * 0.85,
 | 
					        height: MediaQuery.of(context).size.height * 0.85,
 | 
				
			||||||
        child: DropRegion(
 | 
					        child: DropTarget(
 | 
				
			||||||
          formats: Formats.standardFormats,
 | 
					          onDragDone: (detail) async {
 | 
				
			||||||
          hitTestBehavior: HitTestBehavior.opaque,
 | 
					            setState(() => _isBusy = true);
 | 
				
			||||||
          onDropOver: (event) {
 | 
					            for (final file in detail.files) {
 | 
				
			||||||
            if (event.session.allowedOperations.contains(DropOperation.copy)) {
 | 
					              final data = await file.readAsBytes();
 | 
				
			||||||
              return DropOperation.copy;
 | 
					              final hash = await calculateBytesSha256(data);
 | 
				
			||||||
            } else {
 | 
					              double? ratio;
 | 
				
			||||||
              return DropOperation.none;
 | 
					              if (file.mimeType?.split('/').firstOrNull == 'image') {
 | 
				
			||||||
 | 
					                ratio = await calculateDataAspectRatio(data);
 | 
				
			||||||
              }
 | 
					              }
 | 
				
			||||||
          },
 | 
					              uploadAttachment(data, file.path, hash, ratio: ratio);
 | 
				
			||||||
          onPerformDrop: (event) async {
 | 
					 | 
				
			||||||
            for (final item in event.session.items) {
 | 
					 | 
				
			||||||
              final reader = item.dataReader!;
 | 
					 | 
				
			||||||
              handleNativeReader(reader);
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            setState(() => _isBusy = false);
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
          child: Column(
 | 
					          child: Column(
 | 
				
			||||||
            crossAxisAlignment: CrossAxisAlignment.start,
 | 
					            crossAxisAlignment: CrossAxisAlignment.start,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,18 +6,21 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "generated_plugin_registrant.h"
 | 
					#include "generated_plugin_registrant.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <desktop_drop/desktop_drop_plugin.h>
 | 
				
			||||||
#include <file_selector_linux/file_selector_plugin.h>
 | 
					#include <file_selector_linux/file_selector_plugin.h>
 | 
				
			||||||
#include <flutter_acrylic/flutter_acrylic_plugin.h>
 | 
					#include <flutter_acrylic/flutter_acrylic_plugin.h>
 | 
				
			||||||
#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
 | 
					#include <flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h>
 | 
				
			||||||
#include <flutter_webrtc/flutter_web_r_t_c_plugin.h>
 | 
					#include <flutter_webrtc/flutter_web_r_t_c_plugin.h>
 | 
				
			||||||
#include <irondash_engine_context/irondash_engine_context_plugin.h>
 | 
					 | 
				
			||||||
#include <media_kit_libs_linux/media_kit_libs_linux_plugin.h>
 | 
					#include <media_kit_libs_linux/media_kit_libs_linux_plugin.h>
 | 
				
			||||||
#include <media_kit_video/media_kit_video_plugin.h>
 | 
					#include <media_kit_video/media_kit_video_plugin.h>
 | 
				
			||||||
 | 
					#include <pasteboard/pasteboard_plugin.h>
 | 
				
			||||||
#include <sentry_flutter/sentry_flutter_plugin.h>
 | 
					#include <sentry_flutter/sentry_flutter_plugin.h>
 | 
				
			||||||
#include <super_native_extensions/super_native_extensions_plugin.h>
 | 
					 | 
				
			||||||
#include <url_launcher_linux/url_launcher_plugin.h>
 | 
					#include <url_launcher_linux/url_launcher_plugin.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void fl_register_plugins(FlPluginRegistry* registry) {
 | 
					void fl_register_plugins(FlPluginRegistry* registry) {
 | 
				
			||||||
 | 
					  g_autoptr(FlPluginRegistrar) desktop_drop_registrar =
 | 
				
			||||||
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopDropPlugin");
 | 
				
			||||||
 | 
					  desktop_drop_plugin_register_with_registrar(desktop_drop_registrar);
 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) file_selector_linux_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin");
 | 
				
			||||||
  file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
 | 
					  file_selector_plugin_register_with_registrar(file_selector_linux_registrar);
 | 
				
			||||||
@@ -30,21 +33,18 @@ void fl_register_plugins(FlPluginRegistry* registry) {
 | 
				
			|||||||
  g_autoptr(FlPluginRegistrar) flutter_webrtc_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) flutter_webrtc_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterWebRTCPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "FlutterWebRTCPlugin");
 | 
				
			||||||
  flutter_web_r_t_c_plugin_register_with_registrar(flutter_webrtc_registrar);
 | 
					  flutter_web_r_t_c_plugin_register_with_registrar(flutter_webrtc_registrar);
 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) irondash_engine_context_registrar =
 | 
					 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "IrondashEngineContextPlugin");
 | 
					 | 
				
			||||||
  irondash_engine_context_plugin_register_with_registrar(irondash_engine_context_registrar);
 | 
					 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin");
 | 
				
			||||||
  media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar);
 | 
					  media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar);
 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) media_kit_video_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) media_kit_video_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitVideoPlugin");
 | 
				
			||||||
  media_kit_video_plugin_register_with_registrar(media_kit_video_registrar);
 | 
					  media_kit_video_plugin_register_with_registrar(media_kit_video_registrar);
 | 
				
			||||||
 | 
					  g_autoptr(FlPluginRegistrar) pasteboard_registrar =
 | 
				
			||||||
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "PasteboardPlugin");
 | 
				
			||||||
 | 
					  pasteboard_plugin_register_with_registrar(pasteboard_registrar);
 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) sentry_flutter_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) sentry_flutter_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "SentryFlutterPlugin");
 | 
				
			||||||
  sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar);
 | 
					  sentry_flutter_plugin_register_with_registrar(sentry_flutter_registrar);
 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) super_native_extensions_registrar =
 | 
					 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "SuperNativeExtensionsPlugin");
 | 
					 | 
				
			||||||
  super_native_extensions_plugin_register_with_registrar(super_native_extensions_registrar);
 | 
					 | 
				
			||||||
  g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
 | 
					  g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar =
 | 
				
			||||||
      fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
 | 
					      fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin");
 | 
				
			||||||
  url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
 | 
					  url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,15 +3,15 @@
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
list(APPEND FLUTTER_PLUGIN_LIST
 | 
					list(APPEND FLUTTER_PLUGIN_LIST
 | 
				
			||||||
 | 
					  desktop_drop
 | 
				
			||||||
  file_selector_linux
 | 
					  file_selector_linux
 | 
				
			||||||
  flutter_acrylic
 | 
					  flutter_acrylic
 | 
				
			||||||
  flutter_secure_storage_linux
 | 
					  flutter_secure_storage_linux
 | 
				
			||||||
  flutter_webrtc
 | 
					  flutter_webrtc
 | 
				
			||||||
  irondash_engine_context
 | 
					 | 
				
			||||||
  media_kit_libs_linux
 | 
					  media_kit_libs_linux
 | 
				
			||||||
  media_kit_video
 | 
					  media_kit_video
 | 
				
			||||||
 | 
					  pasteboard
 | 
				
			||||||
  sentry_flutter
 | 
					  sentry_flutter
 | 
				
			||||||
  super_native_extensions
 | 
					 | 
				
			||||||
  url_launcher_linux
 | 
					  url_launcher_linux
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,6 +6,7 @@ import FlutterMacOS
 | 
				
			|||||||
import Foundation
 | 
					import Foundation
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import connectivity_plus
 | 
					import connectivity_plus
 | 
				
			||||||
 | 
					import desktop_drop
 | 
				
			||||||
import device_info_plus
 | 
					import device_info_plus
 | 
				
			||||||
import file_selector_macos
 | 
					import file_selector_macos
 | 
				
			||||||
import firebase_core
 | 
					import firebase_core
 | 
				
			||||||
@@ -13,23 +14,23 @@ import firebase_messaging
 | 
				
			|||||||
import flutter_local_notifications
 | 
					import flutter_local_notifications
 | 
				
			||||||
import flutter_secure_storage_macos
 | 
					import flutter_secure_storage_macos
 | 
				
			||||||
import flutter_webrtc
 | 
					import flutter_webrtc
 | 
				
			||||||
import irondash_engine_context
 | 
					 | 
				
			||||||
import livekit_client
 | 
					import livekit_client
 | 
				
			||||||
import macos_window_utils
 | 
					import macos_window_utils
 | 
				
			||||||
import media_kit_libs_macos_video
 | 
					import media_kit_libs_macos_video
 | 
				
			||||||
import media_kit_video
 | 
					import media_kit_video
 | 
				
			||||||
import package_info_plus
 | 
					import package_info_plus
 | 
				
			||||||
 | 
					import pasteboard
 | 
				
			||||||
import path_provider_foundation
 | 
					import path_provider_foundation
 | 
				
			||||||
import protocol_handler_macos
 | 
					import protocol_handler_macos
 | 
				
			||||||
import screen_brightness_macos
 | 
					import screen_brightness_macos
 | 
				
			||||||
import sentry_flutter
 | 
					import sentry_flutter
 | 
				
			||||||
import sqflite
 | 
					import sqflite
 | 
				
			||||||
import super_native_extensions
 | 
					 | 
				
			||||||
import url_launcher_macos
 | 
					import url_launcher_macos
 | 
				
			||||||
import wakelock_plus
 | 
					import wakelock_plus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
 | 
					func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
 | 
				
			||||||
  ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
 | 
					  ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
 | 
				
			||||||
 | 
					  DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin"))
 | 
				
			||||||
  DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
 | 
					  DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
 | 
				
			||||||
  FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
 | 
					  FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
 | 
				
			||||||
  FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
 | 
					  FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin"))
 | 
				
			||||||
@@ -37,18 +38,17 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
 | 
				
			|||||||
  FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin"))
 | 
					  FlutterLocalNotificationsPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalNotificationsPlugin"))
 | 
				
			||||||
  FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
 | 
					  FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
 | 
				
			||||||
  FlutterWebRTCPlugin.register(with: registry.registrar(forPlugin: "FlutterWebRTCPlugin"))
 | 
					  FlutterWebRTCPlugin.register(with: registry.registrar(forPlugin: "FlutterWebRTCPlugin"))
 | 
				
			||||||
  IrondashEngineContextPlugin.register(with: registry.registrar(forPlugin: "IrondashEngineContextPlugin"))
 | 
					 | 
				
			||||||
  LiveKitPlugin.register(with: registry.registrar(forPlugin: "LiveKitPlugin"))
 | 
					  LiveKitPlugin.register(with: registry.registrar(forPlugin: "LiveKitPlugin"))
 | 
				
			||||||
  MacOSWindowUtilsPlugin.register(with: registry.registrar(forPlugin: "MacOSWindowUtilsPlugin"))
 | 
					  MacOSWindowUtilsPlugin.register(with: registry.registrar(forPlugin: "MacOSWindowUtilsPlugin"))
 | 
				
			||||||
  MediaKitLibsMacosVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitLibsMacosVideoPlugin"))
 | 
					  MediaKitLibsMacosVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitLibsMacosVideoPlugin"))
 | 
				
			||||||
  MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin"))
 | 
					  MediaKitVideoPlugin.register(with: registry.registrar(forPlugin: "MediaKitVideoPlugin"))
 | 
				
			||||||
  FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
 | 
					  FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
 | 
				
			||||||
 | 
					  PasteboardPlugin.register(with: registry.registrar(forPlugin: "PasteboardPlugin"))
 | 
				
			||||||
  PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
 | 
					  PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
 | 
				
			||||||
  ProtocolHandlerMacosPlugin.register(with: registry.registrar(forPlugin: "ProtocolHandlerMacosPlugin"))
 | 
					  ProtocolHandlerMacosPlugin.register(with: registry.registrar(forPlugin: "ProtocolHandlerMacosPlugin"))
 | 
				
			||||||
  ScreenBrightnessMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenBrightnessMacosPlugin"))
 | 
					  ScreenBrightnessMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenBrightnessMacosPlugin"))
 | 
				
			||||||
  SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin"))
 | 
					  SentryFlutterPlugin.register(with: registry.registrar(forPlugin: "SentryFlutterPlugin"))
 | 
				
			||||||
  SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
 | 
					  SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
 | 
				
			||||||
  SuperNativeExtensionsPlugin.register(with: registry.registrar(forPlugin: "SuperNativeExtensionsPlugin"))
 | 
					 | 
				
			||||||
  UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
 | 
					  UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
 | 
				
			||||||
  WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
 | 
					  WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										64
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										64
									
								
								pubspec.lock
									
									
									
									
									
								
							@@ -281,6 +281,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "0.7.10"
 | 
					    version: "0.7.10"
 | 
				
			||||||
 | 
					  desktop_drop:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: desktop_drop
 | 
				
			||||||
 | 
					      sha256: d55a010fe46c8e8fcff4ea4b451a9ff84a162217bdb3b2a0aa1479776205e15d
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.4.4"
 | 
				
			||||||
  dev_build:
 | 
					  dev_build:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -800,22 +808,6 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "1.0.4"
 | 
					    version: "1.0.4"
 | 
				
			||||||
  irondash_engine_context:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: irondash_engine_context
 | 
					 | 
				
			||||||
      sha256: cd7b769db11a2b5243b037c8a9b1ecaef02e1ae27a2d909ffa78c1dad747bb10
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.5.4"
 | 
					 | 
				
			||||||
  irondash_message_channel:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: irondash_message_channel
 | 
					 | 
				
			||||||
      sha256: b4101669776509c76133b8917ab8cfc704d3ad92a8c450b92934dd8884a2f060
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.7.0"
 | 
					 | 
				
			||||||
  js:
 | 
					  js:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -1056,6 +1048,14 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "3.0.0"
 | 
					    version: "3.0.0"
 | 
				
			||||||
 | 
					  pasteboard:
 | 
				
			||||||
 | 
					    dependency: "direct main"
 | 
				
			||||||
 | 
					    description:
 | 
				
			||||||
 | 
					      name: pasteboard
 | 
				
			||||||
 | 
					      sha256: "1c8b6a8b3f1d12e55d4e9404433cda1b4abe66db6b17bc2d2fb5965772c04674"
 | 
				
			||||||
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
 | 
					    source: hosted
 | 
				
			||||||
 | 
					    version: "0.2.0"
 | 
				
			||||||
  path:
 | 
					  path:
 | 
				
			||||||
    dependency: "direct main"
 | 
					    dependency: "direct main"
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -1168,14 +1168,6 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "6.0.2"
 | 
					    version: "6.0.2"
 | 
				
			||||||
  pixel_snap:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: pixel_snap
 | 
					 | 
				
			||||||
      sha256: "677410ea37b07cd37ecb6d5e6c0d8d7615a7cf3bd92ba406fd1ac57e937d1fb0"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.1.5"
 | 
					 | 
				
			||||||
  platform:
 | 
					  platform:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
@@ -1517,30 +1509,6 @@ packages:
 | 
				
			|||||||
      url: "https://pub.dev"
 | 
					      url: "https://pub.dev"
 | 
				
			||||||
    source: hosted
 | 
					    source: hosted
 | 
				
			||||||
    version: "3.1.2"
 | 
					    version: "3.1.2"
 | 
				
			||||||
  super_clipboard:
 | 
					 | 
				
			||||||
    dependency: "direct main"
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: super_clipboard
 | 
					 | 
				
			||||||
      sha256: cdab725bac26655ebd189f4d202d694a8cbc1c21e0f0478ccd7829c71716f09b
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.8.17"
 | 
					 | 
				
			||||||
  super_drag_and_drop:
 | 
					 | 
				
			||||||
    dependency: "direct main"
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: super_drag_and_drop
 | 
					 | 
				
			||||||
      sha256: "8e00c6082646076f80b972b39d9c27b5311082ea1e8add5fa370ce11c410f7de"
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.8.17"
 | 
					 | 
				
			||||||
  super_native_extensions:
 | 
					 | 
				
			||||||
    dependency: transitive
 | 
					 | 
				
			||||||
    description:
 | 
					 | 
				
			||||||
      name: super_native_extensions
 | 
					 | 
				
			||||||
      sha256: fa55d452d34b7112453afbb9fa4d13c0527ff201630d10d86546497179030544
 | 
					 | 
				
			||||||
      url: "https://pub.dev"
 | 
					 | 
				
			||||||
    source: hosted
 | 
					 | 
				
			||||||
    version: "0.8.17"
 | 
					 | 
				
			||||||
  synchronized:
 | 
					  synchronized:
 | 
				
			||||||
    dependency: transitive
 | 
					    dependency: transitive
 | 
				
			||||||
    description:
 | 
					    description:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,13 +47,13 @@ dependencies:
 | 
				
			|||||||
  sqflite: ^2.3.3+1
 | 
					  sqflite: ^2.3.3+1
 | 
				
			||||||
  protocol_handler: ^0.2.0
 | 
					  protocol_handler: ^0.2.0
 | 
				
			||||||
  markdown: ^7.2.2
 | 
					  markdown: ^7.2.2
 | 
				
			||||||
  super_drag_and_drop: ^0.8.17
 | 
					 | 
				
			||||||
  super_clipboard: ^0.8.17
 | 
					 | 
				
			||||||
  media_kit: ^1.1.10+1
 | 
					  media_kit: ^1.1.10+1
 | 
				
			||||||
  media_kit_video: ^1.2.4
 | 
					  media_kit_video: ^1.2.4
 | 
				
			||||||
  media_kit_libs_video: ^1.0.4
 | 
					  media_kit_libs_video: ^1.0.4
 | 
				
			||||||
  textfield_tags: ^3.0.1
 | 
					  textfield_tags: ^3.0.1
 | 
				
			||||||
  mutex: ^3.1.0
 | 
					  mutex: ^3.1.0
 | 
				
			||||||
 | 
					  pasteboard: ^0.2.0
 | 
				
			||||||
 | 
					  desktop_drop: ^0.4.4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev_dependencies:
 | 
					dev_dependencies:
 | 
				
			||||||
  flutter_test:
 | 
					  flutter_test:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,25 +7,27 @@
 | 
				
			|||||||
#include "generated_plugin_registrant.h"
 | 
					#include "generated_plugin_registrant.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <connectivity_plus/connectivity_plus_windows_plugin.h>
 | 
					#include <connectivity_plus/connectivity_plus_windows_plugin.h>
 | 
				
			||||||
 | 
					#include <desktop_drop/desktop_drop_plugin.h>
 | 
				
			||||||
#include <file_selector_windows/file_selector_windows.h>
 | 
					#include <file_selector_windows/file_selector_windows.h>
 | 
				
			||||||
#include <firebase_core/firebase_core_plugin_c_api.h>
 | 
					#include <firebase_core/firebase_core_plugin_c_api.h>
 | 
				
			||||||
#include <flutter_acrylic/flutter_acrylic_plugin.h>
 | 
					#include <flutter_acrylic/flutter_acrylic_plugin.h>
 | 
				
			||||||
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
 | 
					#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
 | 
				
			||||||
#include <flutter_webrtc/flutter_web_r_t_c_plugin.h>
 | 
					#include <flutter_webrtc/flutter_web_r_t_c_plugin.h>
 | 
				
			||||||
#include <irondash_engine_context/irondash_engine_context_plugin_c_api.h>
 | 
					 | 
				
			||||||
#include <livekit_client/live_kit_plugin.h>
 | 
					#include <livekit_client/live_kit_plugin.h>
 | 
				
			||||||
#include <media_kit_libs_windows_video/media_kit_libs_windows_video_plugin_c_api.h>
 | 
					#include <media_kit_libs_windows_video/media_kit_libs_windows_video_plugin_c_api.h>
 | 
				
			||||||
#include <media_kit_video/media_kit_video_plugin_c_api.h>
 | 
					#include <media_kit_video/media_kit_video_plugin_c_api.h>
 | 
				
			||||||
 | 
					#include <pasteboard/pasteboard_plugin.h>
 | 
				
			||||||
#include <permission_handler_windows/permission_handler_windows_plugin.h>
 | 
					#include <permission_handler_windows/permission_handler_windows_plugin.h>
 | 
				
			||||||
#include <protocol_handler_windows/protocol_handler_windows_plugin_c_api.h>
 | 
					#include <protocol_handler_windows/protocol_handler_windows_plugin_c_api.h>
 | 
				
			||||||
#include <screen_brightness_windows/screen_brightness_windows_plugin.h>
 | 
					#include <screen_brightness_windows/screen_brightness_windows_plugin.h>
 | 
				
			||||||
#include <sentry_flutter/sentry_flutter_plugin.h>
 | 
					#include <sentry_flutter/sentry_flutter_plugin.h>
 | 
				
			||||||
#include <super_native_extensions/super_native_extensions_plugin_c_api.h>
 | 
					 | 
				
			||||||
#include <url_launcher_windows/url_launcher_windows.h>
 | 
					#include <url_launcher_windows/url_launcher_windows.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
					void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
				
			||||||
  ConnectivityPlusWindowsPluginRegisterWithRegistrar(
 | 
					  ConnectivityPlusWindowsPluginRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
 | 
					      registry->GetRegistrarForPlugin("ConnectivityPlusWindowsPlugin"));
 | 
				
			||||||
 | 
					  DesktopDropPluginRegisterWithRegistrar(
 | 
				
			||||||
 | 
					      registry->GetRegistrarForPlugin("DesktopDropPlugin"));
 | 
				
			||||||
  FileSelectorWindowsRegisterWithRegistrar(
 | 
					  FileSelectorWindowsRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("FileSelectorWindows"));
 | 
					      registry->GetRegistrarForPlugin("FileSelectorWindows"));
 | 
				
			||||||
  FirebaseCorePluginCApiRegisterWithRegistrar(
 | 
					  FirebaseCorePluginCApiRegisterWithRegistrar(
 | 
				
			||||||
@@ -36,14 +38,14 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
				
			|||||||
      registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
 | 
					      registry->GetRegistrarForPlugin("FlutterSecureStorageWindowsPlugin"));
 | 
				
			||||||
  FlutterWebRTCPluginRegisterWithRegistrar(
 | 
					  FlutterWebRTCPluginRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("FlutterWebRTCPlugin"));
 | 
					      registry->GetRegistrarForPlugin("FlutterWebRTCPlugin"));
 | 
				
			||||||
  IrondashEngineContextPluginCApiRegisterWithRegistrar(
 | 
					 | 
				
			||||||
      registry->GetRegistrarForPlugin("IrondashEngineContextPluginCApi"));
 | 
					 | 
				
			||||||
  LiveKitPluginRegisterWithRegistrar(
 | 
					  LiveKitPluginRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("LiveKitPlugin"));
 | 
					      registry->GetRegistrarForPlugin("LiveKitPlugin"));
 | 
				
			||||||
  MediaKitLibsWindowsVideoPluginCApiRegisterWithRegistrar(
 | 
					  MediaKitLibsWindowsVideoPluginCApiRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("MediaKitLibsWindowsVideoPluginCApi"));
 | 
					      registry->GetRegistrarForPlugin("MediaKitLibsWindowsVideoPluginCApi"));
 | 
				
			||||||
  MediaKitVideoPluginCApiRegisterWithRegistrar(
 | 
					  MediaKitVideoPluginCApiRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("MediaKitVideoPluginCApi"));
 | 
					      registry->GetRegistrarForPlugin("MediaKitVideoPluginCApi"));
 | 
				
			||||||
 | 
					  PasteboardPluginRegisterWithRegistrar(
 | 
				
			||||||
 | 
					      registry->GetRegistrarForPlugin("PasteboardPlugin"));
 | 
				
			||||||
  PermissionHandlerWindowsPluginRegisterWithRegistrar(
 | 
					  PermissionHandlerWindowsPluginRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
 | 
					      registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
 | 
				
			||||||
  ProtocolHandlerWindowsPluginCApiRegisterWithRegistrar(
 | 
					  ProtocolHandlerWindowsPluginCApiRegisterWithRegistrar(
 | 
				
			||||||
@@ -52,8 +54,6 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
 | 
				
			|||||||
      registry->GetRegistrarForPlugin("ScreenBrightnessWindowsPlugin"));
 | 
					      registry->GetRegistrarForPlugin("ScreenBrightnessWindowsPlugin"));
 | 
				
			||||||
  SentryFlutterPluginRegisterWithRegistrar(
 | 
					  SentryFlutterPluginRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("SentryFlutterPlugin"));
 | 
					      registry->GetRegistrarForPlugin("SentryFlutterPlugin"));
 | 
				
			||||||
  SuperNativeExtensionsPluginCApiRegisterWithRegistrar(
 | 
					 | 
				
			||||||
      registry->GetRegistrarForPlugin("SuperNativeExtensionsPluginCApi"));
 | 
					 | 
				
			||||||
  UrlLauncherWindowsRegisterWithRegistrar(
 | 
					  UrlLauncherWindowsRegisterWithRegistrar(
 | 
				
			||||||
      registry->GetRegistrarForPlugin("UrlLauncherWindows"));
 | 
					      registry->GetRegistrarForPlugin("UrlLauncherWindows"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,20 +4,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
list(APPEND FLUTTER_PLUGIN_LIST
 | 
					list(APPEND FLUTTER_PLUGIN_LIST
 | 
				
			||||||
  connectivity_plus
 | 
					  connectivity_plus
 | 
				
			||||||
 | 
					  desktop_drop
 | 
				
			||||||
  file_selector_windows
 | 
					  file_selector_windows
 | 
				
			||||||
  firebase_core
 | 
					  firebase_core
 | 
				
			||||||
  flutter_acrylic
 | 
					  flutter_acrylic
 | 
				
			||||||
  flutter_secure_storage_windows
 | 
					  flutter_secure_storage_windows
 | 
				
			||||||
  flutter_webrtc
 | 
					  flutter_webrtc
 | 
				
			||||||
  irondash_engine_context
 | 
					 | 
				
			||||||
  livekit_client
 | 
					  livekit_client
 | 
				
			||||||
  media_kit_libs_windows_video
 | 
					  media_kit_libs_windows_video
 | 
				
			||||||
  media_kit_video
 | 
					  media_kit_video
 | 
				
			||||||
 | 
					  pasteboard
 | 
				
			||||||
  permission_handler_windows
 | 
					  permission_handler_windows
 | 
				
			||||||
  protocol_handler_windows
 | 
					  protocol_handler_windows
 | 
				
			||||||
  screen_brightness_windows
 | 
					  screen_brightness_windows
 | 
				
			||||||
  sentry_flutter
 | 
					  sentry_flutter
 | 
				
			||||||
  super_native_extensions
 | 
					 | 
				
			||||||
  url_launcher_windows
 | 
					  url_launcher_windows
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user