From 677576901f446f2601f6c9fd4709339653f67237 Mon Sep 17 00:00:00 2001 From: OfficialDakari Date: Wed, 19 Nov 2025 22:30:42 +0500 Subject: [PATCH] sync with upstream --- android/app/build.gradle | 107 ------------------ android/app/build.gradle.kts | 86 ++++++++++++++ .../kotlin/xyz/extera/next/MainActivity.kt | 2 - .../xyz/extera/next/UnifiedPushService.kt | 4 +- android/build.gradle | 17 --- android/build.gradle.kts | 21 ++++ .../reports/problems/problems-report.html | 2 +- android/settings.gradle | 26 ----- android/settings.gradle.kts | 28 +++++ lib/pages/dialer/dialer.dart | 4 +- linux/flutter/generated_plugin_registrant.cc | 4 + linux/flutter/generated_plugins.cmake | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 2 + pubspec.lock | 88 +++++--------- pubspec.yaml | 13 +-- .../flutter/generated_plugin_registrant.cc | 3 + windows/flutter/generated_plugins.cmake | 1 + 17 files changed, 184 insertions(+), 225 deletions(-) delete mode 100644 android/app/build.gradle create mode 100644 android/app/build.gradle.kts delete mode 100644 android/build.gradle create mode 100644 android/build.gradle.kts delete mode 100644 android/settings.gradle create mode 100644 android/settings.gradle.kts diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index 9395be6..0000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,107 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" - //id "com.google.gms.google-services" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -def keystoreProperties = new Properties() -def keystorePropertiesFile = rootProject.file('key.properties') -if (keystorePropertiesFile.exists()) { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) -} - -android { - compileSdk = 36 - namespace = "xyz.extera.next" - - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - - lintOptions { - disable 'InvalidPackage' - } - - defaultConfig { - applicationId "xyz.extera.next" - minSdkVersion flutter.minSdkVersion - targetSdkVersion 35 - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - multiDexEnabled true - } - - signingConfigs { - release { - if (keystorePropertiesFile.exists()) { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile file(keystoreProperties['storeFile']) - storePassword keystoreProperties['storePassword'] - } - } - } - buildTypes { - debug { - signingConfig signingConfigs.debug - versionNameSuffix "-debug" - } - release { - minifyEnabled false - shrinkResources false - signingConfig signingConfigs.release - } - } - // https://stackoverflow.com/a/77494454/8222484 - packagingOptions { - pickFirst 'lib/x86/libc++_shared.so' - pickFirst 'lib/x86_64/libc++_shared.so' - pickFirst 'lib/armeabi-v7a/libc++_shared.so' - pickFirst 'lib/arm64-v8a/libc++_shared.so' - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - coreLibraryDesugaringEnabled true - } - - kotlinOptions { - jvmTarget = "17" - } -} - - -flutter { - source '../..' -} - -dependencies { - //implementation 'com.google.firebase:firebase-messaging:19.0.1' // Workaround for https://github.com/microg/android_packages_apps_GmsCore/issues/313#issuecomment-617651698 - implementation 'androidx.multidex:multidex:2.0.1' - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") -} - -configurations.all { - exclude group: 'com.google.android.gms' -} diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..7f2d31f --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,86 @@ +import java.util.Properties +import java.io.FileInputStream + +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +if (file("google-services.json").exists()) { + apply(plugin = "com.google.gms.google-services") +} + +configurations.all { + // Use the latest version published: https://central.sonatype.com/artifact/com.google.crypto.tink/tink-android + val tink = "com.google.crypto.tink:tink-android:1.17.0" + // You can also use the library declaration catalog + // val tink = libs.google.tink + resolutionStrategy { + force(tink) + dependencySubstitution { + substitute(module("com.google.crypto.tink:tink")).using(module(tink)) + } + } +} + +dependencies { + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4") // For flutter_local_notifications // Workaround for: https://github.com/MaikuB/flutter_local_notifications/issues/2286 +} + +android { + namespace = "xyz.extera.next" + compileSdk = flutter.compileSdkVersion + ndkVersion = "28.2.13676358" + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + isCoreLibraryDesugaringEnabled = true + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + signingConfigs { + create("release") { + keyAlias = "dummyAlias" + keyPassword = "dummyPassword" + storeFile = file("dummy.keystore") + storePassword = "dummyStorePassword" + } + } + + val keystoreProperties = Properties() + val keystorePropertiesFile = rootProject.file("key.properties") + if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) + signingConfigs.getByName("release").apply { + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + storeFile = keystoreProperties["storeFile"]?.let { file(it) } + storePassword = keystoreProperties["storePassword"] as String + } + } + + defaultConfig { + applicationId = "chat.fluffy.fluffychat" + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + signingConfig = signingConfigs.getByName("release") + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/src/main/kotlin/xyz/extera/next/MainActivity.kt b/android/app/src/main/kotlin/xyz/extera/next/MainActivity.kt index 2bb1576..7aa7d3c 100644 --- a/android/app/src/main/kotlin/xyz/extera/next/MainActivity.kt +++ b/android/app/src/main/kotlin/xyz/extera/next/MainActivity.kt @@ -4,13 +4,11 @@ import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import android.content.Context -import androidx.multidex.MultiDex class MainActivity : FlutterActivity() { override fun attachBaseContext(base: Context) { super.attachBaseContext(base) - MultiDex.install(this) } diff --git a/android/app/src/main/kotlin/xyz/extera/next/UnifiedPushService.kt b/android/app/src/main/kotlin/xyz/extera/next/UnifiedPushService.kt index 0de5eec..3bd892c 100644 --- a/android/app/src/main/kotlin/xyz/extera/next/UnifiedPushService.kt +++ b/android/app/src/main/kotlin/xyz/extera/next/UnifiedPushService.kt @@ -1,3 +1,4 @@ +/* package xyz.extera.next import io.flutter.embedding.engine.FlutterEngine @@ -20,4 +21,5 @@ class UnifiedPushReceiver : UnifiedPushReceiver() { } return engine } -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index ff96015..0000000 --- a/android/build.gradle +++ /dev/null @@ -1,17 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - } -} - -rootProject.buildDir = '../build' - -subprojects { - project.buildDir = "${rootProject.buildDir}/${project.name}" - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} \ No newline at end of file diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..58af68c --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,21 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} \ No newline at end of file diff --git a/android/build/reports/problems/problems-report.html b/android/build/reports/problems/problems-report.html index e923c4a..73e0b7e 100644 --- a/android/build/reports/problems/problems-report.html +++ b/android/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index 664e462..0000000 --- a/android/settings.gradle +++ /dev/null @@ -1,26 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - }() - - includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - gradlePluginPortal() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.11.1" apply false - id "org.jetbrains.kotlin.android" version "2.1.10" apply false - // id "com.google.gms.google-services" version "4.3.8" apply false -} - -include ":app" \ No newline at end of file diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..a0f8d59 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,28 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.9.1" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false + if (file("app/google-services.json").exists()) { + id("com.google.gms.google-services") version "4.3.8" apply false + } +} + +include(":app") \ No newline at end of file diff --git a/lib/pages/dialer/dialer.dart b/lib/pages/dialer/dialer.dart index dbd7110..99d1af9 100644 --- a/lib/pages/dialer/dialer.dart +++ b/lib/pages/dialer/dialer.dart @@ -299,7 +299,9 @@ class MyCallingPage extends State { L10n.of(widget.context).foregroundServiceRunning, ), iosNotificationOptions: const IOSNotificationOptions(), - foregroundTaskOptions: const ForegroundTaskOptions(), + foregroundTaskOptions: ForegroundTaskOptions( + eventAction: ForegroundTaskEventAction.nothing(), + ), ); FlutterForegroundTask.startService( notificationTitle: L10n.of(widget.context).screenSharingTitle, diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index ad8fc21..3c329bd 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -7,6 +7,7 @@ #include "generated_plugin_registrant.h" #include +#include #include #include #include @@ -27,6 +28,9 @@ 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) desktop_webview_window_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "DesktopWebviewWindowPlugin"); + desktop_webview_window_plugin_register_with_registrar(desktop_webview_window_registrar); g_autoptr(FlPluginRegistrar) dynamic_color_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 2c97996..3eb33f5 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -4,6 +4,7 @@ list(APPEND FLUTTER_PLUGIN_LIST desktop_drop + desktop_webview_window dynamic_color emoji_picker_flutter file_selector_linux diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 064c22b..3db65de 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -8,6 +8,7 @@ import Foundation import app_links import audio_session import desktop_drop +import desktop_webview_window import device_info_plus import dynamic_color import emoji_picker_flutter @@ -41,6 +42,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin")) AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin")) DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin")) + DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin")) DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) DynamicColorPlugin.register(with: registry.registrar(forPlugin: "DynamicColorPlugin")) EmojiPickerFlutterPlugin.register(with: registry.registrar(forPlugin: "EmojiPickerFlutterPlugin")) diff --git a/pubspec.lock b/pubspec.lock index c283a61..bcbadc4 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -329,6 +329,14 @@ packages: url: "https://pub.dev" source: hosted version: "0.6.3" + desktop_webview_window: + dependency: transitive + description: + name: desktop_webview_window + sha256: "57cf20d81689d5cbb1adfd0017e96b669398a669d927906073b0e42fc64111c0" + url: "https://pub.dev" + source: hosted + version: "0.2.3" device_info_plus: dependency: "direct main" description: @@ -502,11 +510,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.4.1" - flutter_driver: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" flutter_foreground_task: dependency: "direct main" description: @@ -591,10 +594,10 @@ packages: dependency: "direct main" description: name: flutter_local_notifications - sha256: "7ed76be64e8a7d01dfdf250b8434618e2a028c9dfa2a3c41dc9b531d4b3fc8a5" + sha256: "19ffb0a8bb7407875555e5e98d7343a633bb73707bae6c6a5f37c90014077875" url: "https://pub.dev" source: hosted - version: "19.4.2" + version: "19.5.0" flutter_local_notifications_linux: dependency: transitive description: @@ -753,20 +756,19 @@ packages: flutter_web_auth_2: dependency: "direct main" description: - path: flutter_web_auth_2 - ref: "3.x-without-v1" - resolved-ref: "48682f19576001e50104a602d891343850adb67f" - url: "https://github.com/ThexXTURBOXx/flutter_web_auth_2.git" - source: git - version: "3.1.2-without-v1" + name: flutter_web_auth_2 + sha256: "3c14babeaa066c371f3a743f204dd0d348b7d42ffa6fae7a9847a521aff33696" + url: "https://pub.dev" + source: hosted + version: "4.1.0" flutter_web_auth_2_platform_interface: dependency: transitive description: name: flutter_web_auth_2_platform_interface - sha256: e8669e262005a8354389ba2971f0fc1c36188481234ff50d013aaf993f30f739 + sha256: c63a472c8070998e4e422f6b34a17070e60782ac442107c70000dd1bed645f4d url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.1.0" flutter_web_plugins: dependency: transitive description: flutter @@ -788,11 +790,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.0.0" - fuchsia_remote_debug_protocol: - dependency: transitive - description: flutter - source: sdk - version: "0.0.0" geoclue: dependency: transitive description: @@ -1049,11 +1046,6 @@ packages: url: "https://pub.dev" source: hosted version: "4.6.0" - integration_test: - dependency: "direct dev" - description: flutter - source: sdk - version: "0.0.0" intl: dependency: "direct main" description: @@ -1235,10 +1227,10 @@ packages: dependency: transitive description: name: meta - sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" url: "https://pub.dev" source: hosted - version: "1.16.0" + version: "1.17.0" mgrs_dart: dependency: transitive description: @@ -1519,14 +1511,6 @@ packages: url: "https://pub.dev" source: hosted version: "3.5.0" - process: - dependency: transitive - description: - name: process - sha256: "107d8be718f120bbba9dcd1e95e3bd325b1b4a4f07db64154635ba03f2567a0d" - url: "https://pub.dev" - source: hosted - version: "5.0.3" proj4dart: dependency: transitive description: @@ -2004,14 +1988,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.3.0" - sync_http: - dependency: transitive - description: - name: sync_http - sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" - url: "https://pub.dev" - source: hosted - version: "0.3.1" synchronized: dependency: transitive description: @@ -2040,26 +2016,26 @@ packages: dependency: transitive description: name: test - sha256: "65e29d831719be0591f7b3b1a32a3cda258ec98c58c7b25f7b84241bc31215bb" + sha256: "75906bf273541b676716d1ca7627a17e4c4070a3a16272b7a3dc7da3b9f3f6b7" url: "https://pub.dev" source: hosted - version: "1.26.2" + version: "1.26.3" test_api: dependency: transitive description: name: test_api - sha256: "522f00f556e73044315fa4585ec3270f1808a4b186c936e612cab0b565ff1e00" + sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 url: "https://pub.dev" source: hosted - version: "0.7.6" + version: "0.7.7" test_core: dependency: transitive description: name: test_core - sha256: "80bf5a02b60af04b09e14f6fe68b921aad119493e26e490deaca5993fef1b05a" + sha256: "0cc24b5ff94b38d2ae73e1eb43cc302b77964fbf67abad1e296025b78deb53d0" url: "https://pub.dev" source: hosted - version: "0.6.11" + version: "0.6.12" timezone: dependency: transitive description: @@ -2380,14 +2356,6 @@ packages: url: "https://pub.dev" source: hosted version: "0.5.8" - webdriver: - dependency: transitive - description: - name: webdriver - sha256: "2f3a14ca026957870cfd9c635b83507e0e51d8091568e90129fbf805aba7cade" - url: "https://pub.dev" - source: hosted - version: "3.1.0" webkit_inspection_protocol: dependency: transitive description: @@ -2413,13 +2381,13 @@ packages: source: hosted version: "1.3.0" win32: - dependency: "direct overridden" + dependency: transitive description: name: win32 - sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9" + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e url: "https://pub.dev" source: hosted - version: "5.5.3" + version: "5.15.0" win32_registry: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 92988af..d0805ab 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -34,7 +34,7 @@ dependencies: flutter_foreground_task: ^9.1.0 flutter_highlighter: ^0.1.1 flutter_linkify: ^6.0.0 - flutter_local_notifications: ^19.4.2 + flutter_local_notifications: ^19.5.0 flutter_localizations: sdk: flutter flutter_map: ^8.2.2 @@ -106,8 +106,8 @@ dev_dependencies: flutter_test: sdk: flutter import_sorter: ^4.6.0 - integration_test: - sdk: flutter +# integration_test: +# sdk: flutter license_checker: ^1.6.0 msix: ^3.6.2 translations_cleaner: ^0.0.5 @@ -139,10 +139,3 @@ msix_config: install_certificate: false dependency_overrides: - # https://github.com/ThexXTURBOXx/flutter_web_auth_2/issues/155 - flutter_web_auth_2: - git: - url: https://github.com/ThexXTURBOXx/flutter_web_auth_2.git - ref: 3.x-without-v1 - path: flutter_web_auth_2 - win32: 5.5.3 diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc index 6e7bfab..7196455 100644 --- a/windows/flutter/generated_plugin_registrant.cc +++ b/windows/flutter/generated_plugin_registrant.cc @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -30,6 +31,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) { registry->GetRegistrarForPlugin("AppLinksPluginCApi")); DesktopDropPluginRegisterWithRegistrar( registry->GetRegistrarForPlugin("DesktopDropPlugin")); + DesktopWebviewWindowPluginRegisterWithRegistrar( + registry->GetRegistrarForPlugin("DesktopWebviewWindowPlugin")); DynamicColorPluginCApiRegisterWithRegistrar( registry->GetRegistrarForPlugin("DynamicColorPluginCApi")); EmojiPickerFlutterPluginCApiRegisterWithRegistrar( diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake index 3ea4b7d..7c43df3 100644 --- a/windows/flutter/generated_plugins.cmake +++ b/windows/flutter/generated_plugins.cmake @@ -5,6 +5,7 @@ list(APPEND FLUTTER_PLUGIN_LIST app_links desktop_drop + desktop_webview_window dynamic_color emoji_picker_flutter file_selector_windows