Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .metadata
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
# This file should be version controlled.

version:
revision: b06b8b2710955028a6b562f5aa6fe62941d6febf
channel: unknown
revision: 48c32af0345e9ad5747f78ddce828c7f795f7159
channel: stable

project_type: app

Expand Down
18 changes: 10 additions & 8 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}

def supportedReleaseAbis = ['armeabi-v7a', 'arm64-v8a']

android {
namespace 'com.gleec.gleecdex'

Expand All @@ -66,17 +68,18 @@ android {
targetSdkVersion 36
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName

ndk {
//noinspection ChromeOsAbiSupport
abiFilters 'armeabi-v7a', 'arm64-v8a'
}
}

// Android NDK releases page: https://developer.android.com/ndk/downloads
ndkVersion = android.ndkVersion
ndkVersion = "28.2.13676358"

buildTypes {
all { buildType ->
if (!buildType.debuggable) {
// Override Flutter's default ABI list for non-debuggable builds.
buildType.ndk.abiFilters.clear()
buildType.ndk.abiFilters.addAll(supportedReleaseAbis)
}
}
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
Expand All @@ -88,4 +91,3 @@ android {
flutter {
source '../..'
}

Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import io.flutter.plugin.common.BinaryMessenger;
import io.flutter.plugin.common.EventChannel;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugins.GeneratedPluginRegistrant;


public class MainActivity extends FlutterActivity {
Expand Down Expand Up @@ -121,7 +120,7 @@ public void onActivityResult(int requestCode, int resultCode,

@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
super.configureFlutterEngine(flutterEngine);
setupSaf(flutterEngine);
}
}
6 changes: 3 additions & 3 deletions android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ plugins {
id "com.google.gms.google-services" version "4.3.15" apply false
// END: FlutterFire Configuration
// Kotlin release with JVM 21 support: https://kotlinlang.org/docs/releases.html#release-details
id "org.jetbrains.kotlin.android" version "2.2.10" apply false
}
id "org.jetbrains.kotlin.android" version "2.2.20" apply false
}

include ":app"
include ":app"
2 changes: 1 addition & 1 deletion app_theme/pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ resolution: workspace

environment:
sdk: ">=3.8.1 <4.0.0"
flutter: ">=3.35.3 <4.0.0"
flutter: ">=3.41.3 <4.0.0"

dependencies:
flutter:
Expand Down
6 changes: 3 additions & 3 deletions docs/FLUTTER_VERSION.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Supported Flutter Version

This project supports Flutter `3.35.3`. We aim to keep the project up-to-date with the most recent stable Flutter versions.
This project supports Flutter `3.41.3`. We aim to keep the project up-to-date with the most recent stable Flutter versions.

## Recommended Approach: Multiple Flutter Versions

Expand All @@ -15,14 +15,14 @@ See our guide on [Multiple Flutter Versions](MULTIPLE_FLUTTER_VERSIONS.md) for d
While it's possible to pin your global Flutter installation to a specific version, **this approach is not recommended** due to:

- Lack of isolation between projects
- Known issues with `flutter pub get` when using Flutter 3.35.3
- Known issues with `flutter pub get` when using Flutter 3.41.3
- Difficulty switching between versions for different projects

If you still choose to use this method, you can run:

```bash
cd ~/flutter
git checkout 3.35.3
git checkout 3.41.3
flutter doctor
```

Expand Down
16 changes: 8 additions & 8 deletions docs/MULTIPLE_FLUTTER_VERSIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ sudo pacman -R flutter # for Arch

2. Launch Flutter Sidekick

3. Click on "Versions" in the sidebar and download Flutter version `3.35.3`
3. Click on "Versions" in the sidebar and download Flutter version `3.41.3`

4. Set this version as the global default by clicking the "Set as Global" button

Expand Down Expand Up @@ -92,11 +92,11 @@ sudo pacman -R flutter # for Arch
curl -fsSL https://fvm.app/install.sh | bash
```

2. Install and use Flutter 3.35.3:
2. Install and use Flutter 3.41.3:

```bash
fvm install 3.35.3
fvm global 3.35.3
fvm install 3.41.3
fvm global 3.41.3
```

3. Add FVM's default Flutter version to your PATH by adding the following to your `~/.bashrc`, `~/.zshrc`, or equivalent:
Expand Down Expand Up @@ -131,11 +131,11 @@ sudo pacman -R flutter # for Arch
choco install fvm
```

3. Install and use Flutter 3.35.3:
3. Install and use Flutter 3.41.3:

```powershell
fvm install 3.35.3
fvm global 3.35.3
fvm install 3.41.3
fvm global 3.41.3
```

4. Add FVM's Flutter version to your PATH:
Expand All @@ -158,7 +158,7 @@ To use a specific Flutter version for a project:
2. Run:

```bash
fvm use 3.35.3
fvm use 3.41.3
```

This will create a `.fvmrc` file in your project, which specifies the Flutter version to use for this project.
Expand Down
2 changes: 0 additions & 2 deletions ios/Flutter/AppFrameworkInfo.plist
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,5 @@
<string>????</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>MinimumOSVersion</key>
<string>13.0</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/Podfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
platform :ios, '15.5.0'
platform :ios, '15.6'

# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
Expand Down
2 changes: 1 addition & 1 deletion ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,6 @@ SPEC CHECKSUMS:
url_launcher_ios: 694010445543906933d732453a59da0a173ae33d
video_player_avfoundation: 2cef49524dd1f16c5300b9cd6efd9611ce03639b

PODFILE CHECKSUM: f2a1ebd07796ee082cb4d8e8fa742449f698c4f1
PODFILE CHECKSUM: 8a1940628b81389d4af7ba4fac6ed1cc8374cca0

COCOAPODS: 1.16.2
10 changes: 7 additions & 3 deletions ios/Runner.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
49484A33FCF0585DB40EBAD9 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = C74478EE63B90E2A48A7AB3C /* GoogleService-Info.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
8A47D180A1B84E12912B6323 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C0C0C1027A54A2A85585B71 /* SceneDelegate.swift */; };
F1D1A3B2C3D4E5F6A7B8C9D1 /* FdMonitor.swift in Sources */ = {isa = PBXBuildFile; fileRef = F1D1A3B2C3D4E5F6A7B8C9D0 /* FdMonitor.swift */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
Expand Down Expand Up @@ -43,6 +44,7 @@
1E4F53BBF74C393F00500C43 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
335A3372CF627D5A148D7C1F /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
2C0C0C1027A54A2A85585B71 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = "<group>"; };
6DB340A008F6FECB3B82619D /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -124,6 +126,7 @@
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
2C0C0C1027A54A2A85585B71 /* SceneDelegate.swift */,
F1D1A3B2C3D4E5F6A7B8C9D0 /* FdMonitor.swift */,
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
);
Expand Down Expand Up @@ -306,6 +309,7 @@
buildActionMask = 2147483647;
files = (
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
8A47D180A1B84E12912B6323 /* SceneDelegate.swift in Sources */,
F1D1A3B2C3D4E5F6A7B8C9D1 /* FdMonitor.swift in Sources */,
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
);
Expand Down Expand Up @@ -375,7 +379,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
Expand Down Expand Up @@ -466,7 +470,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
Expand Down Expand Up @@ -516,7 +520,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.6;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
Expand Down
141 changes: 71 additions & 70 deletions ios/Runner/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -1,70 +1,71 @@
import Flutter
import UIKit

@main
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
NSLog("🔴 AppDelegate: didFinishLaunchingWithOptions REACHED")
GeneratedPluginRegistrant.register(with: self)

NSLog("AppDelegate: Setting up FD Monitor channel...")
setupFdMonitorChannel()

#if DEBUG
NSLog("AppDelegate: DEBUG build detected, auto-starting FD Monitor...")
FdMonitor.shared.start(intervalSeconds: 60.0)
#else
NSLog("AppDelegate: RELEASE build, FD Monitor NOT auto-started (use Flutter to start manually)")
#endif

return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

private func setupFdMonitorChannel() {
guard let controller = window?.rootViewController as? FlutterViewController else {
return
}

let channel = FlutterMethodChannel(
name: "com.komodo.wallet/fd_monitor",
binaryMessenger: controller.binaryMessenger
)

channel.setMethodCallHandler { [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) in
self?.handleFdMonitorMethodCall(call: call, result: result)
}
}

private func handleFdMonitorMethodCall(call: FlutterMethodCall, result: @escaping FlutterResult) {
switch call.method {
case "start":
let intervalSeconds: TimeInterval
if let args = call.arguments as? [String: Any],
let interval = args["intervalSeconds"] as? Double {
intervalSeconds = interval
} else {
intervalSeconds = 60.0
}
FdMonitor.shared.start(intervalSeconds: intervalSeconds)
result(["success": true, "message": "FD Monitor started with interval: \(intervalSeconds)s"])

case "stop":
FdMonitor.shared.stop()
result(["success": true, "message": "FD Monitor stopped"])

case "getCurrentCount":
let count = FdMonitor.shared.getCurrentCount()
result(count)

case "logDetailedStatus":
FdMonitor.shared.logDetailedStatus()
result(["success": true, "message": "Detailed FD status logged"])

default:
result(FlutterMethodNotImplemented)
}
}
}
import Flutter
import UIKit

@main
@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate {
private var fdMonitorChannel: FlutterMethodChannel?

override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
NSLog("🔴 AppDelegate: didFinishLaunchingWithOptions REACHED")

#if DEBUG
NSLog("AppDelegate: DEBUG build detected, auto-starting FD Monitor...")
FdMonitor.shared.start(intervalSeconds: 60.0)
#else
NSLog("AppDelegate: RELEASE build, FD Monitor NOT auto-started (use Flutter to start manually)")
#endif

return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}

func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) {
GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry)

NSLog("AppDelegate: Setting up FD Monitor channel...")
setupFdMonitorChannel(binaryMessenger: engineBridge.applicationRegistrar.messenger())
}

private func setupFdMonitorChannel(binaryMessenger: FlutterBinaryMessenger) {
fdMonitorChannel = FlutterMethodChannel(
name: "com.komodo.wallet/fd_monitor",
binaryMessenger: binaryMessenger
)

fdMonitorChannel?.setMethodCallHandler { [weak self] (call: FlutterMethodCall, result: @escaping FlutterResult) in
self?.handleFdMonitorMethodCall(call: call, result: result)
}
}

private func handleFdMonitorMethodCall(call: FlutterMethodCall, result: @escaping FlutterResult) {
switch call.method {
case "start":
let intervalSeconds: TimeInterval
if let args = call.arguments as? [String: Any],
let interval = args["intervalSeconds"] as? Double {
intervalSeconds = interval
} else {
intervalSeconds = 60.0
}
FdMonitor.shared.start(intervalSeconds: intervalSeconds)
result(["success": true, "message": "FD Monitor started with interval: \(intervalSeconds)s"])

case "stop":
FdMonitor.shared.stop()
result(["success": true, "message": "FD Monitor stopped"])

case "getCurrentCount":
let count = FdMonitor.shared.getCurrentCount()
result(count)

case "logDetailedStatus":
FdMonitor.shared.logDetailedStatus()
result(["success": true, "message": "Detailed FD status logged"])

default:
result(FlutterMethodNotImplemented)
}
}
}
Loading
Loading