diff --git a/.github/workflows/dart.yml b/.github/workflows/dart.yml
index 4bfb49c..2991702 100644
--- a/.github/workflows/dart.yml
+++ b/.github/workflows/dart.yml
@@ -10,24 +10,24 @@ on:
#A workflow run is made up of one or more jobs. Jobs run in parallel by default.
jobs:
- Unit_Tests:
- #The type of machine to run the job on. [windows,macos, ubuntu , self-hosted]
- runs-on: ubuntu-latest
- #sequence of tasks called
- steps:
- # The branch or tag ref that triggered the workflow will be checked out.
- # https://github.com/actions/checkout
- - uses: actions/checkout@v1
- # Setup a flutter environment.
- # https://github.com/marketplace/actions/flutter-action
- - uses: subosito/flutter-action@v1.4.0
- with:
- flutter-version: '1.20.1'
- - run: flutter pub get
- # run static analysis code
- # - run: flutter analyze
- # run flutter widgets tests and unit tests
- - run: flutter test
+# Unit_Tests:
+# #The type of machine to run the job on. [windows,macos, ubuntu , self-hosted]
+# runs-on: ubuntu-latest
+# #sequence of tasks called
+# steps:
+# # The branch or tag ref that triggered the workflow will be checked out.
+# # https://github.com/actions/checkout
+# - uses: actions/checkout@v1
+# # Setup a flutter environment.
+# # https://github.com/marketplace/actions/flutter-action
+# - uses: subosito/flutter-action@v1.4.0
+# with:
+# flutter-version: '1.22.5'
+# - run: flutter pub get
+# # run static analysis code
+# # - run: flutter analyze
+# # run flutter widgets tests and unit tests
+# - run: flutter test
@@ -64,7 +64,7 @@ jobs:
# if: github.event_name != 'pull_request'
runs-on: ubuntu-latest
name: Build APK
- needs: [Unit_Tests]
+# needs: [Unit_Tests]
steps:
- uses: actions/checkout@v1
- uses: actions/setup-java@v1
@@ -75,7 +75,7 @@ jobs:
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
- uses: subosito/flutter-action@v1.4.0
with:
- flutter-version: '1.20.1'
+ flutter-version: '1.22.5'
- run: flutter build apk --split-per-abi
env:
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
diff --git a/.zshrc b/.zshrc
new file mode 100644
index 0000000..325b63b
--- /dev/null
+++ b/.zshrc
@@ -0,0 +1 @@
+export LANG=en_US.UTF-8
diff --git a/README.md b/README.md
index 1be8de2..745c8cc 100755
--- a/README.md
+++ b/README.md
@@ -23,102 +23,16 @@
+---
## About
-InstaSmart is a Flutter app to easily plan and beautify your Instagram feed.
-
-
-A project built for [Orbital](https://orbital.comp.nus.edu.sg/) 2020 (CP2106: Independent Software Development Project Module), InstaSmart attained the highest level of achievement - [Artemis](https://nusskylab-dev.comp.nus.edu.sg/public_views/public_projects) - in the module. The project report with all the project specifications and testing details can be found [here](https://docs.google.com/document/d/1zLvbWGw6q75HyQKes5T7n6x1hmygoy8gyzssS_MPyGE/edit?usp=sharing).
-
-## Features
-
-
-
-* **Explore Frames**
- - **Browse and Filter:** Users can browse through a collection of frames. They can also filter the frames based on a set of themes like ‘minimalist’ or ‘landscape’.
- - **Liking Functionality:** Frames can be ‘liked’ and ‘unliked’ by the user. The total likes across all users will be stored in the database and will be displayed on each frame.
- - **Order:** The frames will be ordered based on popularity (number of likes).
- - **Liked Frames:** A separate page for ‘liked frames’ which will show all the frames liked by a user.
-
-
-* **Generate Grids**
- - **Add Images:** Tapping a frame opens the generate grid page. Users can then add images to the frame from their gallery and see how the grid will look like
-Reorder: The images can be reordered in the grid by dragging and dropping and finalising the grid.
- - **Save to Gallery:** Once the grid is finalised, the user can save the grid to the gallery by clicking a button. This will result in the frame being split into parts and applied as background to each of the images which are then saved.
- - **Add to Preview:** The grid can also be added to the Preview Screen to see how it will look on an instagram feed.
- - **Post to Instagram:** All images can be directly posted to Instagram from the app. The order to post will be shown and the user simply has to tap the images in the correct order to post.
-
-
-
- | Create Grids |
- Save to Gallery |
- Post to Instagram |
-
-
-  |
-  |
-  |
-
-
-
-
-
-
-
-
-* **Feed Preview**
- - **Plan Instagram Feed:** Users can plan their feed by previewing how their Insta feed will look like after uploading their photos.
- - **Add Images:** Users can add multiple photos from their gallery.
- - **Reorder:** The images can be reordered in the grid by dragging and dropping and finalising the grid.
- - **Others:** Double tapping a photo opens an enlarged zoomable popup of it. Clicking on a photo results in a Popup allowing the users to do the following:
- * Schedule a post by creating a reminder to post a photo.
- * Post the photo directly to Instagram.
- * Save photo to local gallery.
- * Delete the photo from the feed.
-
-* **Reminders**
- - **Scheduled:** A list of reminders for scheduled posts will be shown. Users can check their reminders for each day by selecting the corresponding date on the Calendar.
- - **Update:** Option to update the reminder caption and time.
- - **Delete:** Delete reminders.
- - **Notifications:** The app will notify the user to post the photo based on the reminder time set.
-
-* **Dark Mode:** Use the app with an elegant dark theme.
-
-
-
- | Reminders |
- Notifications |
- Dark Mode |
-
-
-  |
-  |
-  |
-
-
-
-## Screenshots
-
-
-
-
-
-
-
-
-
-
-
-
+InstaSmart is a Flutter app to easily plan and beautify your Instgram feed. More details can be found [here](https://docs.google.com/document/d/1zLvbWGw6q75HyQKes5T7n6x1hmygoy8gyzssS_MPyGE/edit?usp=sharing).
## Built With
* [Flutter](https://flutter.dev/)
* [Firebase](https://firebase.google.com/)
-* [GitHub Actions](https://github.com/features/actions)
- - [Flutter actions](https://github.com/marketplace/actions/flutter-action)
- - [Android Emulator Runner](https://github.com/ReactiveCircus/android-emulator-runner)
## License
Distributed under the MIT License. See ```LICENSE``` for more information.
diff --git a/assets/gifs/Create Grid.gif b/assets/gifs/Create Grid.gif
deleted file mode 100644
index d19e6ab..0000000
Binary files a/assets/gifs/Create Grid.gif and /dev/null differ
diff --git a/assets/gifs/Dark Mode.gif b/assets/gifs/Dark Mode.gif
deleted file mode 100644
index f50cf5d..0000000
Binary files a/assets/gifs/Dark Mode.gif and /dev/null differ
diff --git a/assets/gifs/Explore Frames.gif b/assets/gifs/Explore Frames.gif
deleted file mode 100644
index d0437d7..0000000
Binary files a/assets/gifs/Explore Frames.gif and /dev/null differ
diff --git a/assets/gifs/Feed Preview.gif b/assets/gifs/Feed Preview.gif
deleted file mode 100644
index 0507661..0000000
Binary files a/assets/gifs/Feed Preview.gif and /dev/null differ
diff --git a/assets/gifs/Notifications.gif b/assets/gifs/Notifications.gif
deleted file mode 100644
index 1fd04e2..0000000
Binary files a/assets/gifs/Notifications.gif and /dev/null differ
diff --git a/assets/gifs/Post Grid.gif b/assets/gifs/Post Grid.gif
deleted file mode 100644
index e6b0103..0000000
Binary files a/assets/gifs/Post Grid.gif and /dev/null differ
diff --git a/assets/gifs/Reminders.gif b/assets/gifs/Reminders.gif
deleted file mode 100644
index 9933df3..0000000
Binary files a/assets/gifs/Reminders.gif and /dev/null differ
diff --git a/assets/gifs/Save Grid.gif b/assets/gifs/Save Grid.gif
deleted file mode 100644
index dc147c3..0000000
Binary files a/assets/gifs/Save Grid.gif and /dev/null differ
diff --git a/assets/images/apple-logo.png b/assets/images/apple-logo.png
new file mode 100644
index 0000000..6488b0f
Binary files /dev/null and b/assets/images/apple-logo.png differ
diff --git a/assets/screenshots/1.png b/assets/screenshots/1.png
deleted file mode 100644
index 1103562..0000000
Binary files a/assets/screenshots/1.png and /dev/null differ
diff --git a/assets/screenshots/2.png b/assets/screenshots/2.png
deleted file mode 100644
index de3d561..0000000
Binary files a/assets/screenshots/2.png and /dev/null differ
diff --git a/assets/screenshots/3.png b/assets/screenshots/3.png
deleted file mode 100644
index 9fc3c4a..0000000
Binary files a/assets/screenshots/3.png and /dev/null differ
diff --git a/assets/screenshots/4.png b/assets/screenshots/4.png
deleted file mode 100644
index 0eba459..0000000
Binary files a/assets/screenshots/4.png and /dev/null differ
diff --git a/assets/screenshots/5.jpg b/assets/screenshots/5.jpg
deleted file mode 100644
index a83e0a1..0000000
Binary files a/assets/screenshots/5.jpg and /dev/null differ
diff --git a/assets/screenshots/6.png b/assets/screenshots/6.png
deleted file mode 100644
index cadb3ea..0000000
Binary files a/assets/screenshots/6.png and /dev/null differ
diff --git a/assets/screenshots/7.png b/assets/screenshots/7.png
deleted file mode 100644
index 9239b58..0000000
Binary files a/assets/screenshots/7.png and /dev/null differ
diff --git a/assets/screenshots/8.png b/assets/screenshots/8.png
deleted file mode 100644
index 8df8949..0000000
Binary files a/assets/screenshots/8.png and /dev/null differ
diff --git a/ios/Podfile b/ios/Podfile
index 1e8c3c9..252d9ec 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '9.0'
+platform :ios, '9.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
diff --git a/ios/Podfile.lock b/ios/Podfile.lock
index 04dd9b8..e5377e0 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -217,6 +217,8 @@ PODS:
- AppAuth/ExternalUserAgent (= 1.4.0)
- AppAuth/Core (1.4.0)
- AppAuth/ExternalUserAgent (1.4.0)
+ - apple_sign_in (0.0.1):
+ - Flutter
- BoringSSL-GRPC (0.0.7):
- BoringSSL-GRPC/Implementation (= 0.0.7)
- BoringSSL-GRPC/Interface (= 0.0.7)
@@ -396,7 +398,7 @@ PODS:
- image_picker (0.0.1):
- Flutter
- leveldb-library (1.22)
- - multi_image_picker (4.7.13):
+ - multi_image_picker (4.7.14):
- BSImagePicker (~> 2.10.3)
- Flutter
- nanopb (1.30905.0):
@@ -419,13 +421,14 @@ PODS:
- FBSDKCoreKit
- FBSDKShareKit
- Flutter
- - sqflite (0.0.1):
+ - sqflite (0.0.2):
- Flutter
- - FMDB (~> 2.7.2)
+ - FMDB (>= 2.7.5)
- url_launcher (0.0.1):
- Flutter
DEPENDENCIES:
+ - apple_sign_in (from `.symlinks/plugins/apple_sign_in/ios`)
- cloud_firestore (from `.symlinks/plugins/cloud_firestore/ios`)
- esys_flutter_share (from `.symlinks/plugins/esys_flutter_share/ios`)
- firebase_analytics (from `.symlinks/plugins/firebase_analytics/ios`)
@@ -480,6 +483,8 @@ SPEC REPOS:
- PromisesObjC
EXTERNAL SOURCES:
+ apple_sign_in:
+ :path: ".symlinks/plugins/apple_sign_in/ios"
cloud_firestore:
:path: ".symlinks/plugins/cloud_firestore/ios"
esys_flutter_share:
@@ -524,6 +529,7 @@ EXTERNAL SOURCES:
SPEC CHECKSUMS:
abseil: 6c8eb7892aefa08d929b39f9bb108e5367e3228f
AppAuth: 31bcec809a638d7bd2f86ea8a52bd45f6e81e7c7
+ apple_sign_in: 7716c7ddfa195aeab7dec0dc374ef4ff45d1adb4
BoringSSL-GRPC: 8edf627ee524575e2f8d19d56f068b448eea3879
BSGridCollectionViewLayout: 333dcb457a5a3bdd9212607ab5756553dcfe06cb
BSImagePicker: 07404254f2fcdaf5a2eb403c0f8c337267ce8738
@@ -560,7 +566,7 @@ SPEC CHECKSUMS:
image_gallery_saver: 259eab68fb271cfd57d599904f7acdc7832e7ef2
image_picker: 9c3312491f862b28d21ecd8fdf0ee14e601b3f09
leveldb-library: 55d93ee664b4007aac644a782d11da33fba316f7
- multi_image_picker: fd16be811b37ab030f72bf5c1c48b3a174254d13
+ multi_image_picker: c068931d08240565e0615fb01437d16984909183
nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
permission_handler: eac8e15b4a1a3fba55b761d19f3f4e6b005d15b6
@@ -569,9 +575,9 @@ SPEC CHECKSUMS:
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
social_share_plugin: f9dc03c1137b137e6efb1f3608f449c4cb153a7a
- sqflite: 4001a31ff81d210346b500c55b17f4d6c7589dd0
+ sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
-PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
+PODFILE CHECKSUM: a75497545d4391e2d394c3668e20cfb1c2bbd4aa
-COCOAPODS: 1.9.3
+COCOAPODS: 1.10.0
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index 23190ff..9e353c2 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -8,13 +8,13 @@
/* Begin PBXBuildFile section */
1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+ 22689191CD6D354A4F19ABDA /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 475C2E182E9EE41E2A724251 /* Pods_Runner.framework */; };
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
4CFB617A24D9456B0057A6ED /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4CFB617924D9456B0057A6ED /* GoogleService-Info.plist */; };
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
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 */; };
- 9F00188DA96FCFC2868B9757 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 228AC3636CF51C4A8FF759A7 /* Pods_Runner.framework */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
@@ -33,15 +33,15 @@
/* Begin PBXFileReference section */
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 = ""; };
- 228AC3636CF51C4A8FF759A7 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 2A9C57982BFF8B466FAD49D1 /* 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 = ""; };
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; };
+ 475C2E182E9EE41E2A724251 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
4C8A7F86250F855300353CAE /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = ""; };
4CFB617924D9456B0057A6ED /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; };
+ 5A48EE5D719E144C8D7FD951 /* 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 = ""; };
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 = ""; };
+ 797F9A3DBCCB26F02C97219B /* 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 = ""; };
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; };
- 8108A3A8B77A30DE8503C0AB /* 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 = ""; };
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; };
@@ -49,7 +49,7 @@
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 = ""; };
- CFBE8A6D272572C0F303FD42 /* 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 = ""; };
+ FD201F6CFFE648E81A403936 /* 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 = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -57,7 +57,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 9F00188DA96FCFC2868B9757 /* Pods_Runner.framework in Frameworks */,
+ 22689191CD6D354A4F19ABDA /* Pods_Runner.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -67,17 +67,17 @@
0378A9801E33C5621EF4E44E /* Pods */ = {
isa = PBXGroup;
children = (
- CFBE8A6D272572C0F303FD42 /* Pods-Runner.debug.xcconfig */,
- 2A9C57982BFF8B466FAD49D1 /* Pods-Runner.release.xcconfig */,
- 8108A3A8B77A30DE8503C0AB /* Pods-Runner.profile.xcconfig */,
+ 5A48EE5D719E144C8D7FD951 /* Pods-Runner.debug.xcconfig */,
+ 797F9A3DBCCB26F02C97219B /* Pods-Runner.release.xcconfig */,
+ FD201F6CFFE648E81A403936 /* Pods-Runner.profile.xcconfig */,
);
path = Pods;
sourceTree = "";
};
- 17664982863B076A71DDA98A /* Frameworks */ = {
+ 36F9BC38FC23B1DB5F8D46BB /* Frameworks */ = {
isa = PBXGroup;
children = (
- 228AC3636CF51C4A8FF759A7 /* Pods_Runner.framework */,
+ 475C2E182E9EE41E2A724251 /* Pods_Runner.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -100,7 +100,7 @@
97C146F01CF9000F007C117D /* Runner */,
97C146EF1CF9000F007C117D /* Products */,
0378A9801E33C5621EF4E44E /* Pods */,
- 17664982863B076A71DDA98A /* Frameworks */,
+ 36F9BC38FC23B1DB5F8D46BB /* Frameworks */,
);
sourceTree = "";
};
@@ -144,15 +144,15 @@
isa = PBXNativeTarget;
buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
buildPhases = (
- E0C2663EB7E7DEEFAC1DF010 /* [CP] Check Pods Manifest.lock */,
+ 9641BC2DCEA66BC7EF97CC84 /* [CP] Check Pods Manifest.lock */,
9740EEB61CF901F6004384FC /* Run Script */,
97C146EA1CF9000F007C117D /* Sources */,
97C146EB1CF9000F007C117D /* Frameworks */,
97C146EC1CF9000F007C117D /* Resources */,
9705A1C41CF9048500538489 /* Embed Frameworks */,
3B06AD1E1E4923F5004D2608 /* Thin Binary */,
- EB90A2173796AD688CEAFE90 /* [CP] Embed Pods Frameworks */,
- B5657B44C3D0BE2A5567A258 /* [CP] Copy Pods Resources */,
+ 07A2B0E22F3E671C5C983547 /* [CP] Embed Pods Frameworks */,
+ 0CFE5F16EBCB4BE09C114A93 /* [CP] Copy Pods Resources */,
);
buildRules = (
);
@@ -212,52 +212,55 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
- 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+ 07A2B0E22F3E671C5C983547 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputPaths = (
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "Thin Binary";
- outputPaths = (
+ name = "[CP] Embed Pods Frameworks";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+ showEnvVarsInLog = 0;
};
- 9740EEB61CF901F6004384FC /* Run Script */ = {
+ 0CFE5F16EBCB4BE09C114A93 /* [CP] Copy Pods Resources */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputPaths = (
+ inputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
);
- name = "Run Script";
- outputPaths = (
+ name = "[CP] Copy Pods Resources";
+ outputFileListPaths = (
+ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
+ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
+ showEnvVarsInLog = 0;
};
- B5657B44C3D0BE2A5567A258 /* [CP] Copy Pods Resources */ = {
+ 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
+ inputPaths = (
);
- name = "[CP] Copy Pods Resources";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
+ name = "Thin Binary";
+ outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin";
};
- E0C2663EB7E7DEEFAC1DF010 /* [CP] Check Pods Manifest.lock */ = {
+ 9641BC2DCEA66BC7EF97CC84 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
@@ -279,22 +282,19 @@
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;
};
- EB90A2173796AD688CEAFE90 /* [CP] Embed Pods Frameworks */ = {
+ 9740EEB61CF901F6004384FC /* Run Script */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
- inputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
+ inputPaths = (
);
- name = "[CP] Embed Pods Frameworks";
- outputFileListPaths = (
- "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
+ name = "Run Script";
+ outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
+ shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build\n";
};
/* End PBXShellScriptBuildPhase section */
@@ -387,7 +387,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = 3S8V47FRYJ;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -395,6 +395,7 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -526,7 +527,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = 3S8V47FRYJ;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -534,6 +535,7 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
@@ -559,7 +561,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
- CURRENT_PROJECT_VERSION = 3;
+ CURRENT_PROJECT_VERSION = 4;
DEVELOPMENT_TEAM = 3S8V47FRYJ;
ENABLE_BITCODE = NO;
FRAMEWORK_SEARCH_PATHS = (
@@ -567,6 +569,7 @@
"$(PROJECT_DIR)/Flutter",
);
INFOPLIST_FILE = Runner/Info.plist;
+ IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements
index 903def2..80b5221 100644
--- a/ios/Runner/Runner.entitlements
+++ b/ios/Runner/Runner.entitlements
@@ -4,5 +4,9 @@
aps-environment
development
+ com.apple.developer.applesignin
+
+ Default
+
diff --git a/lib/components/frame_widget.dart b/lib/components/frame_widget.dart
index 1a94076..6b808eb 100644
--- a/lib/components/frame_widget.dart
+++ b/lib/components/frame_widget.dart
@@ -212,5 +212,3 @@ class _FrameWidgetState extends State {
);
}
}
-
-//TODO: add categories - minimalist, floral, food, landscape, youthful
diff --git a/lib/main.dart b/lib/main.dart
index ff5272c..e08fabe 100755
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -17,6 +17,7 @@ import 'package:instasmart/screens/login_screen/login_screen.dart';
import 'package:instasmart/screens/onboarding_screen/onboarding_end_screen.dart';
import 'package:instasmart/screens/onboarding_screen/onboarding_screen.dart';
import 'package:instasmart/screens/preview_screen/preview_screen.dart';
+import 'package:instasmart/services/AppleFunctions.dart';
import 'package:instasmart/utils/helper.dart';
import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
@@ -25,8 +26,11 @@ import 'services/login_functions.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
+ final appleSignInAvailable = await AppleSignInAvailable.check();
final savedThemeMode = await AdaptiveTheme.getThemeMode();
- runApp(MyApp(savedThemeMode: savedThemeMode));
+ runApp(Provider.value(
+ value: appleSignInAvailable,
+ child: MyApp(savedThemeMode: savedThemeMode)));
}
class MyApp extends StatefulWidget {
diff --git a/lib/screens/calendar_screen/calendar_screen.dart b/lib/screens/calendar_screen/calendar_screen.dart
index adc195f..4add2d1 100644
--- a/lib/screens/calendar_screen/calendar_screen.dart
+++ b/lib/screens/calendar_screen/calendar_screen.dart
@@ -52,7 +52,7 @@ class _CalendarScreenState extends State
super.dispose();
}
- void _onDaySelected(DateTime day, List events) {
+ void _onDaySelected(DateTime day, List events, List holidays) {
setState(() {
_selectedEvents = events;
});
diff --git a/lib/screens/login_screen/login_screen.dart b/lib/screens/login_screen/login_screen.dart
index d4f37f7..0316dc0 100644
--- a/lib/screens/login_screen/login_screen.dart
+++ b/lib/screens/login_screen/login_screen.dart
@@ -2,6 +2,8 @@
import 'dart:async';
// Flutter imports:
+import 'package:apple_sign_in/apple_sign_in_button.dart' as apple;
+import 'package:apple_sign_in/scope.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart';
@@ -10,9 +12,11 @@ import 'package:flutter/services.dart';
import 'package:instasmart/constants.dart';
import 'package:instasmart/main.dart';
import 'package:instasmart/models/user.dart';
+import 'package:instasmart/services/AppleFunctions.dart';
import 'package:instasmart/services/login_functions.dart';
import 'package:instasmart/test_driver/Keys.dart';
import 'package:instasmart/utils/helper.dart';
+import 'package:provider/provider.dart';
import '../HomeScreen.dart';
class LoginScreen extends StatefulWidget {
@@ -32,6 +36,8 @@ class _LoginScreen extends State {
@override
Widget build(BuildContext context) {
+ final appleSignInAvailable =
+ Provider.of(context, listen: false);
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.transparent,
@@ -214,6 +220,29 @@ class _LoginScreen extends State {
),
),
),
+ if (appleSignInAvailable.isAvailable)
+ Padding(
+ padding: const EdgeInsets.only(
+ right: 40.0, left: 40.0, bottom: 20),
+ child: apple.AppleSignInButton(
+ style: apple.ButtonStyle.black, // style as needed
+ type: apple.ButtonType.signIn, // style as needed
+ onPressed: () async {
+ print('apple sign in pressed');
+ FirebaseLoginFunctions().signInWithApple(scopes: [
+ Scope.email,
+ Scope.fullName
+ ]).whenComplete(() async {
+ print("Apple sign in complete"); //reaches here
+ User user =
+ await FirebaseLoginFunctions().currentUser();
+ print("user found"); //doesnt print this
+ pushAndRemoveUntil(
+ context, HomeScreen(user: user), false);
+ });
+ },
+ ),
+ ),
],
),
),
diff --git a/lib/screens/preview_screen/components/bottom_sheet_options.dart b/lib/screens/preview_screen/components/bottom_sheet_options.dart
index 3143e06..87d8ed7 100644
--- a/lib/screens/preview_screen/components/bottom_sheet_options.dart
+++ b/lib/screens/preview_screen/components/bottom_sheet_options.dart
@@ -33,7 +33,7 @@ class BottomSheetOptions extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
- height: SizeConfig.safeBlockVertical * 75,
+ height: SizeConfig.safeBlockVertical * 70,
decoration: new BoxDecoration(
color: Theme.of(context).scaffoldBackgroundColor,
borderRadius: new BorderRadius.only(
diff --git a/lib/screens/reminder_screen/reminder_create_form.dart b/lib/screens/reminder_screen/reminder_create_form.dart
index becf3ac..9654ea4 100644
--- a/lib/screens/reminder_screen/reminder_create_form.dart
+++ b/lib/screens/reminder_screen/reminder_create_form.dart
@@ -48,7 +48,7 @@ class ReminderFormState extends State {
FormBuilder(
// context,
key: _fbKey,
- autovalidate: true,
+ autovalidateMode: AutovalidateMode.always,
readOnly: false,
child: Column(
children: [
diff --git a/lib/screens/reminder_screen/reminder_modify_form.dart b/lib/screens/reminder_screen/reminder_modify_form.dart
index d4219f8..43bde97 100644
--- a/lib/screens/reminder_screen/reminder_modify_form.dart
+++ b/lib/screens/reminder_screen/reminder_modify_form.dart
@@ -46,7 +46,7 @@ class ReminderFormState extends State {
FormBuilder(
// context,
key: _fbKey,
- autovalidate: true,
+ autovalidateMode: AutovalidateMode.always,
readOnly: false,
child: Column(
children: [
diff --git a/lib/services/AppleFunctions.dart b/lib/services/AppleFunctions.dart
new file mode 100644
index 0000000..24b8f46
--- /dev/null
+++ b/lib/services/AppleFunctions.dart
@@ -0,0 +1,16 @@
+import 'package:apple_sign_in/apple_sign_in.dart';
+import 'package:firebase_auth/firebase_auth.dart';
+import 'package:flutter/services.dart';
+import 'package:instasmart/models/user.dart';
+
+class AppleSignInAvailable {
+ AppleSignInAvailable(this.isAvailable);
+ final bool isAvailable;
+
+ static Future check() async {
+ return AppleSignInAvailable(await AppleSignIn.isAvailable().then((value) {
+ print("apple sign in? " + value.toString());
+ return value;
+ }));
+ }
+}
diff --git a/lib/services/frames_firebase_functions.dart b/lib/services/frames_firebase_functions.dart
index 1a471ec..fd48d6c 100644
--- a/lib/services/frames_firebase_functions.dart
+++ b/lib/services/frames_firebase_functions.dart
@@ -145,11 +145,8 @@ class FramesFirebaseFunctions {
for (Frame el in origList) {
if (el.category == category) {
filteredFrameList.add(el);
- // print('filtered list img is: ' +
- // el.lowResUrl +
- // '\nwith imgId: ' +
- // el.imgID +
- // ' and numLikes: ');
+// print('filterframe printing');
+// print(el.category);
}
}
}
diff --git a/lib/services/login_functions.dart b/lib/services/login_functions.dart
index 15b857f..6837bae 100644
--- a/lib/services/login_functions.dart
+++ b/lib/services/login_functions.dart
@@ -7,6 +7,7 @@ import 'package:google_sign_in/google_sign_in.dart';
import 'package:instasmart/constants.dart';
import 'package:instasmart/main.dart';
import 'package:instasmart/models/user.dart';
+import 'package:apple_sign_in/apple_sign_in.dart';
class FirebaseLoginFunctions extends ChangeNotifier {
final auth = FirebaseAuth.instance;
@@ -180,4 +181,85 @@ class FirebaseLoginFunctions extends ChangeNotifier {
print("User Sign Out");
}
+
+ Future signInWithApple({List scopes = const []}) async {
+ // 1. perform the sign-in request
+ print("signInWithAppleCalled"); //this prints
+ final result = await AppleSignIn.performRequests([
+ AppleIdRequest(requestedScopes: [Scope.email, Scope.fullName])
+ ]);
+ // 2. check the result
+ switch (result.status) {
+ case AuthorizationStatus.authorized:
+ final appleIdCredential = result.credential;
+ final oAuthProvider = OAuthProvider(providerId: "apple.com");
+ final credential = oAuthProvider.getCredential(
+ idToken: String.fromCharCodes(appleIdCredential.identityToken),
+ accessToken:
+ String.fromCharCodes(appleIdCredential.authorizationCode),
+ );
+ print("Apple: authorized credentials");
+ final authResult = await auth.signInWithCredential(credential);
+ final user = authResult.user;
+ print(user.uid);
+ assert(!user.isAnonymous);
+ assert(await user.getIdToken() != null);
+
+ final FirebaseUser currUser = await auth.currentUser();
+ assert(user.uid == currUser.uid);
+ print('currUser is: ');
+ print(currUser);
+
+ try {
+ print("Apple: Trying to create user");
+ User user = User(
+ email: currUser.email,
+ firstName: currUser.displayName,
+ uid: currUser.uid,
+ active: true,
+ lastName: ' ',
+ );
+ print('user login data is:');
+ print(user.toJson());
+ Map userImMap = {'user_images': ''};
+ Map finalMap = user.toJson();
+ finalMap.addAll(userImMap);
+ bool userExists;
+ await db
+ .collection(Constants.USERS)
+ .document(currUser.uid)
+ .get()
+ .then((value) {
+ userExists = value.exists;
+ });
+ if (!userExists) {
+ await db
+ .collection(Constants.USERS)
+ .document(currUser.uid)
+ .setData(finalMap);
+ MyAppState.currentUser = user;
+ } else {
+ currentUser().then((value) {
+ MyAppState.currentUser = value;
+ });
+ }
+ } catch (e) {
+ print('error in setting apple sign in data' + e.toString());
+ }
+ return 'signInWithApple succeeded: $user';
+ case AuthorizationStatus.error:
+ throw PlatformException(
+ code: 'ERROR_AUTHORIZATION_DENIED',
+ message: result.error.toString(),
+ );
+
+ case AuthorizationStatus.cancelled:
+ throw PlatformException(
+ code: 'ERROR_ABORTED_BY_USER',
+ message: 'Sign in aborted by user',
+ );
+ default:
+ throw UnimplementedError();
+ }
+ }
}
diff --git a/pubspec.lock b/pubspec.lock
index 228cff8..6b27589 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -7,21 +7,28 @@ packages:
name: _fe_analyzer_shared
url: "https://pub.dartlang.org"
source: hosted
- version: "7.0.0"
+ version: "12.0.0"
adaptive_theme:
dependency: "direct main"
description:
name: adaptive_theme
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.0"
+ version: "1.1.0"
analyzer:
dependency: transitive
description:
name: analyzer
url: "https://pub.dartlang.org"
source: hosted
- version: "0.39.17"
+ version: "0.40.6"
+ apple_sign_in:
+ dependency: "direct main"
+ description:
+ name: apple_sign_in
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.1.0"
archive:
dependency: transitive
description:
@@ -49,49 +56,70 @@ packages:
name: async
url: "https://pub.dartlang.org"
source: hosted
- version: "2.4.2"
+ version: "2.5.0-nullsafety.3"
basic_utils:
dependency: transitive
description:
name: basic_utils
url: "https://pub.dartlang.org"
source: hosted
- version: "2.6.2"
+ version: "2.6.3"
boolean_selector:
dependency: transitive
description:
name: boolean_selector
url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.0"
+ version: "2.1.0-nullsafety.3"
bottom_navy_bar:
dependency: "direct main"
description:
name: bottom_navy_bar
url: "https://pub.dartlang.org"
source: hosted
- version: "5.5.0"
+ version: "5.6.0"
+ build:
+ dependency: transitive
+ description:
+ name: build
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.6.0"
+ built_collection:
+ dependency: transitive
+ description:
+ name: built_collection
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "4.3.2"
+ built_value:
+ dependency: transitive
+ description:
+ name: built_value
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "7.1.0"
cached_network_image:
dependency: "direct main"
description:
name: cached_network_image
url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.0+1"
+ version: "2.5.0"
characters:
dependency: transitive
description:
name: characters
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.0"
+ version: "1.1.0-nullsafety.5"
charcode:
dependency: transitive
description:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.3"
+ version: "1.2.0-nullsafety.3"
cli_util:
dependency: transitive
description:
@@ -105,7 +133,7 @@ packages:
name: clock
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.1"
+ version: "1.1.0-nullsafety.3"
cloud_firestore:
dependency: "direct main"
description:
@@ -119,7 +147,7 @@ packages:
name: cloud_firestore_mocks
url: "https://pub.dartlang.org"
source: hosted
- version: "0.4.6+1"
+ version: "0.4.7"
cloud_firestore_platform_interface:
dependency: transitive
description:
@@ -134,13 +162,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.1+2"
+ code_builder:
+ dependency: transitive
+ description:
+ name: code_builder
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "3.5.0"
collection:
dependency: transitive
description:
name: collection
url: "https://pub.dartlang.org"
source: hosted
- version: "1.14.13"
+ version: "1.15.0-nullsafety.5"
color:
dependency: transitive
description:
@@ -175,7 +210,7 @@ packages:
name: coverage
url: "https://pub.dartlang.org"
source: hosted
- version: "0.14.0"
+ version: "0.14.2"
crypto:
dependency: transitive
description:
@@ -183,13 +218,6 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.5"
- csslib:
- dependency: transitive
- description:
- name: csslib
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.16.2"
cupertino_icons:
dependency: "direct main"
description:
@@ -197,6 +225,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.3"
+ dart_style:
+ dependency: transitive
+ description:
+ name: dart_style
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.3.10"
date_range_picker:
dependency: transitive
description:
@@ -224,21 +259,28 @@ packages:
name: fake_async
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.2.0-nullsafety.3"
+ ffi:
+ dependency: transitive
+ description:
+ name: ffi
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.1.3"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
- version: "5.2.1"
+ version: "6.0.0-nullsafety.4"
firebase:
dependency: transitive
description:
name: firebase
url: "https://pub.dartlang.org"
source: hosted
- version: "7.3.0"
+ version: "7.3.3"
firebase_analytics:
dependency: "direct main"
description:
@@ -323,6 +365,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.0"
+ fixnum:
+ dependency: transitive
+ description:
+ name: fixnum
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.10.11"
flushbar:
dependency: "direct main"
description:
@@ -335,20 +384,27 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
+ flutter_blurhash:
+ dependency: transitive
+ description:
+ name: flutter_blurhash
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.5.0"
flutter_cache_manager:
dependency: transitive
description:
name: flutter_cache_manager
url: "https://pub.dartlang.org"
source: hosted
- version: "1.4.1"
+ version: "2.1.0"
flutter_chips_input:
dependency: transitive
description:
name: flutter_chips_input
url: "https://pub.dartlang.org"
source: hosted
- version: "1.9.1"
+ version: "1.9.5"
flutter_colorpicker:
dependency: transitive
description:
@@ -367,14 +423,28 @@ packages:
name: flutter_form_builder
url: "https://pub.dartlang.org"
source: hosted
- version: "3.13.2"
+ version: "3.14.1"
flutter_keyboard_visibility:
dependency: transitive
description:
name: flutter_keyboard_visibility
url: "https://pub.dartlang.org"
source: hosted
- version: "3.2.1"
+ version: "4.0.2"
+ flutter_keyboard_visibility_platform_interface:
+ dependency: transitive
+ description:
+ name: flutter_keyboard_visibility_platform_interface
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.1"
+ flutter_keyboard_visibility_web:
+ dependency: transitive
+ description:
+ name: flutter_keyboard_visibility_web
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.0.1"
flutter_launcher_icons:
dependency: "direct dev"
description:
@@ -388,7 +458,7 @@ packages:
name: flutter_local_notifications
url: "https://pub.dartlang.org"
source: hosted
- version: "1.4.4+3"
+ version: "1.5.0+1"
flutter_local_notifications_platform_interface:
dependency: transitive
description:
@@ -416,7 +486,7 @@ packages:
name: flutter_plugin_android_lifecycle
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.8"
+ version: "1.0.11"
flutter_spinkit:
dependency: "direct main"
description:
@@ -442,7 +512,7 @@ packages:
name: flutter_typeahead
url: "https://pub.dartlang.org"
source: hosted
- version: "1.8.7"
+ version: "1.9.1"
flutter_web_plugins:
dependency: transitive
description: flutter
@@ -454,7 +524,7 @@ packages:
name: font_awesome_flutter
url: "https://pub.dartlang.org"
source: hosted
- version: "8.8.1"
+ version: "8.11.0"
fuchsia_remote_debug_protocol:
dependency: transitive
description: flutter
@@ -473,7 +543,7 @@ packages:
name: google_sign_in
url: "https://pub.dartlang.org"
source: hosted
- version: "4.5.1"
+ version: "4.5.6"
google_sign_in_mocks:
dependency: "direct main"
description:
@@ -494,14 +564,7 @@ packages:
name: google_sign_in_web
url: "https://pub.dartlang.org"
source: hosted
- version: "0.9.1+1"
- html:
- dependency: transitive
- description:
- name: html
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.14.0+3"
+ version: "0.9.2"
http:
dependency: "direct main"
description:
@@ -529,42 +592,42 @@ packages:
name: image
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.14"
+ version: "2.1.19"
image_gallery_saver:
dependency: "direct main"
description:
name: image_gallery_saver
url: "https://pub.dartlang.org"
source: hosted
- version: "1.5.0"
+ version: "1.6.7"
image_picker:
dependency: transitive
description:
name: image_picker
url: "https://pub.dartlang.org"
source: hosted
- version: "0.6.7+4"
+ version: "0.6.7+17"
image_picker_for_web:
dependency: transitive
description:
name: image_picker_for_web
url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.0+1"
+ version: "0.1.0+2"
image_picker_platform_interface:
dependency: transitive
description:
name: image_picker_platform_interface
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.1.1"
import_sorter:
dependency: "direct dev"
description:
name: import_sorter
url: "https://pub.dartlang.org"
source: hosted
- version: "4.2.1"
+ version: "4.4.1"
intl:
dependency: transitive
description:
@@ -585,7 +648,7 @@ packages:
name: js
url: "https://pub.dartlang.org"
source: hosted
- version: "0.6.2"
+ version: "0.6.3-nullsafety.3"
json_annotation:
dependency: transitive
description:
@@ -599,7 +662,7 @@ packages:
name: json_rpc_2
url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.1"
+ version: "2.2.2"
logging:
dependency: transitive
description:
@@ -613,14 +676,14 @@ packages:
name: matcher
url: "https://pub.dartlang.org"
source: hosted
- version: "0.12.8"
+ version: "0.12.10-nullsafety.3"
meta:
dependency: transitive
description:
name: meta
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.8"
+ version: "1.3.0-nullsafety.6"
mime:
dependency: transitive
description:
@@ -634,7 +697,7 @@ packages:
name: mockito
url: "https://pub.dartlang.org"
source: hosted
- version: "4.1.1"
+ version: "4.1.3"
modal_bottom_sheet:
dependency: "direct main"
description:
@@ -648,7 +711,7 @@ packages:
name: multi_image_picker
url: "https://pub.dartlang.org"
source: hosted
- version: "4.7.10"
+ version: "4.7.14"
nested:
dependency: transitive
description:
@@ -669,7 +732,7 @@ packages:
name: node_interop
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.1"
+ version: "1.2.1"
node_io:
dependency: transitive
description:
@@ -684,6 +747,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.12"
+ octo_image:
+ dependency: transitive
+ description:
+ name: octo_image
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.3.0"
package_config:
dependency: transitive
description:
@@ -697,21 +767,21 @@ packages:
name: page_view_indicators
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.1"
+ version: "1.4.0"
path:
dependency: transitive
description:
name: path
url: "https://pub.dartlang.org"
source: hosted
- version: "1.7.0"
+ version: "1.8.0-nullsafety.3"
path_provider:
dependency: "direct main"
description:
name: path_provider
url: "https://pub.dartlang.org"
source: hosted
- version: "1.6.11"
+ version: "1.6.24"
path_provider_linux:
dependency: transitive
description:
@@ -725,21 +795,28 @@ packages:
name: path_provider_macos
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.4+3"
+ version: "0.0.4+6"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.2"
+ version: "1.0.4"
+ path_provider_windows:
+ dependency: transitive
+ description:
+ name: path_provider_windows
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.0.4+3"
pedantic:
dependency: transitive
description:
name: pedantic
url: "https://pub.dartlang.org"
source: hosted
- version: "1.9.0"
+ version: "1.10.0-nullsafety.3"
permission_handler:
dependency: "direct main"
description:
@@ -760,14 +837,14 @@ packages:
name: petitparser
url: "https://pub.dartlang.org"
source: hosted
- version: "3.0.4"
+ version: "3.1.0"
phone_number:
dependency: transitive
description:
name: phone_number
url: "https://pub.dartlang.org"
source: hosted
- version: "0.6.2+4"
+ version: "0.6.3"
photo_view:
dependency: "direct main"
description:
@@ -781,21 +858,14 @@ packages:
name: platform
url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.1"
- platform_detect:
- dependency: transitive
- description:
- name: platform_detect
- url: "https://pub.dartlang.org"
- source: hosted
- version: "1.4.0"
+ version: "3.0.0-nullsafety.4"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.2"
+ version: "1.0.3"
pointycastle:
dependency: transitive
description:
@@ -809,7 +879,7 @@ packages:
name: pool
url: "https://pub.dartlang.org"
source: hosted
- version: "1.4.0"
+ version: "1.5.0-nullsafety.3"
popup_menu:
dependency: "direct main"
description:
@@ -823,7 +893,7 @@ packages:
name: process
url: "https://pub.dartlang.org"
source: hosted
- version: "3.0.13"
+ version: "4.0.0-nullsafety.4"
progress_dialog:
dependency: "direct main"
description:
@@ -844,7 +914,7 @@ packages:
name: provider
url: "https://pub.dartlang.org"
source: hosted
- version: "4.3.2"
+ version: "4.3.2+3"
pub_semver:
dependency: transitive
description:
@@ -858,7 +928,7 @@ packages:
name: quiver
url: "https://pub.dartlang.org"
source: hosted
- version: "2.1.3"
+ version: "2.1.5"
random_string:
dependency: transitive
description:
@@ -886,7 +956,7 @@ packages:
name: rxdart
url: "https://pub.dartlang.org"
source: hosted
- version: "0.24.1"
+ version: "0.25.0"
settings_ui:
dependency: "direct main"
description:
@@ -900,21 +970,21 @@ packages:
name: shared_preferences
url: "https://pub.dartlang.org"
source: hosted
- version: "0.5.8"
+ version: "0.5.12+4"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.2+1"
+ version: "0.0.2+4"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.1+10"
+ version: "0.0.1+11"
shared_preferences_platform_interface:
dependency: transitive
description:
@@ -929,6 +999,13 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.1.2+7"
+ shared_preferences_windows:
+ dependency: transitive
+ description:
+ name: shared_preferences_windows
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.0.1+3"
shelf:
dependency: transitive
description:
@@ -949,7 +1026,7 @@ packages:
name: shelf_static
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.8"
+ version: "0.2.9+1"
shelf_web_socket:
dependency: transitive
description:
@@ -963,7 +1040,7 @@ packages:
name: shimmer
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.1"
+ version: "1.1.2"
signature:
dependency: transitive
description:
@@ -977,7 +1054,7 @@ packages:
name: simple_gesture_detector
url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.4"
+ version: "0.1.6"
sky_engine:
dependency: transitive
description: flutter
@@ -990,34 +1067,41 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "0.3.1+1"
+ source_gen:
+ dependency: transitive
+ description:
+ name: source_gen
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.9.10+1"
source_map_stack_trace:
dependency: transitive
description:
name: source_map_stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.0"
+ version: "2.1.0-nullsafety.4"
source_maps:
dependency: transitive
description:
name: source_maps
url: "https://pub.dartlang.org"
source: hosted
- version: "0.10.9"
+ version: "0.10.10-nullsafety.3"
source_span:
dependency: transitive
description:
name: source_span
url: "https://pub.dartlang.org"
source: hosted
- version: "1.7.0"
+ version: "1.8.0-nullsafety.4"
sqflite:
dependency: transitive
description:
name: sqflite
url: "https://pub.dartlang.org"
source: hosted
- version: "1.3.1"
+ version: "1.3.2+1"
sqflite_common:
dependency: transitive
description:
@@ -1031,21 +1115,21 @@ packages:
name: stack_trace
url: "https://pub.dartlang.org"
source: hosted
- version: "1.9.5"
+ version: "1.10.0-nullsafety.6"
stream_channel:
dependency: transitive
description:
name: stream_channel
url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.0"
+ version: "2.1.0-nullsafety.3"
string_scanner:
dependency: transitive
description:
name: string_scanner
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.5"
+ version: "1.1.0-nullsafety.3"
sync_http:
dependency: transitive
description:
@@ -1066,35 +1150,35 @@ packages:
name: table_calendar
url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.3"
+ version: "2.3.3"
term_glyph:
dependency: transitive
description:
name: term_glyph
url: "https://pub.dartlang.org"
source: hosted
- version: "1.1.0"
+ version: "1.2.0-nullsafety.3"
test:
dependency: "direct dev"
description:
name: test
url: "https://pub.dartlang.org"
source: hosted
- version: "1.15.2"
+ version: "1.16.0-nullsafety.13"
test_api:
dependency: transitive
description:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
- version: "0.2.17"
+ version: "0.2.19-nullsafety.6"
test_core:
dependency: transitive
description:
name: test_core
url: "https://pub.dartlang.org"
source: hosted
- version: "0.3.10"
+ version: "0.3.12-nullsafety.12"
transformer_page_view:
dependency: transitive
description:
@@ -1108,49 +1192,56 @@ packages:
name: typed_data
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0"
+ version: "1.3.0-nullsafety.5"
url_launcher:
dependency: "direct main"
description:
name: url_launcher
url: "https://pub.dartlang.org"
source: hosted
- version: "5.5.0"
+ version: "5.7.10"
url_launcher_linux:
dependency: transitive
description:
name: url_launcher_linux
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.1+1"
+ version: "0.0.1+4"
url_launcher_macos:
dependency: transitive
description:
name: url_launcher_macos
url: "https://pub.dartlang.org"
source: hosted
- version: "0.0.1+7"
+ version: "0.0.1+9"
url_launcher_platform_interface:
dependency: transitive
description:
name: url_launcher_platform_interface
url: "https://pub.dartlang.org"
source: hosted
- version: "1.0.7"
+ version: "1.0.9"
url_launcher_web:
dependency: transitive
description:
name: url_launcher_web
url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.2+1"
+ version: "0.1.5+1"
+ url_launcher_windows:
+ dependency: transitive
+ description:
+ name: url_launcher_windows
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "0.0.1+3"
uuid:
dependency: transitive
description:
name: uuid
url: "https://pub.dartlang.org"
source: hosted
- version: "2.2.0"
+ version: "2.2.2"
validators:
dependency: transitive
description:
@@ -1164,28 +1255,21 @@ packages:
name: vector_math
url: "https://pub.dartlang.org"
source: hosted
- version: "2.0.8"
+ version: "2.1.0-nullsafety.5"
vin_decoder:
dependency: transitive
description:
name: vin_decoder
url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.2"
+ version: "0.1.3"
vm_service:
dependency: transitive
description:
name: vm_service
url: "https://pub.dartlang.org"
source: hosted
- version: "4.2.0"
- vm_service_client:
- dependency: transitive
- description:
- name: vm_service_client
- url: "https://pub.dartlang.org"
- source: hosted
- version: "0.2.6+2"
+ version: "5.2.0"
watcher:
dependency: transitive
description:
@@ -1213,21 +1297,28 @@ packages:
name: webkit_inspection_protocol
url: "https://pub.dartlang.org"
source: hosted
- version: "0.7.3"
+ version: "0.7.4"
+ win32:
+ dependency: transitive
+ description:
+ name: win32
+ url: "https://pub.dartlang.org"
+ source: hosted
+ version: "1.7.4"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
source: hosted
- version: "0.1.0"
+ version: "0.1.2"
xml:
dependency: transitive
description:
name: xml
url: "https://pub.dartlang.org"
source: hosted
- version: "4.2.0"
+ version: "4.5.1"
yaml:
dependency: transitive
description:
@@ -1236,5 +1327,5 @@ packages:
source: hosted
version: "2.2.1"
sdks:
- dart: ">=2.9.0-14.0.dev <3.0.0"
- flutter: ">=1.16.0 <2.0.0"
+ dart: ">=2.12.0-0.0 <3.0.0"
+ flutter: ">=1.22.2 <2.0.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 6fee1ba..c391bd3 100755
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -21,11 +21,11 @@ dependencies:
cloud_firestore: ^0.13.7
bottom_navy_bar: ^5.4.0
firebase_storage: ^3.1.5
- multi_image_picker: ^4.7.10
+ multi_image_picker: ^4.7.14
reorderables: ^0.3.2
table_calendar: ^2.2.3
path_provider: ^1.6.9
- provider: ^4.1.2
+ provider: ^4.3.2+2
flutter_form_builder: ^3.13.2
shared_preferences: ^0.5.7+3
cached_network_image: ^2.2.0+1
@@ -54,6 +54,8 @@ dependencies:
url_launcher: ^5.5.0
permission_handler: ^5.0.1+1
flushbar: ^1.10.4
+ apple_sign_in: ^0.1.0
+
dev_dependencies: