diff --git a/.github/workflows/build-deploy.yml b/.github/workflows/build-deploy.yml
index feed4f1..d42b46d 100644
--- a/.github/workflows/build-deploy.yml
+++ b/.github/workflows/build-deploy.yml
@@ -4,6 +4,7 @@ on:
push:
branches:
- main
+ - ryan-2025-update
pull_request:
branches:
- main
@@ -12,80 +13,80 @@ jobs:
build_web_and_apk:
name: Build Web and APK
runs-on: ubuntu-latest
-
+
steps:
- - name: Checkout code
- uses: actions/checkout@v2
-
- - name: Install Flutter
- uses: subosito/flutter-action@v1
- with:
- flutter-version: '3.x'
-
- - name: Get dependencies
- run: flutter pub get
-
- - name: Test
- run: flutter test --coverage
-
- - name: Build web release project
- run: flutter build web
-
- - name: Create CNAME file
- run: echo "mergedata.ca" > ./build/web/CNAME
-
- - name: Upload web production-ready build files
- uses: actions/upload-artifact@v2
- with:
- name: production-files
- path: ./build/web
-
- - name: Deploy to GitHub Pages
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
- uses: peaceiris/actions-gh-pages@v4
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- publish_dir: ./build/web
-
- - name: Build APK
- run: flutter build apk --release
-
- - name: Rename APK
- run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk
-
- - name: Upload APK
- uses: actions/upload-artifact@v2
- with:
- name: MergeData.apk
- path: build/app/outputs/flutter-apk/MergeData.apk
-
- - name: Bump version and push tag
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
- id: create_tag
- uses: mathieudutour/github-tag-action@v6.2
- with:
- github_token: ${{ secrets.GITHUB_TOKEN }}
- default_bump: patch
-
- - name: Create Release
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
- id: create_release
- uses: actions/create-release@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- tag_name: ${{ steps.create_tag.outputs.new_tag }}
- release_name: Release ${{ steps.create_tag.outputs.new_tag }}
- draft: false
- prerelease: false
-
- - name: Upload Release Asset
- if: github.event_name == 'push' && github.ref == 'refs/heads/main'
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ steps.create_release.outputs.upload_url }}
- asset_path: ./build/app/outputs/flutter-apk/MergeData.apk
- asset_name: MergeData.apk
- asset_content_type: application/vnd.android.package-archive
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Install Flutter
+ uses: subosito/flutter-action@v1
+ with:
+ flutter-version: "3.x"
+
+ - name: Get dependencies
+ run: flutter pub get
+
+ - name: Test
+ run: flutter test --coverage
+
+ - name: Build web release project
+ run: flutter build web
+
+ - name: Create CNAME file
+ run: echo "mergedata.ca" > ./build/web/CNAME
+
+ - name: Upload web production-ready build files
+ uses: actions/upload-artifact@v4
+ with:
+ name: production-files
+ path: ./build/web
+
+ - name: Deploy to GitHub Pages
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+ uses: peaceiris/actions-gh-pages@v4
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ publish_dir: ./build/web
+
+ - name: Build APK
+ run: flutter build apk --release
+
+ - name: Rename APK
+ run: mv build/app/outputs/flutter-apk/app-release.apk build/app/outputs/flutter-apk/MergeData.apk
+
+ - name: Upload APK
+ uses: actions/upload-artifact@v4
+ with:
+ name: MergeData.apk
+ path: build/app/outputs/flutter-apk/MergeData.apk
+
+ - name: Bump version and push tag
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+ id: create_tag
+ uses: mathieudutour/github-tag-action@v6.2
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ default_bump: patch
+
+ - name: Create Release
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+ id: create_release
+ uses: actions/create-release@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ tag_name: ${{ steps.create_tag.outputs.new_tag }}
+ release_name: Release ${{ steps.create_tag.outputs.new_tag }}
+ draft: false
+ prerelease: false
+
+ - name: Upload Release Asset
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+ uses: actions/upload-release-asset@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ upload_url: ${{ steps.create_release.outputs.upload_url }}
+ asset_path: ./build/app/outputs/flutter-apk/MergeData.apk
+ asset_name: MergeData.apk
+ asset_content_type: application/vnd.android.package-archive
diff --git a/.gitignore b/.gitignore
index 1402e01..8d12875 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,9 +7,11 @@
*.swp
.DS_Store
.atom/
+.build/
.buildlog/
.history
.svn/
+.swiftpm/
migrate_working_dir/
# IntelliJ related
diff --git a/android/build.gradle b/android/build.gradle
index e83fb5d..041e887 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,5 +1,5 @@
buildscript {
- ext.kotlin_version = '1.7.10'
+ ext.kotlin_version = '1.9.25'
repositories {
google()
mavenCentral()
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 3c472b9..cb086a5 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-all.zip
diff --git a/android/settings.gradle b/android/settings.gradle
index 7cd7128..7ef64d7 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -23,7 +23,7 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "7.3.0" apply false
+ id "com.android.application" version "8.1.0" apply false
}
include ":app"
diff --git a/assets/games/2025.json b/assets/games/2025.json
new file mode 100644
index 0000000..a9d8b75
--- /dev/null
+++ b/assets/games/2025.json
@@ -0,0 +1,178 @@
+{
+ "Pre-Match": [
+ {
+ "name": "Scouter Name",
+ "required": true,
+ "type": "text"
+ },
+ {
+ "name": "Event",
+ "choices": ["Niagara", "North Bay", "DCMP"],
+ "required": true,
+ "type": "radio"
+ },
+ {
+ "name": "Alliance Station",
+ "choices": ["Red 1", "Red 2", "Red 3", "Blue 1", "Blue 2", "Blue 3"],
+ "required": false,
+ "type": "radio"
+ },
+ {
+ "name": "Match #",
+ "required": true,
+ "type": "number"
+ },
+ {
+ "name": "Team #",
+ "required": true,
+ "type": "number"
+ },
+ {
+ "name": "Starting Postition",
+ "choices": ["Left", "Middle", "Right"],
+ "required": true,
+ "type": "radio"
+ }
+ ],
+
+ "Autonomous": [
+ {
+ "name": "Crossed Starting Line",
+ "type": "bool"
+ },
+ {
+ "name": "Auto Coral scored on L1 (bottom)",
+ "type": "counter"
+ },
+ {
+ "name": "Auto Coral scored on L2 (branch)",
+ "type": "counter"
+ },
+ {
+ "name": "Auto Coral scored on L3 (branch)",
+ "type": "counter"
+ },
+ {
+ "name": "Auto Coral scored on L4 (branch)",
+ "type": "counter"
+ },
+ {
+ "name": "Auto # of Coral Dropped",
+ "type": "counter"
+ },
+ {
+ "name": "Auto Coral Pickup Location",
+ "type": "radio",
+ "required": true,
+ "choices": ["Floor", "Human Player Sation", "Both"]
+ },
+ {
+ "name": "Auto # of Algae Removed from Reef",
+ "type": "counter"
+ },
+ {
+ "name": "Auto # of Algae scored in Processor",
+ "type": "counter"
+ },
+ {
+ "name": "Auto # of Algae scored in Net",
+ "type": "counter"
+ },
+ {
+ "name": "Auto # of Algae Dropped",
+ "type": "counter"
+ },
+ {
+ "name": "Comments on Auto",
+ "type": "text"
+ }
+ ],
+
+ "TeleOp": [
+ {
+ "name": "TeleOp Coral scored on L1 (bottom)",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Coral scored on L2 (branch)",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Coral scored on L3 (branch)",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Coral scored on L4 (branch)",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Coral Dropped",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Coral Pickup Location",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Algae Harvested from Reef",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Algae scored in Processor",
+ "type": "counter"
+ },
+ {
+ "name": "TeleOp Algae Scored in Net by Robot",
+ "type": "counter"
+ },
+ {
+ "name": "Teleop Algae Dropped",
+ "type": "counter"
+ }
+ ],
+
+
+
+ "EndGame": [
+ {
+ "name": "Attempted Climb?",
+ "type": "bool"
+ },
+ {
+ "name": "Ending Position",
+ "type": "radio",
+ "required": false,
+ "choices": ["None", "Parked", "High Climb", "Low Climb"]
+ }
+ ],
+
+
+ "PostMatch": [
+ {
+ "name": "Defence Rating",
+ "type": "radio",
+ "required": true,
+ "choices": ["1", "2", "3", "4", "5", "N/A"]
+ },
+ {
+ "name": "Ability to withstand defence",
+ "type": "radio",
+ "required": true,
+ "choices": ["1", "2", "3", "4", "5", "N/A"]
+ },
+ {
+ "name": "Did they die during the match?",
+ "type": "bool"
+ },
+ {
+ "name": "Main Cycle",
+ "type": "text",
+ "required": false
+ },
+ {
+ "name": "Comments",
+ "type": "text",
+ "required": false
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/pit/2025.json b/assets/pit/2025.json
new file mode 100644
index 0000000..a8ce5e1
--- /dev/null
+++ b/assets/pit/2025.json
@@ -0,0 +1,55 @@
+{
+ "Pit": [
+ {
+ "name": "Scout name",
+ "required": true,
+ "type": "text"
+ },
+ {
+ "name": "Team number",
+ "required": false,
+ "type": "number"
+ },
+ {
+ "name": "Weight (lbs)",
+ "required": false,
+ "type": "text"
+ },
+ {
+ "name": "Drivetrain type",
+ "choices": ["Swerve", "Tank", "Butterfly/Grasshopper", "Mecanum", "Other"],
+ "required": false,
+ "type": "radio"
+ },
+ {
+ "name": "Other drivetrain",
+ "required": false,
+ "type": "text"
+ },
+ {
+ "name": "Where can you pick up from?",
+ "required": false,
+ "type": "text"
+ },
+ {
+ "name": "Autos",
+ "required": false,
+ "type": "text"
+ },
+ {
+ "name": "Where can they score?",
+ "required": false,
+ "type": "text"
+ },
+ {
+ "name": "Endgame: Can they climb?",
+ "required": false,
+ "type": "text"
+ },
+ {
+ "name": "Other comments",
+ "required": false,
+ "type": "text"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist
index 9625e10..7c56964 100644
--- a/ios/Flutter/AppFrameworkInfo.plist
+++ b/ios/Flutter/AppFrameworkInfo.plist
@@ -21,6 +21,6 @@
CFBundleVersion
1.0
MinimumOSVersion
- 11.0
+ 12.0
diff --git a/ios/Podfile b/ios/Podfile
index fdcc671..d97f17e 100644
--- a/ios/Podfile
+++ b/ios/Podfile
@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
-# platform :ios, '11.0'
+# platform :ios, '12.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 77b15ed..7154b01 100644
--- a/ios/Podfile.lock
+++ b/ios/Podfile.lock
@@ -31,12 +31,12 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/url_launcher_ios/ios"
SPEC CHECKSUMS:
- Flutter: f04841e97a9d0b0a8025694d0796dd46242b2854
+ Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb
qr_code_scanner: bb67d64904c3b9658ada8c402e8b4d406d5d796e
- shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695
- url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812
+ shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
+ url_launcher_ios: 5334b05cef931de560670eeae103fd3e431ac3fe
-PODFILE CHECKSUM: 70d9d25280d0dd177a5f637cdb0f0b0b12c6a189
+PODFILE CHECKSUM: 819463e6a0290f5a72f145ba7cde16e8b6ef0796
-COCOAPODS: 1.12.1
+COCOAPODS: 1.16.2
diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj
index b60ff0f..7189c12 100644
--- a/ios/Runner.xcodeproj/project.pbxproj
+++ b/ios/Runner.xcodeproj/project.pbxproj
@@ -215,7 +215,7 @@
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = YES;
- LastUpgradeCheck = 1430;
+ LastUpgradeCheck = 1510;
ORGANIZATIONNAME = "";
TargetAttributes = {
331C8080294A63A400263BE5 = {
@@ -452,7 +452,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;
@@ -475,7 +475,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = "com.mergerobotics.merge-data";
+ PRODUCT_BUNDLE_IDENTIFIER = com.team2706.mergedata;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
@@ -580,7 +580,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;
@@ -629,7 +629,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;
@@ -654,7 +654,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = "com.mergerobotics.merge-data";
+ PRODUCT_BUNDLE_IDENTIFIER = com.team2706.mergedata;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@@ -677,7 +677,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- PRODUCT_BUNDLE_IDENTIFIER = "com.mergerobotics.merge-data";
+ PRODUCT_BUNDLE_IDENTIFIER = com.team2706.mergedata;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
SWIFT_VERSION = 5.0;
diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
index 87131a0..8e3ca5d 100644
--- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
+++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -1,6 +1,6 @@
=3.3.0 <4.0.0"
- flutter: ">=3.19.0"
+ dart: ">=3.6.0 <4.0.0"
+ flutter: ">=3.27.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index d41512b..9ead1a4 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -16,7 +16,7 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
-version: 1.0.0+1
+version: 1.1.0+1
environment:
sdk: ">=3.2.3 <4.0.0"
@@ -31,16 +31,17 @@ dependencies:
flutter:
sdk: flutter
- url_launcher: 6.2.6
+ url_launcher: ^6.3.1
+ url_launcher_ios: ^6.3.2
flutter_svg:
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.8
qr_flutter: ^4.1.0
- qr_code_scanner: ^1.0.1
+ qr_code_scanner_plus: ^2.0.7
gsheets: ^0.5.0
- shared_preferences: ^2.2.3
+ shared_preferences: ^2.5.2
dev_dependencies:
flutter_test:
@@ -51,7 +52,7 @@ dev_dependencies:
# activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint
# rules and activating additional ones.
- flutter_lints: ^3.0.2
+ flutter_lints: ^5.0.0
# For information on the generic Dart part of this file, see the
# following page: https://dart.dev/tools/pub/pubspec
@@ -69,12 +70,12 @@ flutter:
# - images/a_dot_ham.jpeg
assets:
- assets/games/2024.json
- #- assets/games/2025.json
+ - assets/games/2025.json
#- assets/games/2026.json
#- assets/games/2027.json
#- assets/games/2028.json
- assets/pit/2024.json
- #- assets/pit/2025.json
+ - assets/pit/2025.json
#- assets/pit/2026.json
#- assets/pit/2027.json
#- assets/pit/2028.json