From 9dea9f6efa2838fa017ed93054fd77234c1a712f Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Sun, 7 Dec 2025 01:36:53 -0700 Subject: [PATCH] Turned into a monorepo for iOS and Android --- README.md | 9 +- .gitignore => android/.gitignore | 0 {.idea => android/.idea}/.gitignore | 0 .../.idea}/AndroidProjectSystem.xml | 0 .../.idea}/appInsightsSettings.xml | 0 {.idea => android/.idea}/compiler.xml | 0 .../.idea}/deploymentTargetSelector.xml | 0 {.idea => android/.idea}/gradle.xml | 0 .../inspectionProfiles/Project_Default.xml | 0 {.idea => android/.idea}/kotlinc.xml | 0 {.idea => android/.idea}/migrations.xml | 0 {.idea => android/.idea}/misc.xml | 0 .../.idea}/runConfigurations.xml | 0 {.idea => android/.idea}/vcs.xml | 0 {app => android/app}/.gitignore | 0 {app => android/app}/build.gradle.kts | 0 {app => android/app}/proguard-rules.pro | 0 .../magiccounter/ExampleInstrumentedTest.kt | 0 .../app}/src/main/AndroidManifest.xml | 0 .../com/atridad/magiccounter/MainActivity.kt | 0 .../magiccounter/ui/MagicCounterApp.kt | 0 .../magiccounter/ui/screens/GameScreen.kt | 0 .../magiccounter/ui/screens/SetupScreen.kt | 0 .../magiccounter/ui/settings/AppSettings.kt | 0 .../ui/settings/AppSettingsViewModel.kt | 0 .../magiccounter/ui/state/GameState.kt | 0 .../magiccounter/ui/theme/CustomIcons.kt | 0 .../atridad/magiccounter/ui/theme/Theme.kt | 0 .../com/atridad/magiccounter/ui/theme/Type.kt | 0 .../main/res/drawable-hdpi/ic_launcher.png | Bin .../main/res/drawable-mdpi/ic_launcher.png | Bin .../main/res/drawable-xhdpi/ic_launcher.png | Bin .../main/res/drawable-xxhdpi/ic_launcher.png | Bin .../main/res/drawable-xxxhdpi/ic_launcher.png | Bin .../res/drawable/ic_launcher_foreground.xml | 0 .../src/main/res/drawable/ic_menu_camera.xml | 0 .../src/main/res/drawable/ic_menu_gallery.xml | 0 .../main/res/drawable/ic_menu_slideshow.xml | 0 .../src/main/res/drawable/side_nav_bar.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.webp | Bin .../res/mipmap-hdpi/ic_launcher_round.webp | Bin .../src/main/res/mipmap-mdpi/ic_launcher.webp | Bin .../res/mipmap-mdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin .../app}/src/main/res/values-land/dimens.xml | 0 .../app}/src/main/res/values-night/themes.xml | 0 .../src/main/res/values-w1240dp/dimens.xml | 0 .../src/main/res/values-w600dp/dimens.xml | 0 .../app}/src/main/res/values/colors.xml | 0 .../app}/src/main/res/values/dimens.xml | 0 .../app}/src/main/res/values/strings.xml | 0 .../app}/src/main/res/values/themes.xml | 0 .../app}/src/main/res/xml/backup_rules.xml | 0 .../main/res/xml/data_extraction_rules.xml | 0 .../atridad/magiccounter/ExampleUnitTest.kt | 0 build.gradle.kts => android/build.gradle.kts | 0 .../gradle.properties | 0 {gradle => android/gradle}/libs.versions.toml | 0 .../gradle}/wrapper/gradle-wrapper.jar | Bin .../gradle}/wrapper/gradle-wrapper.properties | 0 gradlew => android/gradlew | 0 gradlew.bat => android/gradlew.bat | 0 .../settings.gradle.kts | 0 ios/MagicCounter.xcodeproj/project.pbxproj | 601 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 29672 bytes .../xcschemes/xcschememanagement.plist | 14 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 35 + .../Assets.xcassets/Contents.json | 6 + ios/MagicCounter/Components.swift | 114 ++++ ios/MagicCounter/ContentView.swift | 129 ++++ ios/MagicCounter/GameManager.swift | 137 ++++ ios/MagicCounter/GameView.swift | 338 ++++++++++ ios/MagicCounter/Item.swift | 18 + .../Logo.icon/Assets/MagicCounter 2.png | Bin 0 -> 101929 bytes ios/MagicCounter/Logo.icon/icon.json | 37 ++ ios/MagicCounter/MagicCounterApp.swift | 21 + ios/MagicCounter/Models.swift | 50 ++ ios/MagicCounter/SettingsView.swift | 99 +++ ios/MagicCounter/SetupView.swift | 100 +++ ios/MagicCounterTests/MagicCounterTests.swift | 17 + .../MagicCounterUITests.swift | 31 + .../MagicCounterUITestsLaunchTests.swift | 30 + logo.png | Bin 0 -> 101929 bytes 92 files changed, 1803 insertions(+), 1 deletion(-) rename .gitignore => android/.gitignore (100%) rename {.idea => android/.idea}/.gitignore (100%) rename {.idea => android/.idea}/AndroidProjectSystem.xml (100%) rename {.idea => android/.idea}/appInsightsSettings.xml (100%) rename {.idea => android/.idea}/compiler.xml (100%) rename {.idea => android/.idea}/deploymentTargetSelector.xml (100%) rename {.idea => android/.idea}/gradle.xml (100%) rename {.idea => android/.idea}/inspectionProfiles/Project_Default.xml (100%) rename {.idea => android/.idea}/kotlinc.xml (100%) rename {.idea => android/.idea}/migrations.xml (100%) rename {.idea => android/.idea}/misc.xml (100%) rename {.idea => android/.idea}/runConfigurations.xml (100%) rename {.idea => android/.idea}/vcs.xml (100%) rename {app => android/app}/.gitignore (100%) rename {app => android/app}/build.gradle.kts (100%) rename {app => android/app}/proguard-rules.pro (100%) rename {app => android/app}/src/androidTest/java/com/atridad/magiccounter/ExampleInstrumentedTest.kt (100%) rename {app => android/app}/src/main/AndroidManifest.xml (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/MainActivity.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/MagicCounterApp.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/screens/GameScreen.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/screens/SetupScreen.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/settings/AppSettings.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/settings/AppSettingsViewModel.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/state/GameState.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/theme/CustomIcons.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/theme/Theme.kt (100%) rename {app => android/app}/src/main/java/com/atridad/magiccounter/ui/theme/Type.kt (100%) rename {app => android/app}/src/main/res/drawable-hdpi/ic_launcher.png (100%) rename {app => android/app}/src/main/res/drawable-mdpi/ic_launcher.png (100%) rename {app => android/app}/src/main/res/drawable-xhdpi/ic_launcher.png (100%) rename {app => android/app}/src/main/res/drawable-xxhdpi/ic_launcher.png (100%) rename {app => android/app}/src/main/res/drawable-xxxhdpi/ic_launcher.png (100%) rename {app => android/app}/src/main/res/drawable/ic_launcher_foreground.xml (100%) rename {app => android/app}/src/main/res/drawable/ic_menu_camera.xml (100%) rename {app => android/app}/src/main/res/drawable/ic_menu_gallery.xml (100%) rename {app => android/app}/src/main/res/drawable/ic_menu_slideshow.xml (100%) rename {app => android/app}/src/main/res/drawable/side_nav_bar.xml (100%) rename {app => android/app}/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) rename {app => android/app}/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml (100%) rename {app => android/app}/src/main/res/mipmap-hdpi/ic_launcher.webp (100%) rename {app => android/app}/src/main/res/mipmap-hdpi/ic_launcher_round.webp (100%) rename {app => android/app}/src/main/res/mipmap-mdpi/ic_launcher.webp (100%) rename {app => android/app}/src/main/res/mipmap-mdpi/ic_launcher_round.webp (100%) rename {app => android/app}/src/main/res/mipmap-xhdpi/ic_launcher.webp (100%) rename {app => android/app}/src/main/res/mipmap-xhdpi/ic_launcher_round.webp (100%) rename {app => android/app}/src/main/res/mipmap-xxhdpi/ic_launcher.webp (100%) rename {app => android/app}/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp (100%) rename {app => android/app}/src/main/res/mipmap-xxxhdpi/ic_launcher.webp (100%) rename {app => android/app}/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp (100%) rename {app => android/app}/src/main/res/values-land/dimens.xml (100%) rename {app => android/app}/src/main/res/values-night/themes.xml (100%) rename {app => android/app}/src/main/res/values-w1240dp/dimens.xml (100%) rename {app => android/app}/src/main/res/values-w600dp/dimens.xml (100%) rename {app => android/app}/src/main/res/values/colors.xml (100%) rename {app => android/app}/src/main/res/values/dimens.xml (100%) rename {app => android/app}/src/main/res/values/strings.xml (100%) rename {app => android/app}/src/main/res/values/themes.xml (100%) rename {app => android/app}/src/main/res/xml/backup_rules.xml (100%) rename {app => android/app}/src/main/res/xml/data_extraction_rules.xml (100%) rename {app => android/app}/src/test/java/com/atridad/magiccounter/ExampleUnitTest.kt (100%) rename build.gradle.kts => android/build.gradle.kts (100%) rename gradle.properties => android/gradle.properties (100%) rename {gradle => android/gradle}/libs.versions.toml (100%) rename {gradle => android/gradle}/wrapper/gradle-wrapper.jar (100%) rename {gradle => android/gradle}/wrapper/gradle-wrapper.properties (100%) rename gradlew => android/gradlew (100%) rename gradlew.bat => android/gradlew.bat (100%) rename settings.gradle.kts => android/settings.gradle.kts (100%) create mode 100644 ios/MagicCounter.xcodeproj/project.pbxproj create mode 100644 ios/MagicCounter.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/MagicCounter.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 ios/MagicCounter.xcodeproj/xcuserdata/atridad.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 ios/MagicCounter/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 ios/MagicCounter/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/MagicCounter/Assets.xcassets/Contents.json create mode 100644 ios/MagicCounter/Components.swift create mode 100644 ios/MagicCounter/ContentView.swift create mode 100644 ios/MagicCounter/GameManager.swift create mode 100644 ios/MagicCounter/GameView.swift create mode 100644 ios/MagicCounter/Item.swift create mode 100644 ios/MagicCounter/Logo.icon/Assets/MagicCounter 2.png create mode 100644 ios/MagicCounter/Logo.icon/icon.json create mode 100644 ios/MagicCounter/MagicCounterApp.swift create mode 100644 ios/MagicCounter/Models.swift create mode 100644 ios/MagicCounter/SettingsView.swift create mode 100644 ios/MagicCounter/SetupView.swift create mode 100644 ios/MagicCounterTests/MagicCounterTests.swift create mode 100644 ios/MagicCounterUITests/MagicCounterUITests.swift create mode 100644 ios/MagicCounterUITests/MagicCounterUITestsLaunchTests.swift create mode 100644 logo.png diff --git a/README.md b/README.md index 18ed6df..e3d090f 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,24 @@ # MagicCounter -This is a FOSS Android app meant to allow MTG Commander players to keep track of player health and commander damage. This app is offline-only and requires no special permissions to run. Its built using Jetpack Compose with Material You support. +This is a FOSS Android and iOS app meant to allow MTG Commander players to keep track of player health and commander damage. This app is offline-only and requires no special permissions to run. ## Download +### Android + You have two options: 1. Download the latest APK from the Released page 2. [Obtainium](https://apps.obtainium.imranr.dev/redirect?r=obtainium://app/%7B%22id%22%3A%22com.atridad.magiccounter%22%2C%22url%22%3A%22https%3A%2F%2Fgit.atri.dad%2Fatridad%2FMagicCounter%2Freleases%22%2C%22author%22%3A%22git.atri.dad%22%2C%22name%22%3A%22MagicCounter%22%2C%22preferredApkIndex%22%3A0%2C%22additionalSettings%22%3A%22%7B%5C%22intermediateLink%5C%22%3A%5B%5D%2C%5C%22customLinkFilterRegex%5C%22%3A%5C%22%5C%22%2C%5C%22filterByLinkText%5C%22%3Afalse%2C%5C%22skipSort%5C%22%3Afalse%2C%5C%22reverseSort%5C%22%3Afalse%2C%5C%22sortByLastLinkSegment%5C%22%3Afalse%2C%5C%22versionExtractWholePage%5C%22%3Afalse%2C%5C%22requestHeader%5C%22%3A%5B%7B%5C%22requestHeader%5C%22%3A%5C%22User-Agent%3A%20Mozilla%2F5.0%20(Linux%3B%20Android%2010%3B%20K)%20AppleWebKit%2F537.36%20(KHTML%2C%20like%20Gecko)%20Chrome%2F114.0.0.0%20Mobile%20Safari%2F537.36%5C%22%7D%5D%2C%5C%22defaultPseudoVersioningMethod%5C%22%3A%5C%22partialAPKHash%5C%22%2C%5C%22trackOnly%5C%22%3Afalse%2C%5C%22versionExtractionRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22matchGroupToUse%5C%22%3A%5C%22%5C%22%2C%5C%22versionDetection%5C%22%3Afalse%2C%5C%22useVersionCodeAsOSVersion%5C%22%3Afalse%2C%5C%22apkFilterRegEx%5C%22%3A%5C%22%5C%22%2C%5C%22invertAPKFilter%5C%22%3Afalse%2C%5C%22autoApkFilterByArch%5C%22%3Atrue%2C%5C%22appName%5C%22%3A%5C%22%5C%22%2C%5C%22appAuthor%5C%22%3A%5C%22%5C%22%2C%5C%22shizukuPretendToBeGooglePlay%5C%22%3Afalse%2C%5C%22allowInsecure%5C%22%3Afalse%2C%5C%22exemptFromBackgroundUpdates%5C%22%3Afalse%2C%5C%22skipUpdateNotifications%5C%22%3Afalse%2C%5C%22about%5C%22%3A%5C%22%5C%22%2C%5C%22refreshBeforeDownload%5C%22%3Afalse%7D%22%2C%22overrideSource%22%3Anull%7D) +### iOS + +TBD + ## Requirements - Android 15+ +- iOS 17+ ## Contribution diff --git a/.gitignore b/android/.gitignore similarity index 100% rename from .gitignore rename to android/.gitignore diff --git a/.idea/.gitignore b/android/.idea/.gitignore similarity index 100% rename from .idea/.gitignore rename to android/.idea/.gitignore diff --git a/.idea/AndroidProjectSystem.xml b/android/.idea/AndroidProjectSystem.xml similarity index 100% rename from .idea/AndroidProjectSystem.xml rename to android/.idea/AndroidProjectSystem.xml diff --git a/.idea/appInsightsSettings.xml b/android/.idea/appInsightsSettings.xml similarity index 100% rename from .idea/appInsightsSettings.xml rename to android/.idea/appInsightsSettings.xml diff --git a/.idea/compiler.xml b/android/.idea/compiler.xml similarity index 100% rename from .idea/compiler.xml rename to android/.idea/compiler.xml diff --git a/.idea/deploymentTargetSelector.xml b/android/.idea/deploymentTargetSelector.xml similarity index 100% rename from .idea/deploymentTargetSelector.xml rename to android/.idea/deploymentTargetSelector.xml diff --git a/.idea/gradle.xml b/android/.idea/gradle.xml similarity index 100% rename from .idea/gradle.xml rename to android/.idea/gradle.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/android/.idea/inspectionProfiles/Project_Default.xml similarity index 100% rename from .idea/inspectionProfiles/Project_Default.xml rename to android/.idea/inspectionProfiles/Project_Default.xml diff --git a/.idea/kotlinc.xml b/android/.idea/kotlinc.xml similarity index 100% rename from .idea/kotlinc.xml rename to android/.idea/kotlinc.xml diff --git a/.idea/migrations.xml b/android/.idea/migrations.xml similarity index 100% rename from .idea/migrations.xml rename to android/.idea/migrations.xml diff --git a/.idea/misc.xml b/android/.idea/misc.xml similarity index 100% rename from .idea/misc.xml rename to android/.idea/misc.xml diff --git a/.idea/runConfigurations.xml b/android/.idea/runConfigurations.xml similarity index 100% rename from .idea/runConfigurations.xml rename to android/.idea/runConfigurations.xml diff --git a/.idea/vcs.xml b/android/.idea/vcs.xml similarity index 100% rename from .idea/vcs.xml rename to android/.idea/vcs.xml diff --git a/app/.gitignore b/android/app/.gitignore similarity index 100% rename from app/.gitignore rename to android/app/.gitignore diff --git a/app/build.gradle.kts b/android/app/build.gradle.kts similarity index 100% rename from app/build.gradle.kts rename to android/app/build.gradle.kts diff --git a/app/proguard-rules.pro b/android/app/proguard-rules.pro similarity index 100% rename from app/proguard-rules.pro rename to android/app/proguard-rules.pro diff --git a/app/src/androidTest/java/com/atridad/magiccounter/ExampleInstrumentedTest.kt b/android/app/src/androidTest/java/com/atridad/magiccounter/ExampleInstrumentedTest.kt similarity index 100% rename from app/src/androidTest/java/com/atridad/magiccounter/ExampleInstrumentedTest.kt rename to android/app/src/androidTest/java/com/atridad/magiccounter/ExampleInstrumentedTest.kt diff --git a/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml similarity index 100% rename from app/src/main/AndroidManifest.xml rename to android/app/src/main/AndroidManifest.xml diff --git a/app/src/main/java/com/atridad/magiccounter/MainActivity.kt b/android/app/src/main/java/com/atridad/magiccounter/MainActivity.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/MainActivity.kt rename to android/app/src/main/java/com/atridad/magiccounter/MainActivity.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/MagicCounterApp.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/MagicCounterApp.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/MagicCounterApp.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/MagicCounterApp.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/screens/GameScreen.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/screens/GameScreen.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/screens/GameScreen.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/screens/GameScreen.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/screens/SetupScreen.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/screens/SetupScreen.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/screens/SetupScreen.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/screens/SetupScreen.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettings.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettings.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettings.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettings.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettingsViewModel.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettingsViewModel.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettingsViewModel.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/settings/AppSettingsViewModel.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/state/GameState.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/state/GameState.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/state/GameState.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/state/GameState.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/theme/CustomIcons.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/theme/CustomIcons.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/theme/CustomIcons.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/theme/CustomIcons.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/theme/Theme.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/theme/Theme.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/theme/Theme.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/theme/Theme.kt diff --git a/app/src/main/java/com/atridad/magiccounter/ui/theme/Type.kt b/android/app/src/main/java/com/atridad/magiccounter/ui/theme/Type.kt similarity index 100% rename from app/src/main/java/com/atridad/magiccounter/ui/theme/Type.kt rename to android/app/src/main/java/com/atridad/magiccounter/ui/theme/Type.kt diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/android/app/src/main/res/drawable-hdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/drawable-hdpi/ic_launcher.png rename to android/app/src/main/res/drawable-hdpi/ic_launcher.png diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/android/app/src/main/res/drawable-mdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/drawable-mdpi/ic_launcher.png rename to android/app/src/main/res/drawable-mdpi/ic_launcher.png diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/android/app/src/main/res/drawable-xhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/ic_launcher.png rename to android/app/src/main/res/drawable-xhdpi/ic_launcher.png diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/android/app/src/main/res/drawable-xxhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/ic_launcher.png rename to android/app/src/main/res/drawable-xxhdpi/ic_launcher.png diff --git a/app/src/main/res/drawable-xxxhdpi/ic_launcher.png b/android/app/src/main/res/drawable-xxxhdpi/ic_launcher.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/ic_launcher.png rename to android/app/src/main/res/drawable-xxxhdpi/ic_launcher.png diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/android/app/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from app/src/main/res/drawable/ic_launcher_foreground.xml rename to android/app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/app/src/main/res/drawable/ic_menu_camera.xml b/android/app/src/main/res/drawable/ic_menu_camera.xml similarity index 100% rename from app/src/main/res/drawable/ic_menu_camera.xml rename to android/app/src/main/res/drawable/ic_menu_camera.xml diff --git a/app/src/main/res/drawable/ic_menu_gallery.xml b/android/app/src/main/res/drawable/ic_menu_gallery.xml similarity index 100% rename from app/src/main/res/drawable/ic_menu_gallery.xml rename to android/app/src/main/res/drawable/ic_menu_gallery.xml diff --git a/app/src/main/res/drawable/ic_menu_slideshow.xml b/android/app/src/main/res/drawable/ic_menu_slideshow.xml similarity index 100% rename from app/src/main/res/drawable/ic_menu_slideshow.xml rename to android/app/src/main/res/drawable/ic_menu_slideshow.xml diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/android/app/src/main/res/drawable/side_nav_bar.xml similarity index 100% rename from app/src/main/res/drawable/side_nav_bar.xml rename to android/app/src/main/res/drawable/side_nav_bar.xml diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml similarity index 100% rename from app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher.webp rename to android/app/src/main/res/mipmap-hdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-hdpi/ic_launcher_round.webp rename to android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher.webp rename to android/app/src/main/res/mipmap-mdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-mdpi/ic_launcher_round.webp rename to android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher.webp rename to android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp rename to android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher.webp rename to android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp rename to android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp rename to android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp similarity index 100% rename from app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp rename to android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/app/src/main/res/values-land/dimens.xml b/android/app/src/main/res/values-land/dimens.xml similarity index 100% rename from app/src/main/res/values-land/dimens.xml rename to android/app/src/main/res/values-land/dimens.xml diff --git a/app/src/main/res/values-night/themes.xml b/android/app/src/main/res/values-night/themes.xml similarity index 100% rename from app/src/main/res/values-night/themes.xml rename to android/app/src/main/res/values-night/themes.xml diff --git a/app/src/main/res/values-w1240dp/dimens.xml b/android/app/src/main/res/values-w1240dp/dimens.xml similarity index 100% rename from app/src/main/res/values-w1240dp/dimens.xml rename to android/app/src/main/res/values-w1240dp/dimens.xml diff --git a/app/src/main/res/values-w600dp/dimens.xml b/android/app/src/main/res/values-w600dp/dimens.xml similarity index 100% rename from app/src/main/res/values-w600dp/dimens.xml rename to android/app/src/main/res/values-w600dp/dimens.xml diff --git a/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml similarity index 100% rename from app/src/main/res/values/colors.xml rename to android/app/src/main/res/values/colors.xml diff --git a/app/src/main/res/values/dimens.xml b/android/app/src/main/res/values/dimens.xml similarity index 100% rename from app/src/main/res/values/dimens.xml rename to android/app/src/main/res/values/dimens.xml diff --git a/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml similarity index 100% rename from app/src/main/res/values/strings.xml rename to android/app/src/main/res/values/strings.xml diff --git a/app/src/main/res/values/themes.xml b/android/app/src/main/res/values/themes.xml similarity index 100% rename from app/src/main/res/values/themes.xml rename to android/app/src/main/res/values/themes.xml diff --git a/app/src/main/res/xml/backup_rules.xml b/android/app/src/main/res/xml/backup_rules.xml similarity index 100% rename from app/src/main/res/xml/backup_rules.xml rename to android/app/src/main/res/xml/backup_rules.xml diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/android/app/src/main/res/xml/data_extraction_rules.xml similarity index 100% rename from app/src/main/res/xml/data_extraction_rules.xml rename to android/app/src/main/res/xml/data_extraction_rules.xml diff --git a/app/src/test/java/com/atridad/magiccounter/ExampleUnitTest.kt b/android/app/src/test/java/com/atridad/magiccounter/ExampleUnitTest.kt similarity index 100% rename from app/src/test/java/com/atridad/magiccounter/ExampleUnitTest.kt rename to android/app/src/test/java/com/atridad/magiccounter/ExampleUnitTest.kt diff --git a/build.gradle.kts b/android/build.gradle.kts similarity index 100% rename from build.gradle.kts rename to android/build.gradle.kts diff --git a/gradle.properties b/android/gradle.properties similarity index 100% rename from gradle.properties rename to android/gradle.properties diff --git a/gradle/libs.versions.toml b/android/gradle/libs.versions.toml similarity index 100% rename from gradle/libs.versions.toml rename to android/gradle/libs.versions.toml diff --git a/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar similarity index 100% rename from gradle/wrapper/gradle-wrapper.jar rename to android/gradle/wrapper/gradle-wrapper.jar diff --git a/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties similarity index 100% rename from gradle/wrapper/gradle-wrapper.properties rename to android/gradle/wrapper/gradle-wrapper.properties diff --git a/gradlew b/android/gradlew similarity index 100% rename from gradlew rename to android/gradlew diff --git a/gradlew.bat b/android/gradlew.bat similarity index 100% rename from gradlew.bat rename to android/gradlew.bat diff --git a/settings.gradle.kts b/android/settings.gradle.kts similarity index 100% rename from settings.gradle.kts rename to android/settings.gradle.kts diff --git a/ios/MagicCounter.xcodeproj/project.pbxproj b/ios/MagicCounter.xcodeproj/project.pbxproj new file mode 100644 index 0000000..54dccbe --- /dev/null +++ b/ios/MagicCounter.xcodeproj/project.pbxproj @@ -0,0 +1,601 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 77; + objects = { + +/* Begin PBXContainerItemProxy section */ + D2DB9B832EE4DD5100372366 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D2DB9B6B2EE4DD5000372366 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D2DB9B722EE4DD5000372366; + remoteInfo = MagicCounter; + }; + D2DB9B8D2EE4DD5100372366 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D2DB9B6B2EE4DD5000372366 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D2DB9B722EE4DD5000372366; + remoteInfo = MagicCounter; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + D2D1FABE2EE4DFF4000700F5 /* MagicCounter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = MagicCounter.xcodeproj; sourceTree = ""; }; + D2DB9B732EE4DD5000372366 /* MagicCounter.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MagicCounter.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D2DB9B822EE4DD5100372366 /* MagicCounterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MagicCounterTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D2DB9B8C2EE4DD5100372366 /* MagicCounterUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MagicCounterUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFileSystemSynchronizedRootGroup section */ + D2DB9B752EE4DD5000372366 /* MagicCounter */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = MagicCounter; + sourceTree = ""; + }; + D2DB9B852EE4DD5100372366 /* MagicCounterTests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = MagicCounterTests; + sourceTree = ""; + }; + D2DB9B8F2EE4DD5100372366 /* MagicCounterUITests */ = { + isa = PBXFileSystemSynchronizedRootGroup; + path = MagicCounterUITests; + sourceTree = ""; + }; +/* End PBXFileSystemSynchronizedRootGroup section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2DB9B702EE4DD5000372366 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2DB9B7F2EE4DD5100372366 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2DB9B892EE4DD5100372366 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D2D1FAC22EE4DFF4000700F5 /* Products */ = { + isa = PBXGroup; + children = ( + ); + name = Products; + sourceTree = ""; + }; + D2DB9B6A2EE4DD5000372366 = { + isa = PBXGroup; + children = ( + D2DB9B752EE4DD5000372366 /* MagicCounter */, + D2DB9B852EE4DD5100372366 /* MagicCounterTests */, + D2DB9B8F2EE4DD5100372366 /* MagicCounterUITests */, + D2DB9B742EE4DD5000372366 /* Products */, + ); + sourceTree = ""; + }; + D2DB9B742EE4DD5000372366 /* Products */ = { + isa = PBXGroup; + children = ( + D2DB9B732EE4DD5000372366 /* MagicCounter.app */, + D2DB9B822EE4DD5100372366 /* MagicCounterTests.xctest */, + D2DB9B8C2EE4DD5100372366 /* MagicCounterUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + D2DB9B722EE4DD5000372366 /* MagicCounter */ = { + isa = PBXNativeTarget; + buildConfigurationList = D2DB9B962EE4DD5100372366 /* Build configuration list for PBXNativeTarget "MagicCounter" */; + buildPhases = ( + D2DB9B6F2EE4DD5000372366 /* Sources */, + D2DB9B702EE4DD5000372366 /* Frameworks */, + D2DB9B712EE4DD5000372366 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + fileSystemSynchronizedGroups = ( + D2DB9B752EE4DD5000372366 /* MagicCounter */, + ); + name = MagicCounter; + packageProductDependencies = ( + ); + productName = MagicCounter; + productReference = D2DB9B732EE4DD5000372366 /* MagicCounter.app */; + productType = "com.apple.product-type.application"; + }; + D2DB9B812EE4DD5100372366 /* MagicCounterTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = D2DB9B992EE4DD5100372366 /* Build configuration list for PBXNativeTarget "MagicCounterTests" */; + buildPhases = ( + D2DB9B7E2EE4DD5100372366 /* Sources */, + D2DB9B7F2EE4DD5100372366 /* Frameworks */, + D2DB9B802EE4DD5100372366 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D2DB9B842EE4DD5100372366 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + D2DB9B852EE4DD5100372366 /* MagicCounterTests */, + ); + name = MagicCounterTests; + packageProductDependencies = ( + ); + productName = MagicCounterTests; + productReference = D2DB9B822EE4DD5100372366 /* MagicCounterTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D2DB9B8B2EE4DD5100372366 /* MagicCounterUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = D2DB9B9C2EE4DD5100372366 /* Build configuration list for PBXNativeTarget "MagicCounterUITests" */; + buildPhases = ( + D2DB9B882EE4DD5100372366 /* Sources */, + D2DB9B892EE4DD5100372366 /* Frameworks */, + D2DB9B8A2EE4DD5100372366 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + D2DB9B8E2EE4DD5100372366 /* PBXTargetDependency */, + ); + fileSystemSynchronizedGroups = ( + D2DB9B8F2EE4DD5100372366 /* MagicCounterUITests */, + ); + name = MagicCounterUITests; + packageProductDependencies = ( + ); + productName = MagicCounterUITests; + productReference = D2DB9B8C2EE4DD5100372366 /* MagicCounterUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D2DB9B6B2EE4DD5000372366 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 2610; + LastUpgradeCheck = 2610; + TargetAttributes = { + D2DB9B722EE4DD5000372366 = { + CreatedOnToolsVersion = 26.1.1; + }; + D2DB9B812EE4DD5100372366 = { + CreatedOnToolsVersion = 26.1.1; + TestTargetID = D2DB9B722EE4DD5000372366; + }; + D2DB9B8B2EE4DD5100372366 = { + CreatedOnToolsVersion = 26.1.1; + TestTargetID = D2DB9B722EE4DD5000372366; + }; + }; + }; + buildConfigurationList = D2DB9B6E2EE4DD5000372366 /* Build configuration list for PBXProject "MagicCounter" */; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = D2DB9B6A2EE4DD5000372366; + minimizedProjectReferenceProxies = 1; + preferredProjectObjectVersion = 77; + productRefGroup = D2DB9B742EE4DD5000372366 /* Products */; + projectDirPath = ""; + projectReferences = ( + { + ProductGroup = D2D1FAC22EE4DFF4000700F5 /* Products */; + ProjectRef = D2D1FABE2EE4DFF4000700F5 /* MagicCounter.xcodeproj */; + }, + ); + projectRoot = ""; + targets = ( + D2DB9B722EE4DD5000372366 /* MagicCounter */, + D2DB9B812EE4DD5100372366 /* MagicCounterTests */, + D2DB9B8B2EE4DD5100372366 /* MagicCounterUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D2DB9B712EE4DD5000372366 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2DB9B802EE4DD5100372366 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2DB9B8A2EE4DD5100372366 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D2DB9B6F2EE4DD5000372366 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2DB9B7E2EE4DD5100372366 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D2DB9B882EE4DD5100372366 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + D2DB9B842EE4DD5100372366 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D2DB9B722EE4DD5000372366 /* MagicCounter */; + targetProxy = D2DB9B832EE4DD5100372366 /* PBXContainerItemProxy */; + }; + D2DB9B8E2EE4DD5100372366 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D2DB9B722EE4DD5000372366 /* MagicCounter */; + targetProxy = D2DB9B8D2EE4DD5100372366 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + D2DB9B942EE4DD5100372366 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + D2DB9B952EE4DD5100372366 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.1; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + D2DB9B972EE4DD5100372366 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = Logo; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.atri.dad.MagicCounter.MagicCounter; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + D2DB9B982EE4DD5100372366 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = Logo; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + IPHONEOS_DEPLOYMENT_TARGET = 17.6; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.atri.dad.MagicCounter.MagicCounter; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = YES; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + D2DB9B9A2EE4DD5100372366 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.1; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.atri.dad.MagicCounter.MagicCounterTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MagicCounter.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MagicCounter"; + }; + name = Debug; + }; + D2DB9B9B2EE4DD5100372366 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 26.1; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.atri.dad.MagicCounter.MagicCounterTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MagicCounter.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MagicCounter"; + }; + name = Release; + }; + D2DB9B9D2EE4DD5100372366 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.atri.dad.MagicCounter.MagicCounterUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MagicCounter; + }; + name = Debug; + }; + D2DB9B9E2EE4DD5100372366 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 4BC9Y2LL4B; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.atri.dad.MagicCounter.MagicCounterUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRING_CATALOG_GENERATE_SYMBOLS = NO; + SWIFT_APPROACHABLE_CONCURRENCY = YES; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_UPCOMING_FEATURE_MEMBER_IMPORT_VISIBILITY = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MagicCounter; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D2DB9B6E2EE4DD5000372366 /* Build configuration list for PBXProject "MagicCounter" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D2DB9B942EE4DD5100372366 /* Debug */, + D2DB9B952EE4DD5100372366 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D2DB9B962EE4DD5100372366 /* Build configuration list for PBXNativeTarget "MagicCounter" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D2DB9B972EE4DD5100372366 /* Debug */, + D2DB9B982EE4DD5100372366 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D2DB9B992EE4DD5100372366 /* Build configuration list for PBXNativeTarget "MagicCounterTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D2DB9B9A2EE4DD5100372366 /* Debug */, + D2DB9B9B2EE4DD5100372366 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D2DB9B9C2EE4DD5100372366 /* Build configuration list for PBXNativeTarget "MagicCounterUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D2DB9B9D2EE4DD5100372366 /* Debug */, + D2DB9B9E2EE4DD5100372366 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D2DB9B6B2EE4DD5000372366 /* Project object */; +} diff --git a/ios/MagicCounter.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/MagicCounter.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/MagicCounter.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/MagicCounter.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate b/ios/MagicCounter.xcodeproj/project.xcworkspace/xcuserdata/atridad.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..0707aebecc9b99759dd1750edb9dc035eb09eb68 GIT binary patch literal 29672 zcmeHw30zdw+weVi9aLZx*<>4bLi>#jMOM%hEQ@%of`hE!$Ts`<^?OVG-;7`+s}i_xruyCqI@s_uTWG^X$)a&UtL? zXlwO!$z-o%2*WV~BQXl2F$Nn|l`zlM>1lPhS0^|-n`XAcr}Bg@cSlu%yK$DQsmn7C zLn}8mhy#o5(_9N(&4&I?uVEt0&tdO!cDY!zV=V5*Mq^{JP%I1!$D~*~mVwDIIi|pr zmgYyq|qyBu4Bt-!9t zuEDOwZp3cFZpGGPJy@|C7K7MBoHLkOW201Ve}jKVlRS zN<bTXeTAg7Yk$U?G+EGBJa z30X>(k#@3@oKDUlTgaJY2RWDQBo~uckW0v=Sra71UMKHPj8%I_fs+L24(pi`q>+L_JJB zLOn|Dp&q05Qv0Zb)JxRM)GO3U>MiPR>K*ER>SO9l>MZpY^%M0ook&llQ|WX%gI3Zi zT1)Hb96Faa(k6Neolh6iMRX}$Mpw|4bS+&+Uq(A=7d?ZXMbD<)bO+r0WvZy`6r5-bFt`@1^(A2k7VM7wMPjqx2i}Tl6XV zL;4K;1N|fY6a6#&8-o~}A(+w37{;FoU;>%(OfVD9#4`y@3L|CGnG7bA(K0$Fhnd1m zV+xsa#=%rDHB2KjgK1|vnFY+X%yrE5%ni(q%uUQ1=4NIsa~rdf>0$bq&CK1*Hf9I& zAoCFOF!Lz0hk1fIz&yh|%N$}}W{xuNFz+&_nD>}Zm`|BA%vt7p<_G2%=64Y;B1E(( zQWPbM7R87pqF7O!C|;BxN)#oDl0_+^iK0}IMwBViigcnZ(PUA!C`V)x6^V*PHc^SF zR8%Ia6V;2RiyB2UMDs-RMGHg=MVE^fiI#|#IuhEu+uDv{{#XDOh>5WvETpp7o<7^P z&{G4y`*meSLQ|X5;(STIYnAG1jf;skl7QEfFCjZ&RLsg$aeDy7tD z(Ws;P%L%Rox&SUtqRWx;tlkI-E@|v%9H#j;p=P2Y3P&kELzJBCtp-3X8^K zFbNim#jzAivkWU@{n%0LXm-q2ECEZzlHgl{P2~S({n-FE5WYvTV(;J52C)?2twRSq^xEjPs0}bWQMx(Q{(&?#a^|ZoRm91Sf?XB%CZ7z7yAdZ2KhNdnsI0LJN zc9XlktJB@q=IU$^=ki1OFfsg@+M>3olyaRk(jol$0yDivyjOsmmkT1<)t zarod|-0rqUXJ>(LE)C+a!Drri4m|P`HHf2R5{*(K*UDrPxlE&x$ly!(Bveno#|p5iK$t=x z!vuB;o6p+V681eH%?B(HMGUjD&vef(cFt>UaRL#9rh$)!P8X13Ec9}8wYIf(wYof& zt<7CCg>D7yo(?eC?#{t(18)xLW@&Eq^^s@RRkXV1n_Z3FEiF9GeG?cMzCj#R9H&%_+V6|8sR?kMTk!%zj&Bok~HDH%vPOK4YVkK-kt7KKI zj$fjrs>$8#N{1y(Ywb!Om|yw;r5nV`fi4B@U9Psa))rTLlgl*IIkdmY-3-iR@OZ$l zakh5>R_v}eSiP%xU`+5@rgXZyJA?<|<9Hgx@dINQySrMOTpsT%ynhb7=Ud%utOHBi zjJ08Nuy)MN#Zy;k1M3RSAE( zJaxr(b1MjzyWQEjuorqQuPV0Nyw04!_QU35cLN(iM<0xp*eWcf2fK=$*n_QRQ+dV3 zi^@gcISQ)qI_!Gvh6eEjAS$mgN_aQ3%+=B9@_^cM^0Q#m*h#jr=v<@E1w}YPQgqTJ z;5N{fU4|y0g2&YiYQ|OF+U1(#U3|T#pPB{G;+gJg;?C#yT<1@*ufb{l z3HuF^$PbM{aVP;?WCc=zdz=G~aRDksHdF;JaWk4D0K$>*8=U@O|Ij>vUDseYgL$wl z=x7sci>t+n07>mMPg;Q6PY_4}~3*e%%df4P5yxUr$UYl^8tt}$1X55fT9R%ix4 z4gp!du*2oa><8CSVQ)~%2m5)s!45jOy``WT__%dOD=0@{8SAjyfO^IDqV6t!!h@pL zhppp<%_m5=V|QX{z1SVt1~!A0^byI47^;FU#a6R*mgUgHM_j}O4SlF}d^=Y7IU zML~NI6CJ?gV`n_jmmYJRWc> z8pOJRPXD?}PxpfQ7c7Pk-|5lgU#^UW4Xh`PY56(q?<(+PK7mK!y9upc7n~*#yP4Hlk z`v-vD8y7S_IHccMt#fy{zyox5@)7}VUYC2etKHh_YHJp3hSxC!HQ4ED0!a`|lvgJ= zh@)NYya+TKySuvF@D6VQ2j#`Xio_Ur!6Zu`4f7A5FvL&Z#1cm%qoQLjX1>6!HgtA6 z7xqR=2J9BR9~ZxgrQoH+r0D~)=k3>*7%hS4De*lM!3U-U$MV9tGziAt(%I?mgh8a~ zF!=`16hc1`e6UvoX284R%^5Pedun^KBcB~$20#BnGTZY|^J%GJ}y@nlwgodD#`DDhIkjnTSQOF-s8Q~}z#h_S7 zU#LMR=OR5MEX-&InvJeSH=$kVWkCu5rB*)UlbV+RkdI4WWsSUdA(-{o!E&3xa@SqR zmx2E|%l+6B$8)aV)FV3TH)?dig%*2^|1gW)Am(j%TXTDIm!!?@Y?cf)o9PR9SF)qi zJxkK)YI1gaT$0uoIU6A#oUeSZ@+WXwp|bJ6EK2& zK17%gL;b&>kJoqTy?^@<_96BOZ(l#cK4uHpsl9;n&)8{f5wF~nffG7QI$bkdot>`c zfvCu9PAm($Twaf_zzk+7c34jnc%Us1>J063)En@BiJjfV777l)*Vs1$Itsj`tJrF`W;=*JjTj^XmuwUo4Q`n~3Setl7rU6ff?dMi$R1_iX5V2?@kj^)uifmL z;p}ef@S8QMF(LwF>#_2-G3hsOe7Uwn^UPVabLeF>Bp>kBQtt-MnRhQELQ zC47e319ZC}vVhklzM$`dVGH;Wpag<}=|#>3t#ev0cQtz<^&=idAPKk%C=x~SYLu;G z>)GjS!)DN@aVQ=ou$Qqj*iP2NN~;Q8GrEN7@EMSS*$v>dMnDCRvFftcmYLqpJ}{Gz zj0cm3q$nL_uuis-ZDN}@V~L0chE0I5-vvzT&(kZS0tmvJQ^--c=JQDaPnmPR*IK|j zCk%hu9~;@5K*IqNhCTGY?(PJtL(tUP0hS%!4;j|QJ34Rg#b98(DJ_(Zax6b&Su;CP!X1Z zZ0sCZU^|;s55o<52X*|X!E}rmKJpU>_1@mv)!pnGzG9j-ZKqU>Np31;y2A9w!w8NWooUQGH-T90nuUBj{ zd}9tiV^^~*do6ndyOafq%oqrFgv1GmH7`KIfP<;70mKS|bpv*`58Vjf+ZvW*uVk-c z3y+~&(5I0+jBV-#ViUG6{T&2;GS`Hi#pE zB!dw)z~sYPK|i*3_M*G^IQwt=_-4@q)@MDt5_HyzVGe@t`4;cd{;Z6Q4BjMpGMq5kW@mGT*)`AA#s?}H@C{bW z*_JWX5zJ_HdxkfRz=(j4U1&F0M$k1r0{WPu7d^zI;bM=#9Y&9!N70@dKDi{IkG-C~ zu0dSzpPc2O|0>Mxar8tj%+1GvedtNF4_iL82{M``&ZgO}W}ZVWkSbp&ytyAe-5}Sj_zYVEu+h-3W&;a6!smW}1~BFutU>5LX!G7j zA43uZeSkhhAF+3^8`wMh&?o3q^clO6eT99EpXWFj%wzE6gZlxFq1On4!tgmA@NiHj zAqia4+79u?uvU+NytCNZ9`qG^7h8A|eT%+B-=iPUkHAkj$;}er%6y>!ic&)sU@Vhd+x=#0a1$sDzVbx$#x`t$@z``tn7&yKy37OlGSE)j+56Z{fXY|dm)U#RdxvRhoWMz+mS(rGJwD~> z#TPybR3SbZAA|d|y=))5`2tlaXg;6b8KRf^oA5BND!TjcRgs`{j^VLbARdQy;0bsl zzp2;g^tfu_cc-fj48}Yci?Q3-t^d`!2~WW%I*RR}6?^d%uP*B7Zft995)``BTk z0@_OlEDN8N6FAzZ%+gC-Ely9j$L{S58zioNuLqanS}bHco{neWGF*-;a3!w7)wl-F zWbbDmV0W+&vOC#b>~8iU_F?vs?Y!rMPsS4Q96T4#gWm?PujVPrv3;5JYccnQ0Qk2Ybe8Mk9+H{<1q=D*p;fS>vALUFB+ zvbFehETk8&!|U0{*(ZAO2K+MiN%kO58A%D?p#?U;+93+_KoI81+visPl*!_L@EPOWJ#y-tH!#>LcN*aOOjtd~$L3;x3GXADx zxqG3x)x*EY+iu?;aP){bJgvnT|?~_Y+ui2k9ZR-wK z-TFsop(6G`yuNwU&^QENf^$6Pm*On@9Q%APz6|@6Jp|EQ(sZ9vEOfQEbj_^g`Nr#S zxjbXXy%Mia^$vrHjXo4#gI~{&bS-`zdxU)nQW^L%80Qe17hr`YVf4o4T_Yj-bi?8Q3&PAUI zYmB=-;O_UVGM`w0G+dw zeFL=035ekarWvna-7yUBkKlVpy!$x3`y_i3-hGQ_$Uu188=%9UHXo41>)q_IF%IC* zU}>Q5di|&1f!7ONPVfhfZSJPopyy($$_AeF^9g^ZV<5uu4gEg;6_$2C{sI0W{t^B$ z{t5mm{u%x`ei}c6e}R9ApJhK`KV?5-KW9&~XV@>;FWIx~SM1m9H|)3f<6q<7;NL<5 zBN6`rzJJ1h#(%+o#m~XYzT*(Z;pw2E0ytdG|4?waio;DDUdG|=!pg(SygLcQO&6Fw zm_4W?Z^BA==GD3$tGknbSSOqnu{X_h@h(t8S$8`mIJ#Qfy)m8F)9r$^F6>Bo@yQ>K zfc^JGNOm>3jNPqm%`lFkt!-#WPr;00m#f*;3=HElp~49lm`ackq?XU*Gs#n&{D~A8 zZ-Vfg-*{+mfr+#WxwV4!8E#-6n3EUh3m{L$Z=fD)l8)0s-xZ)pL3!FD`b$I}o)BDFzSQEXl&NYZD{~=gBf4JLu zJ`#Mup}^9;z0DK&^H`Dn!`hQqkUEg9?&9xe;uTWJ z9y)>b`VAgYMO=oZ-2=KXh^Qs%KsSyh8bAwz1{}k|CdxhRZyXZeLpX^>qKRlGT*M5b zg+t>wl+GbNhw3?WIft&|&@H^rFsLls1UmaSh+Y2$yp=J;)f*|Ca|PJ28(a5Z0Nc>f zF%slF0VM1_{!v;6h|7sZ#A4zKVhOR7UB|+G=W1A9E#jdTqz{&iPgl_ypKX$hb3?*3S1BHoH!K2p-Eo%1f>by$lu1EBZE0U zwjGFDFA^?}2z~$G3SS9`6MBdZ9E$FbUx~XQeuZ3&_X`j&d=>hnatpByA|K)&Vk?Iv z9E$BFwiEYqD2_vkydVEJ;px8+-ui$%NbKf;?8I3P#Y3bIg~2IzLy@-{>#zwe-!%?5V#PBM#iq^ z-blFjl)NBh%iXtx#@njjh1i!k3|)_m>>6=4^3PB2wkdjV+W6DD!_UryFn7NM^ZxT8 z;#K09H#jAZvPU>1?M0sv53#TD_`48$zBf)1kXHS-WcQPP**#61A-(|FJYk1It8cwUe6OP7zz0A`G6cGYj_mqfedXg_u_pOF-xYqaJMiH#?1BD; zk`u@%SST66bAJ|aKN-z)|Ky8tzoI=}pCnLU9O-*MiJa)AKbgYQKM&|nM)UNa{8#iR zGswwU+P$QVl#>clNvcRSsUb5-EvX~3IAq|EkwYd9nK@+Pkd;GIIF!$!0uF)mGVNY6 zTVMiGPh3qJc@<7tcsAfq%zIUMF{p43)d*U=_J5xi=eK19ZwHRB%;WdOA%SSEIwkCL}D$s=rhCWCPjAbK_;ClS4KRmGqKLWHX0KIaL0S zDSWb(Y~z8<;#t0oXZbnUryR0hBsVvfHu(75L(T_TCA-LOavq0ZMHL*X>?0SD3wecK z#i8o|@nk2-g79-Ag+ENY`^uI#i|e-SoHKoN_uCn~o`Ah@^2(82|CnCPZV4^CXIs3Y zMtuB^4TE}O6}h@UB_>1`CCNGLG#-zCq4>#LNJtBACvPR!k++fS z$=k_0$PMJ3nRLrok4vb#7mgF`LbNl1(F*)8&J!D%Dm!VHII z`XnCk-|w_7_}?e)7jYto>`eT3>^YE+@-n=KL#;j;ejH?&e1d$E|K`vv4$T&Rf(ach zj`B&&vm_jE?j;YB&v9rDhuV9|L*xq_a&xHrpEIE^lSg^6e1&|K1f$czp}8FD>?4nn zuk&K*;ZWEAyjZ>svi8nMSrg05nSaDu+WXFjejok~_aiTs??Ko1M|O3GRDT}!s-^CR zh4=26v*I!LpjduHe#%QBOMb#W&!Ks|6n@T2;rtO&I2L{2qs&?I8$oox=0z7S0sZAm zzBhiN(7)%iQMe$w6fJBOQlog$UE~wpD}>EL4qeGhuGeFu0)XA9Kn^YLXE$mbu-nKz zuKuY};Z!6nhMGV@e7A%{OM9s(Dw;!}+n4=gCWDHnl6W8qyvg9ayE$+Q;Lt^!B;Tyk zDA`3_J4!(*dDjl&)D_^`Q5r0e${b1Xi|kKPS;jC?Olq00VED%<<1Tq!7Ms+OnnDj$`v9#GIX50bfoCo?Gg)jl#e{hen( z&7$V;6qrqcSYN}TYkR473RKB;9J=wJBXbu8MjoVzn#W7i^?)&IA@9uIFal-bUwueh zLM^*ErB_f_@|3=bgY#NI=~Y0!)g#Gwp#6AU(Zj`ScCXs7@r_r%UI$u$x)!=#H?pg` zE4+4Q-?W%5pYJ!k)wpKIfEJ)`q;3`{y@sds+P|5%Z`SLn%|L4EcIpml19d00k-Cf8 zMDctiFYr?HJavdeK-tZ`)Qi+% z4&BY6d;c*TOub6I4iZ4UMjfS&acB#N?%~kZKI%C225*D6acKMhxDBS>1(7;6Ql!pw z9L+d>*|fOZ=HI>locXmkOX}wOl@ChaC)DSH*7%Iq z8ux)YrOxm+`2G=EW9*p6eFFG3^_?KH-|`~6<8NN_z3~ejfTisa2UEXN=cwPP->E;S z^VFX-2DvkwCTNnTXqskd5$#8hqDRwXXnzjv=R4bRsr5dF|Wl`%aP!Yg16pBKC^2nt@Q7FttjZ9{eLg5F1qP0R<2pL@Llo`!B zlgXg97!AXqWC~FBTpARuOli<4RdT6OE>i#$omr}rXIi8tokpVrv}sfd?a;Mk3sCl6 z8Wg37X2E{5fXe=7I04tO0 zWB^5Lk?Jz725F`u(~xOVWSR^r>rg0G0m{BhgJRUF)kXy{l}wkZmZ~fYwNz_Wo1|u? z*=#Y&OggJsF%-%)0m}YMgQ786j3%|pB(=yaaHH2^)=7<-W~0=o%gp2{52Zkc(WOLy za^TXSs5NqnLT3f0Qd&S>G#a(kpw+@5A%!+mrO?39Aj2?>IRq%rUK$jg#*!)1$aKJ7 zYFLX_tB`8dI<-`-l&LZmM!7~V9|omHfb!g>L6Msb3b|4XB*`=b^$kj$)L_muN;M{> zNoOz_tQtk;P`We-P~c3@rDzzF(rC?80RW|04f2vHR{%*A8mU=pRe)qFWOBtYscaUY zym)C)j0V6NPje6)K%2^7k{aY%qf`NMq_gNO7OO=wbSC_0ncWU$ChQbnfP0@Q~hIz|8tLZdSn;X=F>IC?0?76?#|UK$jI z!UXCnQwNGm20SJQp4Mq}P*p~4P^t`8qfuv74~24t0Oj>dgQ7L?T308RniWP~!zeWX zMQN7G%)n(jxlE-p50jT=0+cr{4T{xjHkr(zT!8Mpyl8l-1W=$uwQ8#x&IYRGL)UVZ z0Oid~grYRcGv&ZupkV+Cs9~wrY{-;?nwDEN1~r^a)D4AltpMe%OM_xmnN&t4kQ=NP zXcz^^zSaVNDHJl9!lX8;tX5gS6Gh)Z-#9FdN#9Jb9p12xzHNBJ9rT9b4R_Iy$Ml{K z6jGsd9}U6O(1v^Ht-~AcrSBWwu!DYZc*Ab`q2UdW(tCzCJWf9`yx}Q&|L}%q=x2vF zJWn4Q-f);cGQ8mx`qkkL$LQCGH=Ll~9NzFY{m$@)_vrVBH+)2Y3I`M6KpAYsA@;{! z`ZF55zHd1kft%NlvoGkc;c^B2C4H6#{|`3kzUR;nee^f+ansad*SbkIoiXmoS70s%Sv>q>GH+AhZqb?afTlzd-Os z|H`4C*uvN8-{Hm*+*_jmpwH8PGFY`xkOt1Aa|pWp!l9oz1Sg~ZYtIzLLrI$M4KW@? zKUx`*VF2|E#n2o&$D!YP84=^hq2D?52P>@*mR=#O3~sNCTel7>9>*_yi7* z;P6NekK*uX4v*Q&EN50QS28P^tC&^HYUXMVmvDF-hbM4&B8LN;CUbZihf8_ngbI2G z>KMQY&B5Ddo?4IhmQVkcG;uRr^lfe9&x`r4PJ}^G6QKfvkfAGtJ8a%6aP^)hxK{+% zQKU{dKnw@mg^{Fu>8}2!K)wW#6)tM>2a%yuJ%5#l-;4G>Kg!&K1p)=vO?P)TyP(8E z|G9M@eX)X0So6r$Xdu?X!U^Xy!dhZ)t>^a=z=zj+~!-XjL=~d3m zUCgFU93C%>zk%uP^9>VKU@S28ANRBM&vOtF@%py?82``5EnAp-h6~Jg25ff^b1#Rd z^f32x_(UGEqg0;FhMhr|)7ubBs9w**oTS<~Z{PhpRbU!{M2I%$v+f<}D7_a(Fg} zdutO#!z@M|VHZxMd%V@`)EDc(pJa#2y3NCnxEmJ=FM8kOYeJ3~czAyvfDdEuGavHw z_<+N8J*f-%Cz(N1eB1SY83)v zLh?VUrqyGC;*5N8PY`yfA_&eG+|-7uig5F+3$9+wfx;6*n+u>?CETinG60};ga>x> zG;e7NzJlYhA$%?$7(b!s(5oBO126LxtA+sP&&q%n^wwD%+FsxRjQ|x(yIfTR6cZ~z z|Cr!nnlNX`CCU{BAgk1@(O9HvlM#|KY6$)_Gp(5ltJRn(H)cA#WUlj#q0pquYg$Wq z7LaSxls?2y63L+KhbT=X6{U+ZINZ+RWir`XAC5KmWcr}OD@DvXL z85w@%qrA0?$17ibarlD@z8ngFHFD%5TL)hr5wI&8@mBwB6L@Uzo-+qd5(#W*ceQx0 zTsyp%WGbLWtz0G(pYf_(Q7-mf!5Z*v68hFR0A)Pn2!jAr2osCTM(Q)WlR-*5vH?97Dm>X@y1h%Bs4C{!+w3 zAvY+I*1u4p{3lpXLl@|q#%{O=3HBn4C93V+P+^n5=X5MMBp@_Af}i{B;f0HP!dS9r z0@M)>0<~!cC*qCh7)fkgKzu@CQgRBk*`b0Cz?xxgbGCRZj1Cl+fwFE;M%e3EKtJA! z4ICmIyGqP5BB)Iq3jCc82g;#_khf%rqkxBDgv*V`0w$$N(=))$5#SCMtr=kD2^T&Y zvcQmWELuUbB7S9Zbwr;+sbalFkozD5!HxkX70d=fR3Z$)FJjP-0o!Yn{S+>;J;# zco^L`GGCe2J)}4uEO_84e~W+6u@hrr`e?DOr1WCN@rKuSEh!tUkXLLgcU)L>s=T5M zXzi_%2lhx)K}sQ zi}W_a>lbPNi;8z{sCKs)O8s98CI0V#ikWv|+n~Jv9w_P07f*Zviu%8Vy$&_iK8MP8 z=aHYc?pO#sf&&*&@a1}_p0WnY@ZSc7_&1=9P>BB#D7XIu`W31x z`~j5}XehBi8u!P=_&9t#9s+mZi}4aDq+f|Q!j0wy_#%7-l+3>k-vCAOAHg4oqWG`D z<;c@;-|>6=7r0F)7L);w`t?au|L^`^1UT<5uL~e*5;fNkH~`>>IQyWQi;{>NW1~^&rn(|6wPX6Ld=c`;qug_O6AzQTh*h@+FPDJ>&Hv0XIjze#&COPkF5V z#NPGbr?|ypC`s#vlC)0vUmqm!vkQL8p`x}DlSwi#16Cy1A=X=54Ol1~i^I~qJ@TMn zVg;1ln@;JW*1nyprDjlbpw@mDH4m!oUqLOUIBF~P6m^7pmwJ!-fcl8~g!+s+O??5? z^v}bdDh~UpH0-60f_>Bg*aOwmRdfq|BUHct9;(^%d4V*jT3^kyLACl0s8`>`%!8Ws zmqU2B1nSk_%-q7PW7b0`b0@?lJy5g$Zm3d!7;4gg2NmeUq29a>YRcD%T7a;#MRP=M zpx|0Vvc|CRn%`LFiB#{X{rz5XBge;6PN2o8u0 zhz^hh#05+Ym=qul$Ow=JR0k{x*c z^kC4gpvQxr40>w()8k(pe`5SQ<4=u$fBYxoKO28~{1?H&!Mb2$uqoIQTpU~xTpQdR z>^t#YnLvIVcJ#<6p#?Vcn`$FFiJs%bt79N%q zHZg2cSbCT&Oc7=cvxSw1RfJWA)r7T#wTE?tb%u3?Eeg9LY-t!5wmj^nu#I6m!}f+f z6ZUG@iLjGlZ->1b_Ho#!VV{Sc3Hvhar?5Z6QFuUjOn7W~e0XAba`?pXN#WA)jBtIp zG29$(4bKms8eSM)99|M$7S4u082;{rF%vQ;v`kn(;n0M4C%iY|mx$336CxB5mI!A= zQ-mv`C89NAcEp^ByCSwm?1!#^#JR}u$mqzN z$f=Qqk;RcEk@bga2uuaABpdT;c>=ws2JMgJNzI>tX{LQHH-d`x0Ya!h)REJhKdiqXVOi)o6v zJZ5>!%9vF#SI6v#IUMt~1W95fYDs~_A@NAMCG#Zk^_=gB(F)1NsdcClzc4tRPwpxN6F8UUnRfAieiIfLu12Z zBVtoxWwF_@xv~0KW9*%=TVn5v-5L9Q?9XvzTzFhWTvS|4Tx?u?Tw+{u+{Cy^and+r zoH@=KmmfDZt}w1Rt|YE3t~{fNUV=3tKVfP@VS+uu zkx-dXolu*wBH@vQ6AAApoP~qXc;e{9afzXcl0<2uKGB#sEwL)GKCvOunK&bHX5y^G zw!}q=S0!GZcyr<{iM@&UByLN*H}S#5U5O7RK9cxE;^D*-iRY7;r0Ashq^u-Uk~ztm zWKXI{s!FO&s!wW2@+2)z;*yppU72)M(%PgulI~2pE2$@GYtr_l`;s0=dN65k(lbe~ zCY?w+ne=wjyGb7>eVX)n(wU?$lg=kI$>WoQlS7ijk`t44$%VymFszCU?y@>9uACqI*XDEYw2Pq|8d0lj2U9o6?msFJ)oM;*_N+%TlgPxhiFK%I1`(Q(jK_ zabncOjERoVlj@f`I@LclFm-HdP-<{$XzGO2sMMI$wAA!e zS*jxS%G5QfYg2Dcy)E^N)L&B1rT(6Jep2P6=1DUq&73rA(zBCZn{;f_@kuArCZ%c9 zveL5Ca?@6%-IR87+AV3frG1n3N7|oKBqgQI(z#NPv|GAB`kM5V^tAL#>DSWlq(4f3 zNhi|jbied5>4E9v(#NNp(-)-gN`E>1*9qACL=Z@J|ihZouSQ`oROPh z$S`M2$(Wi^m{FZkn^B)}S;nD^;~6J1PG-C#n=H$hO_deOY_hGghh;CyUXr~kJ0^QW zc2f3^>^<3svQK26%l?pKa$HWzX}O<#j66UtmIuj$<)Lzw+%BIlUoU@B{*i)FBq=P4 zM#XGJyJD`wqgbrCQgM}Hwc;AZb&4Al8x%c?&5C;z_bGNLb}1fGyr%d;iIlX`PdQpC zRt719m7&TcNLiw^D;>&830HBqHd z<*CdntExa%tSV92RSs3NYOZRfYPITG)eWjOs#{dIsqRp1RQ0Gfs~%H5q1va~uR5SQ zs5+!Nta?fHs_Llfb=AA7_f;RMK2d$8`dM{O^@kc$6KYD$sQuI->IikTI#!*eo~TY! zr>jfV?dnD9W$G){tJK%1*QnR3*Qsw;Z&2T@-laaMeqQ~m`d#%m>hIKlYDf*E@zVro z#%h8z!I}h3vPPy+X!0~>ja5^iDb|!|>>7urSuG(-I=v3 z>*1_NvmVQOJZoRp(^=1C9n3nE^y)XM<_Mz;<*)L}w z&wexe?d*56-^&r@WaZT6H0R9CS&_3c=Z2gOIXiN8=IqOPCg)(zp`4d;UdcI{^Loxl zIiKcypYu!3xtu?8@mw;O$@R+(%T3J9%FW5u=bCb@xdpj}xwhQ0Tt{wI?ws6?+|Jyt z+OljqLs%gexZJ`eu@4n{f+uH`nCF7^|$G7*WaVR zPrpOIOaG{Tul`B>Q~G!Ge;URZ#u|bQA%+M;ltE&MGsq1}gWfR3Fx60GC^1wTstt99 z27}Wu%P`+?wc%RBErwph!-hu<&l+AZ95%dcIA%C*c+>Ef;k4l=<7i`majbE?G1NH0 z7-f_g@tT0v?yNzp&dyH=x&zllV`KA`rN>iWd zKGP1Q;s5S2TBcYEEQOX*i``OTsj{?KW?AN2 z7F(8BILk`QD$6yN>ns~A+bnNbPFmivyl45)@`>eh%NLffEZ5Q}XZgd5SqUp` z^|Ow#23p5igRMq5*phFZW-YdsTFb4K)*5TQ^)hRdb%wRo+GcfIJFVT;1=dB@C05S5 z+{yLQ*WGl^VCnKemC`psXtBqb=tIPRnuyw)lF-dwsYFPY5S)gn0Bx*v@oGC zsW7E*QsEVaR~KGeczxkbg&!4uQ}|us4~0J$6%HiYFE?DqdB5b@8>uHxz$R{8jPS#orWvSNx|9vmqN{6Whkx#@WW(Vr_A@cw3@P zVN=>vHjT|>Gute-DYkN(!&YIdvbk(CY%R7{+dSKR+XCC=wySKbY^!b8*lx3}x7}{r zVB2QfZoAiZziqGWaoZENeYV54Bes`puh`zPy=yyVd*61}_Lc2x+qbs!wm(a-61*g^ zL|ihqB&bAE5?c~il29TqQIsf4)Fs9eQ;E66T4FD$Dyc20FKH}smCP)eRWiS1NeNf7 zqU5TQ>q~AbSzEHMWPQn@lAlW@r4vijN;693rN+|2Qd?2|I1~vyZk%+GFf-_C$M%eUW{I{U-aZ_VxA+_8$9Y`xg6F`;+#g z_V?`X+dr^>WdFwgv;9~5Z}#)$RJo{pba_CzxIC&nraZPhp?rS%it^Rv*OuQ9rn*UFETA20u~{Il{iUQisN&b4+&RIHo#^95zRp!{MlOG&{N-3ml6aOB|eIh2tv6)sE{N8y!84&5nB< z+a32i9(3$>JmT2nIO;g%__kt9#e@oJMP5ZwMMZ_HqNQS1g{R``ikmC8S3FwrWW{q8 z&sV%yajfF4igT4jrMPlz<+#f6m9doxmC2Q_P>L3YQ*I4JOn_1_s>#XapTTpj-U0>a6 zb$`^;^`iRV`pEj2`ndYU`n39tdPTjuKC@n5Kc&8;zRKC+oaOX5Ip-?p4bBbDZO;3g zJDj_m4?FibA9o&d9(KOueARi(dE9xzdD3~lF}|^=aegD)xVmvo<1LMQ8lP@FAY@Z; QT=*?oCj9pOY<%|r0NGjyr~m)} literal 0 HcmV?d00001 diff --git a/ios/MagicCounter.xcodeproj/xcuserdata/atridad.xcuserdatad/xcschemes/xcschememanagement.plist b/ios/MagicCounter.xcodeproj/xcuserdata/atridad.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..5776e2c --- /dev/null +++ b/ios/MagicCounter.xcodeproj/xcuserdata/atridad.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + MagicCounter.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/ios/MagicCounter/Assets.xcassets/AccentColor.colorset/Contents.json b/ios/MagicCounter/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/ios/MagicCounter/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/MagicCounter/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/MagicCounter/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..2305880 --- /dev/null +++ b/ios/MagicCounter/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,35 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "tinted" + } + ], + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/MagicCounter/Assets.xcassets/Contents.json b/ios/MagicCounter/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/ios/MagicCounter/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/MagicCounter/Components.swift b/ios/MagicCounter/Components.swift new file mode 100644 index 0000000..6f1110e --- /dev/null +++ b/ios/MagicCounter/Components.swift @@ -0,0 +1,114 @@ +// +// Components.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import SwiftUI + +/** + * A circular button with an icon, used for game controls. + */ +struct CircleButton: View { + let icon: String + let color: Color + let size: CGFloat + let action: () -> Void + + init(icon: String, color: Color, size: CGFloat = 44, action: @escaping () -> Void) { + self.icon = icon + self.color = color + self.size = size + self.action = action + } + + var body: some View { + Button(action: action) { + Image(systemName: icon) + .font(size < 40 ? .caption : .title3) + .frame(width: size, height: size) + .background(color.opacity(0.2)) + .clipShape(Circle()) + .foregroundStyle(color) + } + } +} + +/** + * A control for adjusting a large numerical value (like Life). + */ +struct LifeCounterControl: View { + let value: Int + let onDecrease: () -> Void + let onIncrease: () -> Void + + var body: some View { + HStack(spacing: 16) { + CircleButton(icon: "minus", color: .red, action: onDecrease) + + Text("\(value)") + .font(.system(size: 56, weight: .bold, design: .rounded)) + .minimumScaleFactor(0.5) + .lineLimit(1) + .foregroundStyle(.primary) + + CircleButton(icon: "plus", color: .green, action: onIncrease) + } + .padding(.horizontal, 16) + } +} + +/** + * A smaller control for adjusting secondary values (like Poison). + */ +struct SmallCounterControl: View { + let value: Int + let icon: String + let color: Color + let onDecrease: () -> Void + let onIncrease: () -> Void + + var body: some View { + HStack(spacing: 4) { + CircleButton(icon: "minus", color: .gray, size: 24, action: onDecrease) + + VStack(spacing: 0) { + Image(systemName: icon) + .font(.caption2) + .foregroundStyle(color) + Text("\(value)") + .font(.title3.bold()) + .foregroundStyle(color) + } + .frame(minWidth: 30) + + CircleButton(icon: "plus", color: .gray, size: 24, action: onIncrease) + } + .padding(6) + .background(color.opacity(0.1)) + .cornerRadius(12) + } +} + +/** + * A reusable slider row for settings. + */ +struct SettingSlider: View { + let title: String + let value: Binding + let range: ClosedRange + let step: Double + + var body: some View { + VStack(alignment: .leading) { + HStack { + Text(title) + Spacer() + Text("\(Int(value.wrappedValue))") + .bold() + } + Slider(value: value, in: range, step: step) + } + } +} diff --git a/ios/MagicCounter/ContentView.swift b/ios/MagicCounter/ContentView.swift new file mode 100644 index 0000000..61d998f --- /dev/null +++ b/ios/MagicCounter/ContentView.swift @@ -0,0 +1,129 @@ +// +// ContentView.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import SwiftUI + +struct ContentView: View { + @EnvironmentObject var gameManager: GameManager + @State private var showSetup = false + @AppStorage("accentColorName") private var accentColorName = "Blue" + + var selectedColor: Color { + switch accentColorName { + case "Blue": return .blue + case "Purple": return .purple + case "Pink": return .pink + case "Red": return .red + case "Orange": return .orange + case "Green": return .green + case "Teal": return .teal + case "Indigo": return .indigo + case "Mint": return .mint + case "Brown": return .brown + case "Cyan": return .cyan + default: return .blue + } + } + + var body: some View { + Group { + if let activeMatch = gameManager.activeMatch { + GameView(match: activeMatch) + .transition(.move(edge: .bottom)) + } else { + TabView { + NavigationStack { + List { + if gameManager.matchHistory.isEmpty { + ContentUnavailableView("No Matches", systemImage: "gamecontroller", description: Text("Start a new game to begin tracking.")) + } else { + ForEach(gameManager.matchHistory) { match in + MatchHistoryRow(match: match) + .contentShape(Rectangle()) // Ensure the whole row is tappable + .onTapGesture { + withAnimation { + gameManager.resumeMatch(match) + } + } + .swipeActions(edge: .trailing, allowsFullSwipe: true) { + Button(role: .destructive) { + withAnimation { + gameManager.deleteMatch(id: match.id) + } + } label: { + Label("Delete", systemImage: "trash") + } + .tint(.red) + } + } + } + } + .listStyle(.insetGrouped) + .navigationTitle("History") + .toolbar { + ToolbarItem(placement: .primaryAction) { + Button(action: { showSetup = true }) { + Image(systemName: "plus") + } + } + } + } + .tabItem { + Label("History", systemImage: "clock.fill") + } + + SettingsView() + .tabItem { + Label("Settings", systemImage: "gear") + } + } + } + } + .tint(selectedColor) + .sheet(isPresented: $showSetup) { + SetupView() + .tint(selectedColor) + } + } +} + +struct MatchHistoryRow: View { + let match: MatchRecord + + var body: some View { + HStack { + VStack(alignment: .leading) { + Text(match.name) + .font(.headline) + .foregroundStyle(.primary) + Text(match.startedAt.formatted(date: .abbreviated, time: .shortened)) + .font(.caption) + .foregroundStyle(.secondary) + } + Spacer() + + if match.state.stopped { + Text("Stopped") + .font(.caption) + .foregroundStyle(.secondary) + } else if let winner = match.state.winner { + Text("Winner: \(winner.name)") + .font(.caption) + .foregroundStyle(.secondary) + } else { + Text("Ongoing") + .font(.caption) + .padding(.horizontal, 8) + .padding(.vertical, 4) + .background(Color.green.opacity(0.2)) + .foregroundStyle(.green) + .cornerRadius(8) + } + } + .padding(.vertical, 8) + } +} diff --git a/ios/MagicCounter/GameManager.swift b/ios/MagicCounter/GameManager.swift new file mode 100644 index 0000000..6da2954 --- /dev/null +++ b/ios/MagicCounter/GameManager.swift @@ -0,0 +1,137 @@ +// +// GameManager.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import Foundation +import SwiftUI +import Combine + +/** + * Manages the global game state and match history. + * + * - matchHistory: List of all past and current matches. + * - activeMatch: The currently active match, if any. + */ +@MainActor +final class GameManager: ObservableObject { + @Published var matchHistory: [MatchRecord] = [] + @Published var activeMatch: MatchRecord? + + private let historyKey = "match_history_json" + private let saveSubject = PassthroughSubject() + private var cancellables = Set() + + nonisolated init() { + Task { @MainActor in + self.loadHistory() + self.setupAutoSave() + } + } + + private func setupAutoSave() { + saveSubject + .debounce(for: .seconds(1), scheduler: RunLoop.main) + .sink { [weak self] _ in + self?.saveHistory() + } + .store(in: &cancellables) + } + + func startNewGame(players: [String], startingLife: Int, trackPoison: Bool, trackCommander: Bool, matchName: String) { + let playerStates = players.enumerated().map { (index, name) in + PlayerState( + id: index, + name: name, + life: startingLife, + poison: 0, + commanderDamages: [:], + scooped: false + ) + } + + let gameState = GameState( + players: playerStates, + startingLife: startingLife, + trackPoison: trackPoison, + trackCommanderDamage: trackCommander, + stopped: false + ) + + let newMatch = MatchRecord( + id: UUID().uuidString, + name: matchName.isEmpty ? "Match \(Date().formatted())" : matchName, + startedAt: Date(), + lastUpdated: Date(), + ongoing: true, + winnerPlayerId: nil, + state: gameState + ) + + activeMatch = newMatch + matchHistory.insert(newMatch, at: 0) + saveHistory() + } + + func updateActiveGame(state: GameState) { + guard var match = activeMatch else { return } + match.state = state + match.lastUpdated = Date() + + if state.stopped { + match.ongoing = false + } else if let winner = state.winner { + match.ongoing = false + match.winnerPlayerId = winner.id + } else { + match.ongoing = true + match.winnerPlayerId = nil + } + + activeMatch = match + if let index = matchHistory.firstIndex(where: { $0.id == match.id }) { + matchHistory[index] = match + } + saveSubject.send() + } + + func stopGame() { + guard var match = activeMatch else { return } + match.ongoing = false + match.state.stopped = true + activeMatch = nil + + if let index = matchHistory.firstIndex(where: { $0.id == match.id }) { + matchHistory[index] = match + } + saveHistory() + } + + func deleteMatch(id: String) { + if activeMatch?.id == id { + activeMatch = nil + } + matchHistory.removeAll { $0.id == id } + saveHistory() + } + + func resumeMatch(_ match: MatchRecord) { + activeMatch = match + } + + private func loadHistory() { + if let data = UserDefaults.standard.data(forKey: historyKey) { + if let decoded = try? JSONDecoder().decode([MatchRecord].self, from: data) { + matchHistory = decoded + } + } + } + + private func saveHistory() { + if let encoded = try? JSONEncoder().encode(matchHistory) { + UserDefaults.standard.set(encoded, forKey: historyKey) + } + } +} diff --git a/ios/MagicCounter/GameView.swift b/ios/MagicCounter/GameView.swift new file mode 100644 index 0000000..320302c --- /dev/null +++ b/ios/MagicCounter/GameView.swift @@ -0,0 +1,338 @@ +// +// GameView.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import SwiftUI + +/** + * Main game screen displaying the grid of players. + * + * - match: The match record to initialize the game state from. + */ +struct GameView: View { + @EnvironmentObject var gameManager: GameManager + @State private var gameState: GameState + @State private var showingStopConfirmation = false + @State private var selectedPlayerForCommander: PlayerState? + + init(match: MatchRecord) { + self._gameState = State(initialValue: match.state) + } + + var body: some View { + ZStack { + // Background + LinearGradient(colors: [Color.black, Color.indigo.opacity(0.5)], startPoint: .top, endPoint: .bottom) + .ignoresSafeArea() + + VStack(spacing: 0) { + // Custom Toolbar + HStack { + Button(action: { gameManager.activeMatch = nil }) { + Image(systemName: "xmark") + .font(.system(size: 16, weight: .bold)) + .foregroundColor(.white) + .padding(10) + .background(.ultraThinMaterial) + .clipShape(Circle()) + } + + Spacer() + + if gameState.stopped { + Text("Game Stopped") + .font(.headline) + .foregroundStyle(.red) + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(.ultraThinMaterial) + .cornerRadius(8) + } else if let winner = gameState.winner { + Text("Winner: \(winner.name)") + .font(.headline) + .foregroundStyle(.green) + .padding(.horizontal, 12) + .padding(.vertical, 6) + .background(.ultraThinMaterial) + .cornerRadius(8) + } else { + Text("Magic Counter") + .font(.headline) + .foregroundStyle(.white) + } + + Spacer() + + if !gameState.stopped && gameState.winner == nil { + Button(action: { showingStopConfirmation = true }) { + Image(systemName: "stop.fill") + .font(.system(size: 16, weight: .bold)) + .foregroundColor(.white) + .padding(10) + .background(.ultraThinMaterial) + .clipShape(Circle()) + } + } else { + // Placeholder for balance + Color.clear.frame(width: 40, height: 40) + } + } + .padding() + .background(.ultraThinMaterial) + + // Players Grid + GeometryReader { geometry in + // Use adaptive grid with minimum width to handle responsiveness + // 320pt minimum ensures 1 column on iPhone Portrait (width ~390) + // and 2 columns on iPhone Landscape (width ~844) or iPad + let columns = [GridItem(.adaptive(minimum: 320), spacing: 24)] + ScrollView { + LazyVGrid(columns: columns, spacing: 24) { + ForEach(gameState.players) { player in + PlayerCell( + player: player, + gameState: gameState, + isWinner: gameState.winner?.id == player.id, + onUpdate: updatePlayer, + onCommanderTap: { selectedPlayerForCommander = player }, + onScoop: { scoopPlayer(player) } + ) + .frame(height: 260) + } + } + .padding(24) + } + } + } + } + .alert("Stop Game?", isPresented: $showingStopConfirmation) { + Button("Cancel", role: .cancel) { } + Button("Stop", role: .destructive) { + gameManager.stopGame() + gameState.stopped = true + } + } message: { + Text("Are you sure you want to stop this game?") + } + .sheet(item: $selectedPlayerForCommander) { player in + CommanderDamageView( + targetPlayer: player, + gameState: gameState, + onUpdate: { updatedPlayer in + updatePlayer(player: updatedPlayer) + } + ) + .presentationDetents([.medium]) + } + .onChange(of: gameState) { newState in + gameManager.updateActiveGame(state: newState) + } + } + + private func updatePlayer(player: PlayerState) { + if gameState.stopped || gameState.winner != nil { return } + + if let index = gameState.players.firstIndex(where: { $0.id == player.id }) { + gameState.players[index] = player + } + + // Update the sheet state if this is the player being edited to ensure the view refreshes + if selectedPlayerForCommander?.id == player.id { + selectedPlayerForCommander = player + } + } + + private func scoopPlayer(_ player: PlayerState) { + if gameState.stopped || gameState.winner != nil { return } + + var newPlayer = player + newPlayer.scooped = true + updatePlayer(player: newPlayer) + } +} + +/** + * Individual player cell component. + * + * - player: The player state to display. + * - gameState: The global game state. + * - isWinner: Whether this player is the winner. + * - onUpdate: Callback to update the player state. + * - onCommanderTap: Callback when commander damage button is tapped. + * - onScoop: Callback when scoop action is triggered. + */ +struct PlayerCell: View { + let player: PlayerState + let gameState: GameState + let isWinner: Bool + let onUpdate: (PlayerState) -> Void + let onCommanderTap: () -> Void + let onScoop: () -> Void + + var body: some View { + ZStack { + RoundedRectangle(cornerRadius: 24) + .fill(.ultraThinMaterial) + .shadow(color: isWinner ? .green.opacity(0.5) : .black.opacity(0.2), radius: isWinner ? 20 : 10, x: 0, y: 5) + .overlay( + RoundedRectangle(cornerRadius: 24) + .stroke(isWinner ? Color.green : Color.clear, lineWidth: 3) + ) + + VStack(spacing: 12) { + // Header + HStack { + Text(player.name) + .font(.headline) + .lineLimit(1) + .minimumScaleFactor(0.8) + .foregroundStyle(.primary) + Spacer() + + Menu { + Button(role: .destructive, action: onScoop) { + Label("Scoop", systemImage: "flag.fill") + } + } label: { + Image(systemName: "ellipsis.circle") + .foregroundStyle(.secondary) + .padding(4) + } + } + .padding(.horizontal) + .padding(.top, 12) + + // Life + LifeCounterControl( + value: player.life, + onDecrease: { adjustLife(by: -1) }, + onIncrease: { adjustLife(by: 1) } + ) + + Spacer() + + // Counters Row + HStack(spacing: 12) { + if gameState.trackPoison { + SmallCounterControl( + value: player.poison, + icon: "drop.fill", + color: .purple, + onDecrease: { adjustPoison(by: -1) }, + onIncrease: { adjustPoison(by: 1) } + ) + } + + if gameState.trackCommanderDamage { + Button(action: onCommanderTap) { + VStack(spacing: 2) { + Image(systemName: "shield.fill") + .font(.caption) + Text("CMD") + .font(.caption2.bold()) + } + .frame(width: 44, height: 44) + .background(Color.orange.opacity(0.1)) + .foregroundStyle(.orange) + .clipShape(Circle()) + } + } + } + .padding(.bottom, 16) + } + + if player.isEliminated && !isWinner { + ZStack { + Color.black.opacity(0.6) + .cornerRadius(24) + Image(systemName: "xmark") + .font(.system(size: 60, weight: .bold)) + .foregroundStyle(.white.opacity(0.8)) + } + } + } + .opacity(player.isEliminated && !isWinner ? 0.8 : 1) + .scaleEffect(isWinner ? 1.05 : 1) + .animation(.spring, value: isWinner) + } + + private func adjustLife(by amount: Int) { + if player.isEliminated { return } + var newPlayer = player + newPlayer.life += amount + onUpdate(newPlayer) + } + + private func adjustPoison(by amount: Int) { + if player.isEliminated { return } + var newPlayer = player + newPlayer.poison = max(0, newPlayer.poison + amount) + onUpdate(newPlayer) + } +} + +/** + * Sheet for managing commander damage received by a player. + * + * - targetPlayer: The player receiving damage. + * - gameState: The global game state. + * - onUpdate: Callback to update the player state. + */ +struct CommanderDamageView: View { + @Environment(\.dismiss) var dismiss + let targetPlayer: PlayerState + let gameState: GameState + let onUpdate: (PlayerState) -> Void + + var body: some View { + NavigationStack { + List { + ForEach(gameState.players.filter { $0.id != targetPlayer.id }) { attacker in + HStack { + Text(attacker.name) + .font(.headline) + Spacer() + HStack(spacing: 16) { + CircleButton( + icon: "minus", + color: .secondary, + action: { adjustCommanderDamage(attackerId: attacker.id, by: -1) } + ) + + Text("\(targetPlayer.commanderDamages[attacker.id] ?? 0)") + .font(.title.bold()) + .frame(minWidth: 40) + .multilineTextAlignment(.center) + + CircleButton( + icon: "plus", + color: .primary, + action: { adjustCommanderDamage(attackerId: attacker.id, by: 1) } + ) + } + } + .padding(.vertical, 8) + } + } + .navigationTitle("Commander Damage to \(targetPlayer.name)") + .navigationBarTitleDisplayMode(.inline) + .toolbar { + ToolbarItem(placement: .confirmationAction) { + Button("Done") { dismiss() } + } + } + } + } + + private func adjustCommanderDamage(attackerId: Int, by amount: Int) { + var newPlayer = targetPlayer + var damages = newPlayer.commanderDamages + let current = damages[attackerId] ?? 0 + damages[attackerId] = max(0, current + amount) + newPlayer.commanderDamages = damages + onUpdate(newPlayer) + } +} diff --git a/ios/MagicCounter/Item.swift b/ios/MagicCounter/Item.swift new file mode 100644 index 0000000..70b6495 --- /dev/null +++ b/ios/MagicCounter/Item.swift @@ -0,0 +1,18 @@ +// +// Item.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import Foundation +import SwiftData + +@Model +final class Item { + var timestamp: Date + + init(timestamp: Date) { + self.timestamp = timestamp + } +} diff --git a/ios/MagicCounter/Logo.icon/Assets/MagicCounter 2.png b/ios/MagicCounter/Logo.icon/Assets/MagicCounter 2.png new file mode 100644 index 0000000000000000000000000000000000000000..412d3de7510e0e526543d586c0e725bdc5ce493e GIT binary patch literal 101929 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 aeT=$$uS%@`_-zUU5O})!xvX= 21 } || poison >= 10 + } +} + +// The full game state +struct GameState: Codable, Equatable { + var players: [PlayerState] + var startingLife: Int + var trackPoison: Bool + var trackCommanderDamage: Bool + var stopped: Bool + + var winner: PlayerState? { + let activePlayers = players.filter { !$0.isEliminated } + if activePlayers.count == 1 { + return activePlayers.first + } + return nil + } +} + +// A record of a match +struct MatchRecord: Codable, Identifiable, Equatable { + var id: String + var name: String + var startedAt: Date + var lastUpdated: Date + var ongoing: Bool + var winnerPlayerId: Int? + var state: GameState +} diff --git a/ios/MagicCounter/SettingsView.swift b/ios/MagicCounter/SettingsView.swift new file mode 100644 index 0000000..9737af9 --- /dev/null +++ b/ios/MagicCounter/SettingsView.swift @@ -0,0 +1,99 @@ +// +// SettingsView.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import SwiftUI + +struct SettingsView: View { + @AppStorage("accentColorName") private var accentColorName = "Blue" + + private let colors: [(name: String, color: Color)] = [ + ("Blue", .blue), + ("Purple", .purple), + ("Pink", .pink), + ("Red", .red), + ("Orange", .orange), + ("Green", .green), + ("Teal", .teal), + ("Indigo", .indigo), + ("Mint", .mint), + ("Brown", .brown), + ("Cyan", .cyan) + ] + + private var currentVersion: String { + Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "1.0" + } + + private var buildNumber: String { + Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "1" + } + + private func foregroundColor(for colorName: String) -> Color { + switch colorName { + case "Mint", "Cyan", "Yellow": + return .black + default: + return .white + } + } + + var body: some View { + NavigationStack { + Form { + Section("Appearance") { + VStack(alignment: .leading, spacing: 16) { + Text("ACCENT COLOR") + .font(.caption) + .foregroundStyle(.secondary) + + LazyVGrid(columns: [GridItem(.adaptive(minimum: 44))], spacing: 12) { + ForEach(colors, id: \.name) { item in + Circle() + .fill(item.color) + .frame(width: 44, height: 44) + .overlay { + if accentColorName == item.name { + Image(systemName: "checkmark") + .font(.headline) + .foregroundStyle(foregroundColor(for: item.name)) + } + } + .onTapGesture { + accentColorName = item.name + } + } + } + + Divider() + + Button("Reset to Default") { + accentColorName = "Blue" + } + .foregroundStyle(.red) + } + .padding(.vertical, 8) + } + + Section("About") { + HStack { + Text("App Name") + Spacer() + Text("Magic Counter") + .foregroundStyle(.secondary) + } + HStack { + Text("Version") + Spacer() + Text("\(currentVersion) (\(buildNumber))") + .foregroundStyle(.secondary) + } + } + } + .navigationTitle("Settings") + } + } +} diff --git a/ios/MagicCounter/SetupView.swift b/ios/MagicCounter/SetupView.swift new file mode 100644 index 0000000..5313376 --- /dev/null +++ b/ios/MagicCounter/SetupView.swift @@ -0,0 +1,100 @@ +// +// SetupView.swift +// MagicCounter +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import SwiftUI + +/** + * Screen for configuring a new game. + * + * Allows setting player count, starting life, and game options. + */ +struct SetupView: View { + @Environment(\.dismiss) var dismiss + @EnvironmentObject var gameManager: GameManager + + @State private var playerCount: Double = 4 + @State private var startingLife: Double = 40 + @State private var trackPoison = true + @State private var trackCommander = true + @State private var matchName = "" + @State private var playerNames: [String] = [] + + var body: some View { + NavigationStack { + Form { + Section("Game Settings") { + SettingSlider( + title: "Starting Life", + value: $startingLife, + range: 10...40, + step: 5 + ) + + SettingSlider( + title: "Players", + value: $playerCount, + range: 2...8, + step: 1 + ) + .onChange(of: playerCount) { newValue in + updatePlayerNames(count: Int(newValue)) + } + } + + Section("Options") { + Toggle("Track Poison", isOn: $trackPoison) + Toggle("Track Commander Damage", isOn: $trackCommander) + TextField("Match Name (Optional)", text: $matchName) + } + + Section("Player Names") { + ForEach(0.. count { + playerNames.removeLast() + } + } + + private func startGame() { + gameManager.startNewGame( + players: playerNames, + startingLife: Int(startingLife), + trackPoison: trackPoison, + trackCommander: trackCommander, + matchName: matchName + ) + dismiss() + } +} diff --git a/ios/MagicCounterTests/MagicCounterTests.swift b/ios/MagicCounterTests/MagicCounterTests.swift new file mode 100644 index 0000000..8b56ec9 --- /dev/null +++ b/ios/MagicCounterTests/MagicCounterTests.swift @@ -0,0 +1,17 @@ +// +// MagicCounterTests.swift +// MagicCounterTests +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import Testing +@testable import MagicCounter + +struct MagicCounterTests { + + @Test func example() async throws { + // Todo: Add SOME form of test lol + } + +} diff --git a/ios/MagicCounterUITests/MagicCounterUITests.swift b/ios/MagicCounterUITests/MagicCounterUITests.swift new file mode 100644 index 0000000..cabf3f7 --- /dev/null +++ b/ios/MagicCounterUITests/MagicCounterUITests.swift @@ -0,0 +1,31 @@ +// +// MagicCounterUITests.swift +// MagicCounterUITests +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import XCTest + +final class MagicCounterUITests: XCTestCase { + + override func setUpWithError() throws { + continueAfterFailure = false + } + + override func tearDownWithError() throws { + } + + @MainActor + func testExample() throws { + let app = XCUIApplication() + app.launch() + } + + @MainActor + func testLaunchPerformance() throws { + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } +} diff --git a/ios/MagicCounterUITests/MagicCounterUITestsLaunchTests.swift b/ios/MagicCounterUITests/MagicCounterUITestsLaunchTests.swift new file mode 100644 index 0000000..f39a213 --- /dev/null +++ b/ios/MagicCounterUITests/MagicCounterUITestsLaunchTests.swift @@ -0,0 +1,30 @@ +// +// MagicCounterUITestsLaunchTests.swift +// MagicCounterUITests +// +// Created by Atridad Lahiji on 2025-12-06. +// + +import XCTest + +final class MagicCounterUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + @MainActor + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +} diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..412d3de7510e0e526543d586c0e725bdc5ce493e GIT binary patch literal 101929 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 aeT=$$uS%@`_-zUU5O})!xvX