diff --git a/.fvmrc b/.fvmrc
index a06c1dbd..5a92dd32 100644
--- a/.fvmrc
+++ b/.fvmrc
@@ -1,3 +1,3 @@
{
- "flutter": "3.38.3"
+ "flutter": "3.38.8"
}
\ No newline at end of file
diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml
index 08ac1451..5751b813 100644
--- a/.github/workflows/ci-cd.yml
+++ b/.github/workflows/ci-cd.yml
@@ -34,9 +34,14 @@ jobs:
flutter-version: ${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
channel: stable
cache: true
- cache-key: flutter
+ cache-key: flutter-${{ steps.fvm-config-action.outputs.FLUTTER_VERSION }}
cache-path: ${{ runner.tool_cache }}/flutter
+ - name: Check versions
+ run: |
+ flutter --version
+ dart --version
+
- name: Get dependencies
run: flutter pub get
diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
index 7c569640..1dc6cf76 100644
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 12.0
+ 13.0
diff --git a/ios/Podfile b/ios/Podfile
index e549ee22..c38adb31 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '12.0'
+platform :ios, '13.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
@@ -39,5 +39,9 @@ end
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
+
+ target.build_configurations.each do |config|
+ config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
+ end
end
end
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 7e4012a7..4070ec8e 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -40,30 +40,35 @@ PODS:
- Flutter
- flutter_native_splash (2.4.3):
- Flutter
+ - local_auth_darwin (0.0.1):
+ - Flutter
+ - FlutterMacOS
+ - package_info_plus (0.4.5):
+ - Flutter
- path_provider_foundation (0.0.1):
- Flutter
- FlutterMacOS
- permission_handler_apple (9.3.0):
- Flutter
- - SDWebImage (5.21.0):
- - SDWebImage/Core (= 5.21.0)
- - SDWebImage/Core (5.21.0)
+ - SDWebImage (5.21.5):
+ - SDWebImage/Core (= 5.21.5)
+ - SDWebImage/Core (5.21.5)
- shared_preferences_foundation (0.0.1):
- Flutter
- FlutterMacOS
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
- - sqlite3 (3.49.1):
- - sqlite3/common (= 3.49.1)
- - sqlite3/common (3.49.1)
- - sqlite3/dbstatvtab (3.49.1):
+ - sqlite3 (3.49.2):
+ - sqlite3/common (= 3.49.2)
+ - sqlite3/common (3.49.2)
+ - sqlite3/dbstatvtab (3.49.2):
- sqlite3/common
- - sqlite3/fts5 (3.49.1):
+ - sqlite3/fts5 (3.49.2):
- sqlite3/common
- - sqlite3/perf-threadsafe (3.49.1):
+ - sqlite3/perf-threadsafe (3.49.2):
- sqlite3/common
- - sqlite3/rtree (3.49.1):
+ - sqlite3/rtree (3.49.2):
- sqlite3/common
- sqlite3_flutter_libs (0.0.1):
- Flutter
@@ -83,6 +88,8 @@ DEPENDENCIES:
- Flutter (from `Flutter`)
- flutter_local_notifications (from `.symlinks/plugins/flutter_local_notifications/ios`)
- flutter_native_splash (from `.symlinks/plugins/flutter_native_splash/ios`)
+ - local_auth_darwin (from `.symlinks/plugins/local_auth_darwin/darwin`)
+ - package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
- path_provider_foundation (from `.symlinks/plugins/path_provider_foundation/darwin`)
- permission_handler_apple (from `.symlinks/plugins/permission_handler_apple/ios`)
- shared_preferences_foundation (from `.symlinks/plugins/shared_preferences_foundation/darwin`)
@@ -109,6 +116,10 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/flutter_local_notifications/ios"
flutter_native_splash:
:path: ".symlinks/plugins/flutter_native_splash/ios"
+ local_auth_darwin:
+ :path: ".symlinks/plugins/local_auth_darwin/darwin"
+ package_info_plus:
+ :path: ".symlinks/plugins/package_info_plus/ios"
path_provider_foundation:
:path: ".symlinks/plugins/path_provider_foundation/darwin"
permission_handler_apple:
@@ -127,19 +138,21 @@ SPEC CHECKSUMS:
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: b159e0c068aef54932bb15dc9fd1571818edaf49
- Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
- flutter_local_notifications: df98d66e515e1ca797af436137b4459b160ad8c9
+ Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
+ flutter_local_notifications: ff50f8405aaa0ccdc7dcfb9022ca192e8ad9688f
flutter_native_splash: df59bb2e1421aa0282cb2e95618af4dcb0c56c29
+ local_auth_darwin: 63c73d6d28cc3e239be2b6aa460ea6e317cd5100
+ package_info_plus: c0502532a26c7662a62a356cebe2692ec5fe4ec4
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
permission_handler_apple: 9878588469a2b0d0fc1e048d9f43605f92e6cec2
- SDWebImage: f84b0feeb08d2d11e6a9b843cb06d75ebf5b8868
+ SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
- sqlite3: fc1400008a9b3525f5914ed715a5d1af0b8f4983
+ sqlite3: 3c950dc86011117c307eb0b28c4a7bb449dce9f1
sqlite3_flutter_libs: cc304edcb8e1d8c595d1b08c7aeb46a47691d9db
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
-PODFILE CHECKSUM: 4305caec6b40dde0ae97be1573c53de1882a07e5
+PODFILE CHECKSUM: 9825c73c49f0e8b8218ad917d16459c48629562e
COCOAPODS: 1.16.2
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 41880065..76f392c8 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -10,12 +10,12 @@
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+ 60717B488D117C302D51AD39 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C46632FB1D4031F1C40B27AD /* Pods_Runner.framework */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
- 7B79FD3812491357C7C5FC49 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B46397FFB47DD9AC71FA59C /* Pods_RunnerTests.framework */; };
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
- 9EEE9CFD1687A2D041886DAC /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7C2757B8039543ECD685C8D2 /* Pods_Runner.framework */; };
+ B6B73809C111246E5879609E /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5BEA362A8E4D1D74E4515E2A /* Pods_RunnerTests.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -42,19 +42,18 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 12C7AD89E8E781A4BFC539F1 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; };
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; };
331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; };
331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
- 4B46397FFB47DD9AC71FA59C /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 4FCD4FD40BD97E34D03FCDA6 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
- 5CF8043730145DC9CD3F4BF0 /* 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 = ""; };
+ 475C63D1361FE5A5162726B7 /* 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 = ""; };
+ 5BEA362A8E4D1D74E4515E2A /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; };
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 7C2757B8039543ECD685C8D2 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 89F66B4ACA61A6ED13CC09E2 /* 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 = ""; };
+ 7E765B070269A0B32DDAEC06 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; };
9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; };
97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -62,9 +61,10 @@
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- B64959616C10CCE4F34B5510 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
- C4D8942E64375523F16CE99E /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = ""; };
- CDC781DEDE80B5D260EC7F4F /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = ""; };
+ C03D3953861AE792AFE87028 /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = ""; };
+ C46632FB1D4031F1C40B27AD /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ C5FD826CD5C9D80E8465B6AE /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = ""; };
+ E18EF08C0830BCDB09043362 /* 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 = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -72,7 +72,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 7B79FD3812491357C7C5FC49 /* Pods_RunnerTests.framework in Frameworks */,
+ B6B73809C111246E5879609E /* Pods_RunnerTests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -80,7 +80,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 9EEE9CFD1687A2D041886DAC /* Pods_Runner.framework in Frameworks */,
+ 60717B488D117C302D51AD39 /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -90,12 +90,12 @@
2B7BE9956F74F52F280FD060 /* Pods */ = {
isa = PBXGroup;
children = (
- 4FCD4FD40BD97E34D03FCDA6 /* Pods-Runner.debug.xcconfig */,
- 5CF8043730145DC9CD3F4BF0 /* Pods-Runner.release.xcconfig */,
- 89F66B4ACA61A6ED13CC09E2 /* Pods-Runner.profile.xcconfig */,
- B64959616C10CCE4F34B5510 /* Pods-RunnerTests.debug.xcconfig */,
- CDC781DEDE80B5D260EC7F4F /* Pods-RunnerTests.release.xcconfig */,
- C4D8942E64375523F16CE99E /* Pods-RunnerTests.profile.xcconfig */,
+ C5FD826CD5C9D80E8465B6AE /* Pods-Runner.debug.xcconfig */,
+ E18EF08C0830BCDB09043362 /* Pods-Runner.release.xcconfig */,
+ 475C63D1361FE5A5162726B7 /* Pods-Runner.profile.xcconfig */,
+ C03D3953861AE792AFE87028 /* Pods-RunnerTests.debug.xcconfig */,
+ 7E765B070269A0B32DDAEC06 /* Pods-RunnerTests.release.xcconfig */,
+ 12C7AD89E8E781A4BFC539F1 /* Pods-RunnerTests.profile.xcconfig */,
);
path = Pods;
sourceTree = "";
@@ -108,11 +108,11 @@
path = RunnerTests;
sourceTree = "";
};
- 944B175A5F520A814EAB6758 /* Frameworks */ = {
+ 8110465CD8424934EFBDF0FA /* Frameworks */ = {
isa = PBXGroup;
children = (
- 7C2757B8039543ECD685C8D2 /* Pods_Runner.framework */,
- 4B46397FFB47DD9AC71FA59C /* Pods_RunnerTests.framework */,
+ C46632FB1D4031F1C40B27AD /* Pods_Runner.framework */,
+ 5BEA362A8E4D1D74E4515E2A /* Pods_RunnerTests.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -136,7 +136,7 @@
97C146EF1CF9000F007C117D /* Products */,
331C8082294A63A400263BE5 /* RunnerTests */,
2B7BE9956F74F52F280FD060 /* Pods */,
- 944B175A5F520A814EAB6758 /* Frameworks */,
+ 8110465CD8424934EFBDF0FA /* Frameworks */,
);
sourceTree = "";
};
@@ -171,7 +171,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */;
buildPhases = (
- BC6D36AA21B1C35DE23D3B33 /* [CP] Check Pods Manifest.lock */,
+ ADF665451747D4BB42C12B05 /* [CP] Check Pods Manifest.lock */,
331C807D294A63A400263BE5 /* Sources */,
331C807F294A63A400263BE5 /* Resources */,
09967A90A294A1D6A4428C6B /* Frameworks */,
@@ -190,15 +190,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- F6FA79FDA92D20292C44C4B1 /* [CP] Check Pods Manifest.lock */,
+ 5CF2A4C07BB70DFF72346B2D /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- 211392328957DBA96447070D /* [CP] Embed Pods Frameworks */,
- 6090A52EFEF53161A56AE5DE /* [CP] Copy Pods Resources */,
+ 279A6739CEE2A8E4D77C3063 /* [CP] Embed Pods Frameworks */,
+ F6CDA2B012B301A90701A2B4 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -270,7 +270,7 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 211392328957DBA96447070D /* [CP] Embed Pods Frameworks */ = {
+ 279A6739CEE2A8E4D77C3063 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -303,21 +303,26 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
- 6090A52EFEF53161A56AE5DE /* [CP] Copy Pods Resources */ = {
+ 5CF2A4C07BB70DFF72346B2D /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "[CP] Copy Pods Resources";
+ inputPaths = (
+ "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+ "${PODS_ROOT}/Manifest.lock",
+ );
+ name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
+ );
+ outputPaths = (
+ "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
+ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
9740EEB61CF901F6004384FC /* Run Script */ = {
@@ -335,7 +340,7 @@
shellPath = /bin/sh;
shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
};
- BC6D36AA21B1C35DE23D3B33 /* [CP] Check Pods Manifest.lock */ = {
+ ADF665451747D4BB42C12B05 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -357,26 +362,21 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
- F6FA79FDA92D20292C44C4B1 /* [CP] Check Pods Manifest.lock */ = {
+ F6CDA2B012B301A90701A2B4 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
- inputPaths = (
- "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
- "${PODS_ROOT}/Manifest.lock",
- );
- name = "[CP] Check Pods Manifest.lock";
+ name = "[CP] Copy Pods Resources";
outputFileListPaths = (
- );
- outputPaths = (
- "$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
@@ -470,7 +470,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
@@ -506,7 +506,7 @@
};
331C8088294A63A400263BE5 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = B64959616C10CCE4F34B5510 /* Pods-RunnerTests.debug.xcconfig */;
+ baseConfigurationReference = C03D3953861AE792AFE87028 /* Pods-RunnerTests.debug.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -524,7 +524,7 @@
};
331C8089294A63A400263BE5 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = CDC781DEDE80B5D260EC7F4F /* Pods-RunnerTests.release.xcconfig */;
+ baseConfigurationReference = 7E765B070269A0B32DDAEC06 /* Pods-RunnerTests.release.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -540,7 +540,7 @@
};
331C808A294A63A400263BE5 /* Profile */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = C4D8942E64375523F16CE99E /* Pods-RunnerTests.profile.xcconfig */;
+ baseConfigurationReference = 12C7AD89E8E781A4BFC539F1 /* Pods-RunnerTests.profile.xcconfig */;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
@@ -601,7 +601,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@@ -650,7 +650,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 13.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SUPPORTED_PLATFORMS = iphoneos;
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 15cada48..e3773d42 100644
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -26,6 +26,7 @@
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ customLLDBInitFile = "$(SRCROOT)/Flutter/ephemeral/flutter_lldbinit"
shouldUseLaunchSchemeArgsEnv = "YES">
- t.idCategory ==
- budgets[index].idCategory,
+ t.idCategory == budget.idCategory ||
+ t.categoryParent == budget.idCategory,
)
.fold(0.0, (sum, t) => sum + t.amount)
.toCurrency(),
);
- Budget budget = budgets.elementAt(index);
CategoryTransaction category = categories
.firstWhere(
(cat) => cat.id == budget.idCategory,
diff --git a/lib/pages/transactions/transactions_page.dart b/lib/pages/transactions/transactions_page.dart
index d1e20d17..8534c518 100644
--- a/lib/pages/transactions/transactions_page.dart
+++ b/lib/pages/transactions/transactions_page.dart
@@ -58,62 +58,67 @@ class _TransactionsPageState extends ConsumerState
);
final transactionsExistsAsync = ref.watch(transactionsExistsProvider);
- return transactionsExistsAsync.when(
- data: (transactionsExists) {
- if (transactionsExists) {
- return NotificationListener(
- onNotification: (notification) {
- // snap the header open/close when it's in between the two states
- final double scrollDistance = headerMaxHeight - headerMinHeight;
+ return NotificationListener(
+ onNotification: (notification) {
+ // snap the header open/close when it's in between the two states
+ final double scrollDistance = headerMaxHeight - headerMinHeight;
- if (_scrollController.offset > 0 &&
- _scrollController.offset < scrollDistance) {
- final double snapOffset =
- (_scrollController.offset / scrollDistance > 0.5)
- ? scrollDistance + 10
- : 0;
+ if (_scrollController.offset > 0 &&
+ _scrollController.offset < scrollDistance) {
+ final double snapOffset =
+ (_scrollController.offset / scrollDistance > 0.5)
+ ? scrollDistance + 10
+ : 0;
- //! the app freezes on animateTo
- // // Future.microtask(() => _scrollController.animateTo(snapOffset,
- // // duration: Duration(milliseconds: 200), curve: Curves.easeIn));
+ //! the app freezes on animateTo
+ // // Future.microtask(() => _scrollController.animateTo(snapOffset,
+ // // duration: Duration(milliseconds: 200), curve: Curves.easeIn));
- // microtask() runs the callback after the build ends
- Future.microtask(() => _scrollController.jumpTo(snapOffset));
- }
- return false;
- },
- child: NestedScrollView(
- controller: _scrollController,
- headerSliverBuilder: (context, innerBoxIsScrolled) {
- return [
- SliverPersistentHeader(
- delegate: CustomSliverDelegate(
- ticker: this,
- myTabs: myTabs,
- tabController: _tabController,
- expandedHeight: headerMaxHeight,
- minHeight: headerMinHeight,
- ),
- pinned: true,
- floating: true,
+ // microtask() runs the callback after the build ends
+ Future.microtask(() => _scrollController.jumpTo(snapOffset));
+ }
+ return false;
+ },
+ child: transactionsExistsAsync.when(
+ data: (transactionsExists) {
+ if (transactionsExists) {
+ return LayoutBuilder(
+ key: ValueKey(transactionsExists),
+ builder: (context, constraints) {
+ return NestedScrollView(
+ controller: _scrollController,
+ headerSliverBuilder: (context, innerBoxIsScrolled) {
+ return [
+ SliverPersistentHeader(
+ delegate: CustomSliverDelegate(
+ ticker: this,
+ myTabs: myTabs,
+ tabController: _tabController,
+ expandedHeight: headerMaxHeight,
+ minHeight: headerMinHeight,
+ ),
+ pinned: true,
+ floating: true,
+ ),
+ ];
+ },
+ body: TabBarView(
+ controller: _tabController,
+ children: const [ListTab(), CategoriesTab(), AccountsTab()],
),
- ];
+ );
},
- body: TabBarView(
- controller: _tabController,
- children: const [ListTab(), CategoriesTab(), AccountsTab()],
- ),
- ),
- );
- }
+ );
+ }
- return const AddTransactionCard();
- },
- loading: () => const Center(child: CircularProgressIndicator()),
- error: (error, stack) => Center(
- child: Text(
- "An error occurred: $error",
- style: Theme.of(context).textTheme.bodySmall,
+ return const AddTransactionCard();
+ },
+ loading: () => const Center(child: CircularProgressIndicator()),
+ error: (error, stack) => Center(
+ child: Text(
+ "An error occurred: $error",
+ style: Theme.of(context).textTheme.bodySmall,
+ ),
),
),
);
diff --git a/lib/providers/categories_provider.dart b/lib/providers/categories_provider.dart
index 5bab7cb3..da456b6b 100644
--- a/lib/providers/categories_provider.dart
+++ b/lib/providers/categories_provider.dart
@@ -234,7 +234,11 @@ Future