diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ac4da084..895979da 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,6 +19,9 @@ jobs: steps: - uses: actions/checkout@v2 - uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.24.4 - uses: bluefireteam/melos-action@v1 - name: Format, Lint, Publishability @@ -57,7 +60,14 @@ jobs: steps: - uses: actions/checkout@v2 + - uses: actions/setup-java@v4 + with: + distribution: 'oracle' + java-version: '17' - uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.24.4 - uses: bluefireteam/melos-action@v1 - name: Build Android Examples @@ -71,6 +81,9 @@ jobs: steps: - uses: actions/checkout@v2 - uses: subosito/flutter-action@v2 + with: + channel: stable + flutter-version: 3.24.4 - uses: bluefireteam/melos-action@v1 - name: Build iOS Examples diff --git a/melos.yaml b/melos.yaml index 11fe10af..15234080 100644 --- a/melos.yaml +++ b/melos.yaml @@ -7,7 +7,7 @@ scripts: lint:all: run: | - melos run lint:analyze && melos publish -y && melos run lint:format + melos run lint:analyze && melos lint:pub && melos run lint:format lint:analyze: run: | @@ -17,7 +17,7 @@ scripts: lint:pub: run: | melos exec -c 5 -- \ - "dart pub publish --dry-run" + "flutter pub publish --dry-run" packageFilters: ignore: "*example*" noPrivate: true @@ -100,7 +100,7 @@ scripts: build:android: run: | - melos run build:example_android_pub --no-select && melos bootstrap + flutter doctor -v && melos run build:example_android_pub --no-select && melos bootstrap # melos bootstrap does not generate all files generated by a build that runs # `pub get`, and `flutter drive` does not either, so it is still necessary to diff --git a/packages/apptive_grid_core/CHANGELOG.md b/packages/apptive_grid_core/CHANGELOG.md index 152fe598..96ffcb7f 100644 --- a/packages/apptive_grid_core/CHANGELOG.md +++ b/packages/apptive_grid_core/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.1.2 + + - **FEAT**: Make the current authentication token accessible + ## 2.1.1 - **REFACTOR**: Use performApptiveLink for Client Functions (#129). diff --git a/packages/apptive_grid_core/example/android/app/build.gradle b/packages/apptive_grid_core/example/android/app/build.gradle index 947e811d..3fd0b298 100644 --- a/packages/apptive_grid_core/example/android/app/build.gradle +++ b/packages/apptive_grid_core/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,12 +22,8 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 33 + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -34,8 +31,8 @@ android { defaultConfig { applicationId "de.zweidenker.example" - minSdkVersion 18 - targetSdkVersion 33 + minSdkVersion flutter.minSdkVersion + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -51,7 +48,3 @@ android { flutter { source '../..' } - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/packages/apptive_grid_core/example/android/build.gradle b/packages/apptive_grid_core/example/android/build.gradle index 36afcedd..941f2563 100644 --- a/packages/apptive_grid_core/example/android/build.gradle +++ b/packages/apptive_grid_core/example/android/build.gradle @@ -1,17 +1,3 @@ -buildscript { - ext.kotlin_version = '1.8.0' - repositories { - google() - mavenCentral() - jcenter() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() @@ -22,6 +8,26 @@ allprojects { rootProject.buildDir = '../build' subprojects { + afterEvaluate { project -> + if (project.extensions.findByName("android") != null) { + Integer pluginCompileSdk = project.android.compileSdk + if (pluginCompileSdk != null && pluginCompileSdk < 31) { + project.logger.error( + "Warning: Overriding compileSdk version in Flutter plugin: " + + project.name + + " from " + + pluginCompileSdk + + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." + + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " + + project.name + + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." + ) + project.android { + compileSdk 31 + } + } + } + } project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { diff --git a/packages/apptive_grid_core/example/android/settings.gradle b/packages/apptive_grid_core/example/android/settings.gradle index 44e62bcf..b3bf9755 100644 --- a/packages/apptive_grid_core/example/android/settings.gradle +++ b/packages/apptive_grid_core/example/android/settings.gradle @@ -1,11 +1,26 @@ -include ':app' +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 + } + settings.ext.flutterSdkPath = flutterSdkPath() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.4.2" apply false + id "org.jetbrains.kotlin.android" version "1.8.0" apply false +} + +include ":app" diff --git a/packages/apptive_grid_core/example/ios/Flutter/AppFrameworkInfo.plist b/packages/apptive_grid_core/example/ios/Flutter/AppFrameworkInfo.plist index 9625e105..7c569640 100644 --- a/packages/apptive_grid_core/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/apptive_grid_core/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/packages/apptive_grid_core/example/ios/Podfile b/packages/apptive_grid_core/example/ios/Podfile index 88359b22..0b62d79e 100644 --- a/packages/apptive_grid_core/example/ios/Podfile +++ b/packages/apptive_grid_core/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '14.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/apptive_grid_core/example/ios/Podfile.lock b/packages/apptive_grid_core/example/ios/Podfile.lock index 6cb02ecc..ca07f244 100644 --- a/packages/apptive_grid_core/example/ios/Podfile.lock +++ b/packages/apptive_grid_core/example/ios/Podfile.lock @@ -30,12 +30,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 +PODFILE CHECKSUM: fe5e039928e08cc3aa55730590fe5577354d32d2 -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/packages/apptive_grid_core/example/ios/Runner.xcodeproj/project.pbxproj b/packages/apptive_grid_core/example/ios/Runner.xcodeproj/project.pbxproj index 736fe94c..ec6dcb1b 100644 --- a/packages/apptive_grid_core/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/apptive_grid_core/example/ios/Runner.xcodeproj/project.pbxproj @@ -156,7 +156,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -343,7 +343,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -417,7 +417,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -466,7 +466,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/apptive_grid_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/apptive_grid_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index b52b2e69..e67b2808 100644 --- a/packages/apptive_grid_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/apptive_grid_core/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ createState() => _MyAppState(); } diff --git a/packages/apptive_grid_core/lib/src/network/authentication/apptive_grid_authenticator.dart b/packages/apptive_grid_core/lib/src/network/authentication/apptive_grid_authenticator.dart index 8617c983..6a426138 100644 --- a/packages/apptive_grid_core/lib/src/network/authentication/apptive_grid_authenticator.dart +++ b/packages/apptive_grid_core/lib/src/network/authentication/apptive_grid_authenticator.dart @@ -193,6 +193,14 @@ class ApptiveGridAuthenticator { return _authClient ??= await createClient(); } + /// Returns the current authentication token if available and valid. + String? getAuthToken() { + // Here, you can add logic to check if the token is expired or not. + // For simplicity, we're directly returning the accessToken, + // but consider checking the token's validity first. + return _token?.accessToken; + } + /// Used to test implementation of get _client @visibleForTesting Future get authClient => _client; diff --git a/packages/apptive_grid_core/pubspec.yaml b/packages/apptive_grid_core/pubspec.yaml index d8d71566..9fba4c85 100644 --- a/packages/apptive_grid_core/pubspec.yaml +++ b/packages/apptive_grid_core/pubspec.yaml @@ -1,6 +1,6 @@ name: apptive_grid_core description: Core Library for ApptiveGrid used to provide general ApptiveGrid functionality to other Packages or Apps -version: 2.1.1 +version: 2.1.2 homepage: https://www.apptivegrid.de repository: https://github.com/ApptiveGrid/apptive_grid_flutter/tree/main/packages/apptive_grid_core @@ -11,7 +11,7 @@ environment: dependencies: collection: ^1.17.2 image: ^4.0.17 - intl: ^0.18.0 + intl: ^0.19.0 http: '>=0.13.6 <2.0.0' mime: ^1.0.4 provider: ^6.0.5 diff --git a/packages/apptive_grid_core/test/authenticator_test.dart b/packages/apptive_grid_core/test/authenticator_test.dart index 46e97f64..c6c49de0 100644 --- a/packages/apptive_grid_core/test/authenticator_test.dart +++ b/packages/apptive_grid_core/test/authenticator_test.dart @@ -1276,6 +1276,28 @@ void main() { }); }); + group('Get User token', () { + test('Get Token returns token', () async { + final httpClient = MockHttpClient(); + final agClient = MockApptiveGridClient(); + when(() => agClient.options).thenReturn(const ApptiveGridOptions()); + authenticator = + ApptiveGridAuthenticator(client: agClient, httpClient: httpClient); + + final tokenTime = DateTime.now(); + final tokenResponse = { + 'token_type': 'Bearer', + 'access_token': '12345', + 'expires_at': tokenTime.millisecondsSinceEpoch, + 'expires_in': tokenTime.microsecondsSinceEpoch, + }; + + await authenticator.setUserToken(tokenResponse); + + expect(authenticator.getAuthToken(), tokenResponse['access_token']); + }); + }); + group('Authenticator', () { final urlLauncher = MockUrlLauncher(); diff --git a/packages/apptive_grid_form/example/android/app/build.gradle b/packages/apptive_grid_form/example/android/app/build.gradle index 30f63eb3..3fd0b298 100644 --- a/packages/apptive_grid_form/example/android/app/build.gradle +++ b/packages/apptive_grid_form/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,25 +22,17 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 33 + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' } - lintOptions { - disable 'InvalidPackage' - } - defaultConfig { applicationId "de.zweidenker.example" - minSdkVersion 20 - targetSdkVersion 33 + minSdkVersion flutter.minSdkVersion + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -55,7 +48,3 @@ android { flutter { source '../..' } - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/packages/apptive_grid_form/example/android/build.gradle b/packages/apptive_grid_form/example/android/build.gradle index 36afcedd..b4d3a587 100644 --- a/packages/apptive_grid_form/example/android/build.gradle +++ b/packages/apptive_grid_form/example/android/build.gradle @@ -1,17 +1,3 @@ -buildscript { - ext.kotlin_version = '1.8.0' - repositories { - google() - mavenCentral() - jcenter() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() @@ -21,7 +7,28 @@ allprojects { } rootProject.buildDir = '../build' + subprojects { + afterEvaluate { project -> + if (project.extensions.findByName("android") != null) { + Integer pluginCompileSdk = project.android.compileSdk + if (pluginCompileSdk != null && pluginCompileSdk < 31) { + project.logger.error( + "Warning: Overriding compileSdk version in Flutter plugin: " + + project.name + + " from " + + pluginCompileSdk + + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." + + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " + + project.name + + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." + ) + project.android { + compileSdk 31 + } + } + } + } project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { diff --git a/packages/apptive_grid_form/example/android/settings.gradle b/packages/apptive_grid_form/example/android/settings.gradle index 44e62bcf..b3bf9755 100644 --- a/packages/apptive_grid_form/example/android/settings.gradle +++ b/packages/apptive_grid_form/example/android/settings.gradle @@ -1,11 +1,26 @@ -include ':app' +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 + } + settings.ext.flutterSdkPath = flutterSdkPath() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.4.2" apply false + id "org.jetbrains.kotlin.android" version "1.8.0" apply false +} + +include ":app" diff --git a/packages/apptive_grid_form/example/ios/Flutter/AppFrameworkInfo.plist b/packages/apptive_grid_form/example/ios/Flutter/AppFrameworkInfo.plist index 4f8d4d24..8c6e5614 100644 --- a/packages/apptive_grid_form/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/apptive_grid_form/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/packages/apptive_grid_form/example/ios/Podfile b/packages/apptive_grid_form/example/ios/Podfile index 70c7f791..eca9f999 100644 --- a/packages/apptive_grid_form/example/ios/Podfile +++ b/packages/apptive_grid_form/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '14.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/apptive_grid_form/example/ios/Podfile.lock b/packages/apptive_grid_form/example/ios/Podfile.lock index 907bb120..7a27510b 100644 --- a/packages/apptive_grid_form/example/ios/Podfile.lock +++ b/packages/apptive_grid_form/example/ios/Podfile.lock @@ -1,33 +1,33 @@ PODS: - - DKImagePickerController/Core (4.3.4): + - DKImagePickerController/Core (4.3.9): - DKImagePickerController/ImageDataManager - DKImagePickerController/Resource - - DKImagePickerController/ImageDataManager (4.3.4) - - DKImagePickerController/PhotoGallery (4.3.4): + - DKImagePickerController/ImageDataManager (4.3.9) + - DKImagePickerController/PhotoGallery (4.3.9): - DKImagePickerController/Core - DKPhotoGallery - - DKImagePickerController/Resource (4.3.4) - - DKPhotoGallery (0.0.17): - - DKPhotoGallery/Core (= 0.0.17) - - DKPhotoGallery/Model (= 0.0.17) - - DKPhotoGallery/Preview (= 0.0.17) - - DKPhotoGallery/Resource (= 0.0.17) + - DKImagePickerController/Resource (4.3.9) + - DKPhotoGallery (0.0.19): + - DKPhotoGallery/Core (= 0.0.19) + - DKPhotoGallery/Model (= 0.0.19) + - DKPhotoGallery/Preview (= 0.0.19) + - DKPhotoGallery/Resource (= 0.0.19) - SDWebImage - SwiftyGif - - DKPhotoGallery/Core (0.0.17): + - DKPhotoGallery/Core (0.0.19): - DKPhotoGallery/Model - DKPhotoGallery/Preview - SDWebImage - SwiftyGif - - DKPhotoGallery/Model (0.0.17): + - DKPhotoGallery/Model (0.0.19): - SDWebImage - SwiftyGif - - DKPhotoGallery/Preview (0.0.17): + - DKPhotoGallery/Preview (0.0.19): - DKPhotoGallery/Model - DKPhotoGallery/Resource - SDWebImage - SwiftyGif - - DKPhotoGallery/Resource (0.0.17): + - DKPhotoGallery/Resource (0.0.19): - SDWebImage - SwiftyGif - file_picker (0.0.1): @@ -40,13 +40,16 @@ PODS: - Flutter - geolocator_apple (1.2.0): - Flutter + - Google-Maps-iOS-Utils (5.0.0): + - GoogleMaps (~> 8.0) - google_maps_flutter_ios (0.0.1): - Flutter - - GoogleMaps (< 8.0) - - GoogleMaps (5.2.0): - - GoogleMaps/Maps (= 5.2.0) - - GoogleMaps/Base (5.2.0) - - GoogleMaps/Maps (5.2.0): + - Google-Maps-iOS-Utils (< 7.0, >= 5.0) + - GoogleMaps (< 10.0, >= 8.4) + - GoogleMaps (8.4.0): + - GoogleMaps/Maps (= 8.4.0) + - GoogleMaps/Base (8.4.0) + - GoogleMaps/Maps (8.4.0): - GoogleMaps/Base - image_picker_ios (0.0.1): - Flutter @@ -55,10 +58,10 @@ PODS: - FlutterMacOS - permission_handler_apple (9.1.1): - Flutter - - SDWebImage (5.15.5): - - SDWebImage/Core (= 5.15.5) - - SDWebImage/Core (5.15.5) - - SwiftyGif (5.4.4) + - SDWebImage (5.20.0): + - SDWebImage/Core (= 5.20.0) + - SDWebImage/Core (5.20.0) + - SwiftyGif (5.4.5) - uni_links (0.0.1): - Flutter - url_launcher_ios (0.0.1): @@ -81,6 +84,7 @@ SPEC REPOS: trunk: - DKImagePickerController - DKPhotoGallery + - Google-Maps-iOS-Utils - GoogleMaps - SDWebImage - SwiftyGif @@ -110,23 +114,24 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - DKImagePickerController: b512c28220a2b8ac7419f21c491fc8534b7601ac - DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179 + DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c + DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60 file_picker: ce3938a0df3cc1ef404671531facef740d03f920 - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - geolocator_apple: cc556e6844d508c95df1e87e3ea6fa4e58c50401 - google_maps_flutter_ios: abdac20d6ce8931f6ebc5f46616df241bfaa2cfd - GoogleMaps: 025272d5876d3b32604e5c080dc25eaf68764693 - image_picker_ios: 4a8aadfbb6dc30ad5141a2ce3832af9214a705b5 - path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 + geolocator_apple: 6cbaf322953988e009e5ecb481f07efece75c450 + Google-Maps-iOS-Utils: 66d6de12be1ce6d3742a54661e7a79cb317a9321 + google_maps_flutter_ios: e31555a04d1986ab130f2b9f24b6cdc861acc6d3 + GoogleMaps: 8939898920281c649150e0af74aa291c60f2e77d + image_picker_ios: c560581cceedb403a6ff17f2f816d7fea1421fc1 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 - SDWebImage: fd7e1a22f00303e058058278639bf6196ee431fe - SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f + SDWebImage: 73c6079366fea25fa4bb9640d5fb58f0893facd8 + SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: 983c22469d83a498881b946c3fe0b41634063e38 +PODFILE CHECKSUM: 7cdf18e302effc70d06dbbea93ac6dc7af5cb1e9 -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/packages/apptive_grid_form/example/ios/Runner.xcodeproj/project.pbxproj b/packages/apptive_grid_form/example/ios/Runner.xcodeproj/project.pbxproj index 9402b230..10fa3659 100644 --- a/packages/apptive_grid_form/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/apptive_grid_form/example/ios/Runner.xcodeproj/project.pbxproj @@ -76,7 +76,6 @@ F5AE1F19BC8AFCE273C2C49A /* Pods-Runner.release.xcconfig */, B99B05BE4CEF0FF67BD3C223 /* Pods-Runner.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -157,7 +156,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -361,7 +360,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -383,6 +382,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -446,7 +446,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -495,7 +495,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -518,6 +518,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -548,6 +549,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/packages/apptive_grid_form/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/apptive_grid_form/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index b52b2e69..e67b2808 100644 --- a/packages/apptive_grid_form/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/apptive_grid_form/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ { if (pages != null && pages.length > 1) { return PopScope( canPop: _pageController.hasClients && (_pageController.page ?? 0) == 0, - onPopInvoked: (_) { + onPopInvokedWithResult: (bool didPop, Object? result) async { if ((_pageController.page ?? 0) > 0) { _pageController.previousPage( duration: const Duration(milliseconds: 300), diff --git a/packages/apptive_grid_form/pubspec.yaml b/packages/apptive_grid_form/pubspec.yaml index cd1f92a3..7fca1daa 100644 --- a/packages/apptive_grid_form/pubspec.yaml +++ b/packages/apptive_grid_form/pubspec.yaml @@ -14,15 +14,15 @@ dependencies: file_picker: ^5.2.11 flutter: sdk: flutter - flutter_svg: ^2.0.5 + flutter_svg: ^2.0.10 flutter_typeahead: ^4.3.8 geolocator: ^10.0.1 - google_maps_flutter: ^2.2.6 - google_maps_flutter_platform_interface: ^2.2.6 + google_maps_flutter: ^2.9.0 + google_maps_flutter_platform_interface: ^2.9.0 hand_signature: ^3.0.1 http: '>=0.13.6 <2.0.0' image_picker: ^1.0.4 - intl: ^0.18.0 + intl: ^0.19.0 linked_scroll_controller: ^0.2.0 lottie: ^2.3.2 permission_handler: ^11.0.1 @@ -37,8 +37,8 @@ dev_dependencies: sdk: flutter image_picker_platform_interface: ^2.6.3 pedantic: ^1.11.1 - mocktail: ^1.0.1 - mocktail_image_network: ^1.0.0 + mocktail: ^1.0.3 + mocktail_image_network: ^1.1.0 plugin_platform_interface: ^2.1.4 flutter_test: sdk: flutter diff --git a/packages/apptive_grid_form/test/geolocation_form_widget_test.dart b/packages/apptive_grid_form/test/geolocation_form_widget_test.dart index 37192d65..7c12d91a 100644 --- a/packages/apptive_grid_form/test/geolocation_form_widget_test.dart +++ b/packages/apptive_grid_form/test/geolocation_form_widget_test.dart @@ -24,6 +24,8 @@ void main() { registerFallbackValue(CircleUpdates.from(const {}, const {})); registerFallbackValue(PolygonUpdates.from(const {}, const {})); registerFallbackValue(PolylineUpdates.from(const {}, const {})); + registerFallbackValue(ClusterManagerUpdates.from(const {}, const {})); + registerFallbackValue(HeatmapUpdates.from(const {}, const {})); registerFallbackValue(CameraUpdate.newLatLng(const LatLng(0, 0))); registerFallbackValue( FormData(id: 'id', links: {}, title: '', components: [], fields: []), @@ -854,25 +856,19 @@ void main() { final initCompleter = Completer(); when( - () => mockMap.buildViewWithTextDirection( + () => mockMap.buildViewWithConfiguration( any(), any(), - initialCameraPosition: any(named: 'initialCameraPosition'), - textDirection: any(named: 'textDirection'), - markers: any(named: 'markers'), - polygons: any(named: 'polygons'), - polylines: any(named: 'polylines'), - circles: any(named: 'circles'), - tileOverlays: any(named: 'tileOverlays'), - gestureRecognizers: any(named: 'gestureRecognizers'), - mapOptions: any(named: 'mapOptions'), + widgetConfiguration: any(named: 'widgetConfiguration'), + mapConfiguration: any(named: 'mapConfiguration'), + mapObjects: any(named: 'mapObjects'), ), ).thenAnswer((invocation) { if (!initCompleter.isCompleted) { (invocation.positionalArguments[1] as Function(int)) .call(invocation.positionalArguments[0]); } - markers = invocation.namedArguments[const Symbol('markers')] + markers = invocation.namedArguments[const Symbol('mapObjects')].markers .map((e) => (e as Marker).markerId) .toSet(); return Container(); @@ -890,10 +886,8 @@ void main() { (invocation.positionalArguments[1] as Function(int)) .call(invocation.positionalArguments[0]); } - markers = (invocation.namedArguments[const Symbol('mapObjects')] - as MapObjects) - .markers - .map((e) => e.markerId) + markers = invocation.namedArguments[const Symbol('mapObjects')].markers + .map((e) => (e as Marker).markerId) .toSet(); return Container(); }); @@ -938,6 +932,14 @@ void main() { final circleTapStream = StreamController.broadcast(); when(() => mockMap.onCircleTap(mapId: any(named: 'mapId'))) .thenAnswer((_) => circleTapStream.stream); + final clusterTapStream = StreamController.broadcast(); + when(() => mockMap.onClusterTap(mapId: any(named: 'mapId'))) + .thenAnswer((_) => clusterTapStream.stream); + when( + () => mockMap.updateClusterManagers(any(), mapId: any(named: 'mapId')), + ).thenAnswer((_) async {}); + when(() => mockMap.updateHeatmaps(any(), mapId: any(named: 'mapId'))) + .thenAnswer((_) async {}); when( () => mockMap.updateTileOverlays( @@ -945,8 +947,9 @@ void main() { mapId: any(named: 'mapId'), ), ).thenAnswer((_) async {}); - when(() => mockMap.updateMapOptions(any(), mapId: any(named: 'mapId'))) - .thenAnswer((_) async {}); + when( + () => mockMap.updateMapConfiguration(any(), mapId: any(named: 'mapId')), + ).thenAnswer((_) async {}); when(() => mockMap.updateMarkers(any(), mapId: any(named: 'mapId'))) .thenAnswer((_) async {}); when(() => mockMap.updateCircles(any(), mapId: any(named: 'mapId'))) diff --git a/packages/apptive_grid_form/test/svg_loader_test.dart b/packages/apptive_grid_form/test/svg_loader_test.dart new file mode 100644 index 00000000..723fc4d6 --- /dev/null +++ b/packages/apptive_grid_form/test/svg_loader_test.dart @@ -0,0 +1,106 @@ +import 'dart:typed_data'; + +import 'package:apptive_grid_form/apptive_grid_form.dart'; +import 'package:apptive_grid_form/src/widgets/attachment/thumbnail.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:mocktail/mocktail.dart'; + +// Mock classes +class MockAttachment extends Mock implements Attachment {} + +class MockAddAttachmentAction extends Mock implements AddAttachmentAction {} + +void main() { + group('SvgLoaderFactory Tests', () { + test( + 'returns SvgNetworkLoader when only Attachment with largeThumbnailUri is provided', + () { + final attachment = Attachment( + name: 'svg', + url: Uri(path: '/uri'), + largeThumbnail: Uri(path: '/largeThumbnailUri'), + type: 'image/svg', + ); + + final loader = SvgLoaderFactory.getLoader(attachment: attachment); + + expect(loader, isA()); + expect((loader as SvgNetworkLoader).url, '/largeThumbnailUri'); + }); + + test( + 'returns SvgNetworkLoader when only Attachment with smallThumbnail is provided', + () { + final attachment = Attachment( + name: 'svg', + url: Uri(path: '/uri'), + smallThumbnail: Uri(path: '/smallThumbnail'), + type: 'image/svg', + ); + + final loader = SvgLoaderFactory.getLoader(attachment: attachment); + + expect(loader, isA()); + expect((loader as SvgNetworkLoader).url, '/smallThumbnail'); + }); + + test('returns SvgNetworkLoader when only Attachment with uri is provided', + () { + final attachment = Attachment( + name: 'svg', + url: Uri(path: '/uri'), + type: 'image/svg', + ); + + final loader = SvgLoaderFactory.getLoader(attachment: attachment); + + expect(loader, isA()); + expect((loader as SvgNetworkLoader).url, '/uri'); + }); + + test('returns SvgFileLoader when AddAttachmentAction with path is provided', + () { + final attachment = Attachment( + name: 'svg', + url: Uri(path: '/uri'), + largeThumbnail: Uri(path: '/largeThumbnailUri'), + type: 'image/svg', + ); + final action = + AddAttachmentAction(path: 'path/to/file.svg', attachment: attachment); + + final loader = SvgLoaderFactory.getLoader(addAttachmentAction: action); + + expect(loader, isA()); + }); + + test( + 'returns SvgBytesLoader when AddAttachmentAction with byteData is provided', + () { + final attachment = Attachment( + name: 'svg', + url: Uri(path: '/uri'), + largeThumbnail: Uri(path: '/largeThumbnailUri'), + type: 'image/svg', + ); + final action = AddAttachmentAction( + byteData: Uint8List(10), + attachment: attachment, + ); // Example byte data + + final loader = SvgLoaderFactory.getLoader(addAttachmentAction: action); + + expect(loader, isA()); + }); + + test('returns provided SvgLoader when SvgLoader is explicitly provided', + () { + final svgLoader = SvgBytesLoader(Uint8List(10)); // Example SVG loader + + final loader = SvgLoaderFactory.getLoader(svgLoader: svgLoader); + + expect(loader, svgLoader); + }); + }); +} diff --git a/packages/apptive_grid_form/test/thumbnail_test.dart b/packages/apptive_grid_form/test/thumbnail_test.dart index 02812aba..4625fb8c 100644 --- a/packages/apptive_grid_form/test/thumbnail_test.dart +++ b/packages/apptive_grid_form/test/thumbnail_test.dart @@ -1,5 +1,6 @@ import 'dart:convert'; import 'dart:io'; +import 'dart:typed_data'; import 'package:apptive_grid_core/apptive_grid_core.dart'; import 'package:apptive_grid_form/src/widgets/attachment/thumbnail.dart'; @@ -10,6 +11,50 @@ import 'package:mocktail/mocktail.dart'; import 'common.dart'; import 'util/mocktail_custom_image_network.dart'; +import 'package:http/http.dart' as http; + +// Create a mock class for SvgLoader using mocktail + +class TestLoader extends SvgNetworkLoader { + const TestLoader({ + required String url, + this.keyName = 'A', + SvgTheme? theme, + ColorMapper? colorMapper, + }) : super( + url, + theme: theme, + colorMapper: colorMapper, + ); + final String keyName; + + @override + String provideSvg(Uint8List? message) { + return ''; + } + + @override + SvgCacheKey cacheKey(BuildContext? context) { + return SvgCacheKey( + theme: getTheme(context), + colorMapper: colorMapper, + keyData: keyName, + ); + } +} + +class _FakeHttpClient extends Fake implements http.Client { + @override + Future get(Uri url, {Map? headers}) async { + return http.Response(_svgStr, 200); + } +} + +const String _svgStr = ''' + + + +'''; void main() { group('Files', () { @@ -181,93 +226,31 @@ void main() { group('SVG Images', () { testWidgets('Shows image from url', (tester) async { - await mockNetworkImages( - image: - '''PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNyI+CjxwYXRoIGZpbGw9IiMwRkZGMDAiIHN0cm9rZT0iIzBGMEYwMCIgc3Ryb2tlLXdpZHRoPSIwIiBkPSJtNCw0djloOVY0eiIvPgo8L3N2Zz4=''', - () async { - final target = MaterialApp( - home: SizedBox( - width: 70, - height: 70, - child: Thumbnail( - attachment: Attachment( - name: 'svg', - url: Uri(path: '/uri'), - type: 'image/svg', - ), - ), - ), - ); - - await tester.pumpWidget(target); - - final imageUrl = - ((find.byType(SvgPicture).evaluate().first.widget as SvgPicture) - .bytesLoader as SvgNetworkLoader) - .url; - expect(imageUrl, '/uri'); - }); - }); + final http.Client fakeClient = _FakeHttpClient(); + final mockSvgLoader = SvgNetworkLoader('/uri', httpClient: fakeClient); - testWidgets('Shows image from large thumbnail', (tester) async { - await mockNetworkImages( - image: - '''PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNyI+CjxwYXRoIGZpbGw9IiMwRkZGMDAiIHN0cm9rZT0iIzBGMEYwMCIgc3Ryb2tlLXdpZHRoPSIwIiBkPSJtNCw0djloOVY0eiIvPgo8L3N2Zz4=''', - () async { - final target = MaterialApp( - home: SizedBox( - width: 70, - height: 70, - child: Thumbnail( - attachment: Attachment( - name: 'svg', - url: Uri(path: '/uri'), - largeThumbnail: Uri(path: '/largeThumbnailUri'), - type: 'image/svg', - ), - ), - ), - ); - - await tester.pumpWidget(target); - - final imageUrl = - ((find.byType(SvgPicture).evaluate().first.widget as SvgPicture) - .bytesLoader as SvgNetworkLoader) - .url; - expect(imageUrl, '/largeThumbnailUri'); - }); - }); - - testWidgets('Shows image from small thumbnail', (tester) async { - await mockNetworkImages( - image: - '''PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNyI+CjxwYXRoIGZpbGw9IiMwRkZGMDAiIHN0cm9rZT0iIzBGMEYwMCIgc3Ryb2tlLXdpZHRoPSIwIiBkPSJtNCw0djloOVY0eiIvPgo8L3N2Zz4=''', - () async { - final target = MaterialApp( - home: SizedBox( - width: 70, - height: 70, - child: Thumbnail( - attachment: Attachment( - name: 'svg', - url: Uri(path: '/uri'), - largeThumbnail: Uri(path: '/largeThumbnailUri'), - smallThumbnail: Uri(path: '/smallThumbnailUri'), - type: 'image/svg', - ), + final target = MaterialApp( + home: SizedBox( + width: 70, + height: 70, + child: Thumbnail( + attachment: Attachment( + name: 'svg', + url: Uri(path: '/uri'), + type: 'image/svg', ), + svgLoader: mockSvgLoader, ), - ); + ), + ); - await tester.pumpWidget(target); + await tester.pumpWidget(target); - final imageUrl = - ((find.byType(SvgPicture).evaluate().first.widget as SvgPicture) - .bytesLoader as SvgNetworkLoader) - .url; - expect(imageUrl, '/smallThumbnailUri'); - }); + final imageUrl = + ((find.byType(SvgPicture).evaluate().first.widget as SvgPicture) + .bytesLoader as SvgNetworkLoader) + .url; + expect(imageUrl, '/uri'); }); group('Add Attachment', () { diff --git a/packages/apptive_grid_grid_builder/example/android/app/build.gradle b/packages/apptive_grid_grid_builder/example/android/app/build.gradle index 4caff4e9..3fd0b298 100644 --- a/packages/apptive_grid_grid_builder/example/android/app/build.gradle +++ b/packages/apptive_grid_grid_builder/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,25 +22,17 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 33 + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' } - lintOptions { - disable 'InvalidPackage' - } - defaultConfig { - applicationId "com.example.example" - minSdkVersion 18 - targetSdkVersion 33 + applicationId "de.zweidenker.example" + minSdkVersion flutter.minSdkVersion + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -55,7 +48,3 @@ android { flutter { source '../..' } - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/packages/apptive_grid_grid_builder/example/android/build.gradle b/packages/apptive_grid_grid_builder/example/android/build.gradle index 36afcedd..941f2563 100644 --- a/packages/apptive_grid_grid_builder/example/android/build.gradle +++ b/packages/apptive_grid_grid_builder/example/android/build.gradle @@ -1,17 +1,3 @@ -buildscript { - ext.kotlin_version = '1.8.0' - repositories { - google() - mavenCentral() - jcenter() - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() @@ -22,6 +8,26 @@ allprojects { rootProject.buildDir = '../build' subprojects { + afterEvaluate { project -> + if (project.extensions.findByName("android") != null) { + Integer pluginCompileSdk = project.android.compileSdk + if (pluginCompileSdk != null && pluginCompileSdk < 31) { + project.logger.error( + "Warning: Overriding compileSdk version in Flutter plugin: " + + project.name + + " from " + + pluginCompileSdk + + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." + + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " + + project.name + + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." + ) + project.android { + compileSdk 31 + } + } + } + } project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { diff --git a/packages/apptive_grid_grid_builder/example/android/settings.gradle b/packages/apptive_grid_grid_builder/example/android/settings.gradle index 44e62bcf..b3bf9755 100644 --- a/packages/apptive_grid_grid_builder/example/android/settings.gradle +++ b/packages/apptive_grid_grid_builder/example/android/settings.gradle @@ -1,11 +1,26 @@ -include ':app' +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 + } + settings.ext.flutterSdkPath = flutterSdkPath() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.4.2" apply false + id "org.jetbrains.kotlin.android" version "1.8.0" apply false +} + +include ":app" diff --git a/packages/apptive_grid_grid_builder/example/ios/Flutter/AppFrameworkInfo.plist b/packages/apptive_grid_grid_builder/example/ios/Flutter/AppFrameworkInfo.plist index 4f8d4d24..8c6e5614 100644 --- a/packages/apptive_grid_grid_builder/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/apptive_grid_grid_builder/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/packages/apptive_grid_grid_builder/example/ios/Podfile b/packages/apptive_grid_grid_builder/example/ios/Podfile index 88359b22..0b62d79e 100644 --- a/packages/apptive_grid_grid_builder/example/ios/Podfile +++ b/packages/apptive_grid_grid_builder/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '14.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/apptive_grid_grid_builder/example/ios/Podfile.lock b/packages/apptive_grid_grid_builder/example/ios/Podfile.lock index 6cb02ecc..ca07f244 100644 --- a/packages/apptive_grid_grid_builder/example/ios/Podfile.lock +++ b/packages/apptive_grid_grid_builder/example/ios/Podfile.lock @@ -30,12 +30,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 +PODFILE CHECKSUM: fe5e039928e08cc3aa55730590fe5577354d32d2 -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/project.pbxproj b/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/project.pbxproj index 7e10010d..462a52b4 100644 --- a/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/project.pbxproj @@ -113,7 +113,6 @@ 1DD75626F7CDB1BE49583F93 /* Pods-Runner.release.xcconfig */, AE712BAD9C30F328E0B10DB6 /* Pods-Runner.profile.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -156,7 +155,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -343,7 +342,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -365,7 +364,11 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -425,7 +428,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -474,7 +477,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -497,7 +500,11 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", @@ -524,7 +531,11 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 14.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); LIBRARY_SEARCH_PATHS = ( "$(inherited)", "$(PROJECT_DIR)/Flutter", diff --git a/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index b52b2e69..e67b2808 100644 --- a/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/apptive_grid_grid_builder/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ ( - (Set states) { - if (states.contains(MaterialState.disabled)) { + fillColor: + WidgetStateProperty.resolveWith((Set states) { + if (states.contains(WidgetState.disabled)) { return null; } - if (states.contains(MaterialState.selected)) { + if (states.contains(WidgetState.selected)) { return colorScheme.primary; } return null; }), ), radioTheme: RadioThemeData( - fillColor: MaterialStateProperty.resolveWith( - (Set states) { - if (states.contains(MaterialState.disabled)) { + fillColor: + WidgetStateProperty.resolveWith((Set states) { + if (states.contains(WidgetState.disabled)) { return null; } - if (states.contains(MaterialState.selected)) { + if (states.contains(WidgetState.selected)) { return colorScheme.primary; } return null; }), ), switchTheme: SwitchThemeData( - thumbColor: MaterialStateProperty.resolveWith( - (Set states) { - if (states.contains(MaterialState.disabled)) { + thumbColor: + WidgetStateProperty.resolveWith((Set states) { + if (states.contains(WidgetState.disabled)) { return null; } - if (states.contains(MaterialState.selected)) { + if (states.contains(WidgetState.selected)) { return colorScheme.primary; } return null; }), - trackColor: MaterialStateProperty.resolveWith( - (Set states) { - if (states.contains(MaterialState.disabled)) { + trackColor: + WidgetStateProperty.resolveWith((Set states) { + if (states.contains(WidgetState.disabled)) { return null; } - if (states.contains(MaterialState.selected)) { + if (states.contains(WidgetState.selected)) { return colorScheme.primary; } return null; }), ), + listTileTheme: baseTheme.listTileTheme.copyWith( + titleTextStyle: baseTheme.textTheme.titleMedium, + ), ); } @@ -276,7 +290,7 @@ class ApptiveGridTheme { ), titleSmall: TextStyle( fontSize: 14, - fontWeight: FontWeight.w500, + fontWeight: FontWeight.w400, package: fontPackage, ), bodyLarge: TextStyle( @@ -324,8 +338,8 @@ class ApptiveGridTheme { ); } - Color _resolveButtonColor(Set states) { - if (states.contains(MaterialState.disabled)) { + Color _resolveButtonColor(Set states) { + if (states.contains(WidgetState.disabled)) { return ApptiveGridColors.lightGrey.withOpacity( _withBrightness( light: 0.3, diff --git a/packages/apptive_grid_theme/test/src/apptive_grid_theme_test.dart b/packages/apptive_grid_theme/test/src/apptive_grid_theme_test.dart index de4103a6..2d0486b4 100644 --- a/packages/apptive_grid_theme/test/src/apptive_grid_theme_test.dart +++ b/packages/apptive_grid_theme/test/src/apptive_grid_theme_test.dart @@ -480,7 +480,7 @@ void main() { fileName: 'progress_indicator', scenarios: { 'Circular': const CircularProgressIndicator( - value: 0.5, + value: 0.0, ), 'Linear': const LinearProgressIndicator( value: 0.5, diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/alert_dialog.png b/packages/apptive_grid_theme/test/src/goldens/ci/alert_dialog.png index 8c75f887..0f7d84c3 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/alert_dialog.png and b/packages/apptive_grid_theme/test/src/goldens/ci/alert_dialog.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/app_bar.png b/packages/apptive_grid_theme/test/src/goldens/ci/app_bar.png index 9adae7d1..da6ef60c 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/app_bar.png and b/packages/apptive_grid_theme/test/src/goldens/ci/app_bar.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-colors.png b/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-colors.png index e8200602..2907713e 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-colors.png and b/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-colors.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-icons.png b/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-icons.png index f3ea9815..a0fca48c 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-icons.png and b/packages/apptive_grid_theme/test/src/goldens/ci/apptive-grid-icons.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/bottom_navigation_bar.png b/packages/apptive_grid_theme/test/src/goldens/ci/bottom_navigation_bar.png index 6028e053..1453dd4c 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/bottom_navigation_bar.png and b/packages/apptive_grid_theme/test/src/goldens/ci/bottom_navigation_bar.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/buttons.png b/packages/apptive_grid_theme/test/src/goldens/ci/buttons.png index 547533e9..788b9a6a 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/buttons.png and b/packages/apptive_grid_theme/test/src/goldens/ci/buttons.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/card.png b/packages/apptive_grid_theme/test/src/goldens/ci/card.png index 334fe36e..7e02542b 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/card.png and b/packages/apptive_grid_theme/test/src/goldens/ci/card.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/checkbox.png b/packages/apptive_grid_theme/test/src/goldens/ci/checkbox.png index 269d49de..97cbdffe 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/checkbox.png and b/packages/apptive_grid_theme/test/src/goldens/ci/checkbox.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/chips.png b/packages/apptive_grid_theme/test/src/goldens/ci/chips.png index 89fff5cb..99a18740 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/chips.png and b/packages/apptive_grid_theme/test/src/goldens/ci/chips.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/divider.png b/packages/apptive_grid_theme/test/src/goldens/ci/divider.png index 7cc90c61..d5cc7ffa 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/divider.png and b/packages/apptive_grid_theme/test/src/goldens/ci/divider.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/list_tile.png b/packages/apptive_grid_theme/test/src/goldens/ci/list_tile.png index 4b1dc0dc..5bdeb34b 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/list_tile.png and b/packages/apptive_grid_theme/test/src/goldens/ci/list_tile.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/progress_indicator.png b/packages/apptive_grid_theme/test/src/goldens/ci/progress_indicator.png index 0e159698..94abd410 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/progress_indicator.png and b/packages/apptive_grid_theme/test/src/goldens/ci/progress_indicator.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/radio.png b/packages/apptive_grid_theme/test/src/goldens/ci/radio.png index 25c11cba..6e86ad53 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/radio.png and b/packages/apptive_grid_theme/test/src/goldens/ci/radio.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/slider.png b/packages/apptive_grid_theme/test/src/goldens/ci/slider.png index cc3a7be6..a0bd43cd 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/slider.png and b/packages/apptive_grid_theme/test/src/goldens/ci/slider.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/switch.png b/packages/apptive_grid_theme/test/src/goldens/ci/switch.png index e4389413..8c84d2b9 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/switch.png and b/packages/apptive_grid_theme/test/src/goldens/ci/switch.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/tab_bar.png b/packages/apptive_grid_theme/test/src/goldens/ci/tab_bar.png index 370efaf1..83238f18 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/tab_bar.png and b/packages/apptive_grid_theme/test/src/goldens/ci/tab_bar.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/text.png b/packages/apptive_grid_theme/test/src/goldens/ci/text.png index cfabe358..03ba5625 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/text.png and b/packages/apptive_grid_theme/test/src/goldens/ci/text.png differ diff --git a/packages/apptive_grid_theme/test/src/goldens/ci/text_field.png b/packages/apptive_grid_theme/test/src/goldens/ci/text_field.png index 7d1c3f90..b4078121 100644 Binary files a/packages/apptive_grid_theme/test/src/goldens/ci/text_field.png and b/packages/apptive_grid_theme/test/src/goldens/ci/text_field.png differ diff --git a/packages/apptive_grid_user_management/example/android/app/build.gradle b/packages/apptive_grid_user_management/example/android/app/build.gradle index ee07a0ab..3fd0b298 100644 --- a/packages/apptive_grid_user_management/example/android/app/build.gradle +++ b/packages/apptive_grid_user_management/example/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,21 +22,8 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - android { - compileSdkVersion 33 - - compileOptions { - sourceCompatibility JavaVersion.VERSION_1_8 - targetCompatibility JavaVersion.VERSION_1_8 - } - - kotlinOptions { - jvmTarget = '1.8' - } + compileSdkVersion 34 sourceSets { main.java.srcDirs += 'src/main/kotlin' @@ -43,8 +31,8 @@ android { defaultConfig { applicationId "de.zweidenker.example" - minSdkVersion 18 - targetSdkVersion 33 + minSdkVersion flutter.minSdkVersion + targetSdkVersion 34 versionCode flutterVersionCode.toInteger() versionName flutterVersionName } @@ -60,7 +48,3 @@ android { flutter { source '../..' } - -dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" -} diff --git a/packages/apptive_grid_user_management/example/android/build.gradle b/packages/apptive_grid_user_management/example/android/build.gradle index a7e96637..941f2563 100644 --- a/packages/apptive_grid_user_management/example/android/build.gradle +++ b/packages/apptive_grid_user_management/example/android/build.gradle @@ -1,25 +1,33 @@ -buildscript { - ext.kotlin_version = '1.8.0' - repositories { - google() - mavenCentral()\ - } - - dependencies { - classpath 'com.android.tools.build:gradle:7.4.2' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" - } -} - allprojects { repositories { google() mavenCentral() + jcenter() } } rootProject.buildDir = '../build' subprojects { + afterEvaluate { project -> + if (project.extensions.findByName("android") != null) { + Integer pluginCompileSdk = project.android.compileSdk + if (pluginCompileSdk != null && pluginCompileSdk < 31) { + project.logger.error( + "Warning: Overriding compileSdk version in Flutter plugin: " + + project.name + + " from " + + pluginCompileSdk + + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." + + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " + + project.name + + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." + ) + project.android { + compileSdk 31 + } + } + } + } project.buildDir = "${rootProject.buildDir}/${project.name}" } subprojects { diff --git a/packages/apptive_grid_user_management/example/android/settings.gradle b/packages/apptive_grid_user_management/example/android/settings.gradle index 44e62bcf..b3bf9755 100644 --- a/packages/apptive_grid_user_management/example/android/settings.gradle +++ b/packages/apptive_grid_user_management/example/android/settings.gradle @@ -1,11 +1,26 @@ -include ':app' +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 + } + settings.ext.flutterSdkPath = flutterSdkPath() -def localPropertiesFile = new File(rootProject.projectDir, "local.properties") -def properties = new Properties() + includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") -assert localPropertiesFile.exists() -localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} -def flutterSdkPath = properties.getProperty("flutter.sdk") -assert flutterSdkPath != null, "flutter.sdk not set in local.properties" -apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" +plugins { + id "dev.flutter.flutter-plugin-loader" version "1.0.0" + id "com.android.application" version "7.4.2" apply false + id "org.jetbrains.kotlin.android" version "1.8.0" apply false +} + +include ":app" diff --git a/packages/apptive_grid_user_management/example/ios/Flutter/AppFrameworkInfo.plist b/packages/apptive_grid_user_management/example/ios/Flutter/AppFrameworkInfo.plist index 9625e105..7c569640 100644 --- a/packages/apptive_grid_user_management/example/ios/Flutter/AppFrameworkInfo.plist +++ b/packages/apptive_grid_user_management/example/ios/Flutter/AppFrameworkInfo.plist @@ -21,6 +21,6 @@ CFBundleVersion 1.0 MinimumOSVersion - 11.0 + 12.0 diff --git a/packages/apptive_grid_user_management/example/ios/Podfile b/packages/apptive_grid_user_management/example/ios/Podfile index 88359b22..0b62d79e 100644 --- a/packages/apptive_grid_user_management/example/ios/Podfile +++ b/packages/apptive_grid_user_management/example/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -# platform :ios, '11.0' +platform :ios, '14.0' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. ENV['COCOAPODS_DISABLE_STATS'] = 'true' diff --git a/packages/apptive_grid_user_management/example/ios/Podfile.lock b/packages/apptive_grid_user_management/example/ios/Podfile.lock index 6cb02ecc..ca07f244 100644 --- a/packages/apptive_grid_user_management/example/ios/Podfile.lock +++ b/packages/apptive_grid_user_management/example/ios/Podfile.lock @@ -30,12 +30,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher_ios/ios" SPEC CHECKSUMS: - Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854 - flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - path_provider_foundation: 29f094ae23ebbca9d3d0cec13889cd9060c0e943 + Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7 + flutter_secure_storage: d33dac7ae2ea08509be337e775f6b59f1ff45f12 + path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a - url_launcher_ios: 08a3dfac5fb39e8759aeb0abbd5d9480f30fc8b4 + url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe -PODFILE CHECKSUM: ef19549a9bc3046e7bb7d2fab4d021637c0c58a3 +PODFILE CHECKSUM: fe5e039928e08cc3aa55730590fe5577354d32d2 -COCOAPODS: 1.13.0 +COCOAPODS: 1.15.2 diff --git a/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/project.pbxproj b/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/project.pbxproj index 602901b9..4022ea81 100644 --- a/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/project.pbxproj +++ b/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/project.pbxproj @@ -155,7 +155,7 @@ 97C146E61CF9000F007C117D /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 1430; + LastUpgradeCheck = 1510; ORGANIZATIONNAME = ""; TargetAttributes = { 97C146ED1CF9000F007C117D = { @@ -342,7 +342,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; @@ -420,7 +420,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -469,7 +469,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SUPPORTED_PLATFORMS = iphoneos; diff --git a/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme index a6b826db..5e31d3d3 100644 --- a/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/packages/apptive_grid_user_management/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -1,6 +1,6 @@ { ApptiveGrid.getClient(context, listen: false) .logout() .then((_) { - Navigator.of(context).pushReplacement( - MaterialPageRoute( - builder: (_) { - return const LoginRegistrationPage(); - }, - ), - ); + if (context.mounted) { + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (_) { + return const LoginRegistrationPage(); + }, + ), + ); + } }); }, child: const Text('Logout'), diff --git a/packages/apptive_grid_user_management/lib/src/delete_account.dart b/packages/apptive_grid_user_management/lib/src/delete_account.dart index b8981440..c1bcc9db 100644 --- a/packages/apptive_grid_user_management/lib/src/delete_account.dart +++ b/packages/apptive_grid_user_management/lib/src/delete_account.dart @@ -158,7 +158,7 @@ class DeleteAccountState extends State { }); if (deleted == true) { widget.onAccountDeleted(); - if (mounted) { + if (context.mounted) { Navigator.of(context).pop(); } } diff --git a/packages/apptive_grid_user_management/pubspec.yaml b/packages/apptive_grid_user_management/pubspec.yaml index acbba4a3..e804067b 100644 --- a/packages/apptive_grid_user_management/pubspec.yaml +++ b/packages/apptive_grid_user_management/pubspec.yaml @@ -13,7 +13,7 @@ dependencies: flutter: sdk: flutter http: '>=0.13.6 <2.0.0' - intl: ^0.18.0 + intl: ^0.19.0 password_rule_check: ^0.2.1 uni_links: ^0.5.1