Commit Graph

528 Commits

Author SHA1 Message Date
Riley Testut
9963bb84b4 [Delta Sync] Fixes accidentally signing-out after signing-in to previous Google Drive account 2024-01-19 18:59:08 -06:00
Riley Testut
ec336c39db [Delta Sync] Fixes incorrectly marking some GameSaves as conflicted during initial sync
Fixes an edge case where updating from Delta 1.4.x to Delta 1.5 could result in false-conflicts if user had previously updated to Delta 1.5 in the past (including betas). This is because GameSaves updated on 1.5 have a new `sha1` field, which changes the hash for the whole record.
2024-01-17 18:35:53 -06:00
Riley Testut
066993db67 Displays Touch/Touch Screen instead of iPhone/iPad when using touch controls 2024-01-12 14:26:12 -06:00
Riley Testut
ed5f0174d7 [Delta Sync] Replaces auth error print statements with OSLog 2024-01-12 13:42:19 -06:00
Riley Testut
9dd4d01b66 Fixes incorrectly sorted Info.plist keys 2023-12-01 14:01:41 -06:00
Riley Testut
995dd6afdf Shows “Learn More” FAQ button if there are no games 2023-11-16 17:52:37 -06:00
Riley Testut
c5333ad118 Adds FAQ links underneath Controller Skins and BIOS settings 2023-11-16 17:52:37 -06:00
Riley Testut
47b96d1cf6 [iPad] Hides “Haptic Feedback” Settings section on iPad 2023-11-16 17:52:37 -06:00
Riley Testut
3e97e5c951 [ExpFeat] Adds “Repair Database” to explicitly repair database
Disables automatic database repairing at app launch.
2023-11-16 17:52:37 -06:00
Riley Testut
aea0527828 Updates incorrect Settings labels to use 17pt font 2023-11-16 17:52:37 -06:00
Riley Testut
a79924d340 [iPad] Fixes not rounding last visible row in MelonDS core settings 2023-11-16 17:52:37 -06:00
Riley Testut
5ffccbb884 [iPad] Fixes crash when changing DS emulator core 2023-11-16 17:52:37 -06:00
Riley Testut
41bb827d7b [iPad] Fixes incorrectly indented rows on MelonDS core settings screen 2023-11-16 17:52:37 -06:00
Riley Testut
a87fea63ad Shows AirPlay icon + message when AirPlaying 2023-11-16 17:52:37 -06:00
Riley Testut
4b159603a1 Adds “Export Error Log…” button to Settings
Also hides “Experimental Features” setting for public builds
2023-11-16 17:52:36 -06:00
Riley Testut
a8b9bd1092 Updates Harmony to use OSLog 2023-11-16 17:20:27 -06:00
Riley Testut
62ebf05a8f Updates wording of “Database Repaired” alert to mention conflicts.txt 2023-08-11 21:52:01 -05:00
Riley Testut
452e3dab06 Writes text file of possibly corrupted save files to Files apps instead of actually conflicting them
In practice, the number of conflicts was far too high for the number of save files that actually matter.
2023-08-11 21:51:32 -05:00
Riley Testut
43fedf6fcc Fixes compiling with Xcode 14 2023-08-11 21:37:21 -05:00
Riley Testut
e6cd5475e9 Replaces Logger.debug() usage with Logger.notice()
Debug logs aren’t exported from release builds, so we now use `notice` level instead.
2023-08-11 18:57:28 -05:00
Riley Testut
9c31b8a864 Updates wording of “Database Repaired” alert 2023-08-11 18:57:28 -05:00
Riley Testut
5c7e3cc5b9 [ExpFeat] Adds filter button to change RepairSaveStatesViewController’s date range
* Recent (Last month)
* All
2023-08-11 18:57:28 -05:00
Riley Testut
d5f910ff00 Adds missing throws to SaveState.awakeFromSync() 2023-08-11 18:57:28 -05:00
Riley Testut
d1643dbc8f Throws SyncValidationError when downloading corrupted versions of “verified” SaveStates
After reviewing save states upon first launch, Delta will upload the verified game ID as metadata to ensure other devices don’t download remote versions with incorrect relationships.
2023-08-11 18:57:27 -05:00
Riley Testut
f3534e4415 [ExpFeat] Alternate App Icons (#259)
commit 34ed9726034adbb439515ccb3d576311603bfe2b
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Thu Aug 3 15:31:47 2023 -0400

    Removes `experimentalFeatures` property from `Settings`

commit 4e31d22d56d68439a340707d2fdbac3763df1e3a
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Thu Aug 3 15:17:47 2023 -0400

    Reorder icons

commit 7509eaa29946b622ce0ad920a740f0212db5e771
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Thu Aug 3 15:17:24 2023 -0400

    Moves icon changing code to `AlternateAppIcons`

commit 84821ef99ded74c066563041618aec3c4acb30d7
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Thu Aug 3 14:33:15 2023 -0400

    Fixes icon authors

commit 0b821830f09b434fa375c37a2504c21ee5f90bdb
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Fri Jul 21 01:44:00 2023 -0400

    Adds comments for functional alternate app icon code

commit e8dd6165619bc143f13dde51e5160af2695ef17e
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Fri Jul 21 01:30:03 2023 -0400

    Adds implementation for changing app icon

commit 1e07483d18d1e865804ae34d6011844b63cb33cc
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Fri Jul 21 01:28:24 2023 -0400

    Adds Alternate App Icon experimental feature and options

commit 46ed2ce3ae9593d4cc95f29d6caa09f33f2ce62d
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Fri Jul 21 01:26:51 2023 -0400

    Adds extension to handle retrieving app icon images

commit 9dddb5f98f4523e7877f97c66a5ae95e6513cc09
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Fri Jul 21 01:24:19 2023 -0400

    Adds experimental features as a property of `Settings`

commit d74038fd418a0e6fcd45942cb67e722904fc3e24
Author: Chris Rittenhouse <dev@litritt.com>
Date:   Fri Jul 21 01:23:02 2023 -0400

    Adds alternate icon assets

Co-authored-by: Chris Rittenhouse <dev@litritt.com>
2023-08-10 19:46:08 -05:00
Riley Testut
061f5abd3e Allows explicitly downloading corrupted record versions from RecordVersionsViewController 2023-08-10 19:33:27 -05:00
Riley Testut
be047b28a6 Fixes crash when restoring remote record without local version 2023-08-10 19:33:27 -05:00
Riley Testut
fcdd3c7840 Throws SyncValidationError when downloading corrupted Game or GameSave record 2023-08-10 19:33:27 -05:00
Riley Testut
ca8c2cb8c5 [ExpFeat] Adds “Review Save States” to fix save states associated with wrong game 2023-08-10 19:33:27 -05:00
Riley Testut
a9f15144ed Repairs corrupted Game, GameSave, and SaveState relationships on initial launch
Automatically fixes Game and GameSaves, but requires user to manually review + fix all recent SaveStates.
2023-08-10 19:33:27 -05:00
Riley Testut
3227ee4c49 Migrates Core Data model from v6 to v7 2023-07-10 16:09:07 -05:00
Riley Testut
45ed97c255 Actually fixes crash loading save states on iOS 17
The underlying issue causing the crash is that we were returning cached *supplementary view* layout attributes by accident from layoutAttributesForItem(at:).

Now, we only cache layout attributes for cells.
2023-07-10 15:39:31 -05:00
Riley Testut
e33a7c662f [Delta Sync] Delays sync until after interactive Settings dismissal has completed
Avoids false-positives when user scrolls to top of a Settings screen.
2023-07-07 18:22:33 -05:00
Riley Testut
5779927831 [Delta Sync] Delays seeding Harmony database until initial sync 2023-07-07 18:19:07 -05:00
Riley Testut
043fb923ae [Delta Sync] Displays activity indicator when signing-in
Without an indicator it can feel like the app has froze, when really it’s just preparing to sync.
2023-07-07 14:59:41 -05:00
Riley Testut
19fb333a67 Toggles Delta Sync switch back on if user cancels “Disable Syncing?” warning alert 2023-07-06 19:11:09 -05:00
Riley Testut
35a8f90a1c Converts Delta Sync action sheets into alerts
Implicitly fixes crashing on iPad.
2023-07-06 18:44:18 -05:00
Riley Testut
15e228f287 Adds GameSave.sha1 to sync hash between devices
Fixes redundant record uploads post-sync due to comparing hashes against locally-cached hash via extended attributes.
2023-06-28 13:33:16 -05:00
Riley Testut
707116a39b Automatically resolves Cheat + ControllerSkin sync conflicts 2023-06-27 18:58:41 -05:00
Riley Testut
6909b6248f Skips checksum verification when importing zipped games
Verification can take an annoyingly long time, especially for larger ROMs.
2023-06-19 19:19:40 -05:00
Riley Testut
8bd6fe1e11 Replaces UIDocumentBrowserViewController with UIDocumentPickerViewController on iOS 17+
Prior to iOS 17, UIDocumentPickerViewController was too buggy to reliably use with iCloud Drive.
2023-06-19 19:19:40 -05:00
Riley Testut
4cf705f141 [ExpFeat] Fixes saving screenshots to Photos as JPEGs 2023-06-16 16:57:00 -05:00
Riley Testut
99417b418a [ExpFeat] Adds missing @unknown default to PHAuthorizationStatus switch statement 2023-06-16 16:46:35 -05:00
Riley Testut
648e9b8393 [ExpFeat] Fixes saving screenshots to Photos with .limited authorization 2023-06-16 16:44:24 -05:00
Riley Testut
69eff8fa28 Fixes displaying system name in dark text (again) when remapping inputs on iOS 17 2023-06-16 15:55:51 -05:00
Riley Testut
3e858c652f Fixes crash loading save states on iOS 17
Crashes due to GridCollectionViewLayout returning outdated cached layout information when inserting “Auto” save states section for the first time.

To fix this, we now clear the layout cache in invalidateLayout(with:) when relevant.
2023-06-16 15:25:49 -05:00
Riley Testut
21147969ea Fixes GridCollectionViewCell "Unable to simultaneously satisfy constraints" runtime error 2023-06-16 15:18:02 -05:00
Riley Testut
731de7023f Merge branch 'app_store' into develop 2023-06-16 15:14:39 -05:00
Riley Testut
2e21141bc6 [Pods] Removes Fabric + Crashlytics 2023-05-10 13:36:44 -05:00
Riley Testut
7b9ab2488e Fixes accidentally deleting Games directory during sync in rare circumstances
If a Game with empty filename happens to be deleted (e.g. during sync merge), it will accidentally delete the *entire* Games folder due to its fileURL being “Games/[empty]”.

To prevent this, we now explicitly check that a Game’s identifier isn’t empty AND that that Game.fileURL doesn’t point to a directory before deleting local files.
2023-05-02 14:29:23 -05:00