mirror of
https://github.com/PlayCover/PlayCover.git
synced 2026-04-26 16:25:54 +03:00
[PR #880] [CLOSED] Feat: Source Folders & Priority + Optional Alphabetical Sort #1789
Labels
No labels
UI
app-support
bug
bug
documentation
duplicate
enhancement
game-support
good first issue
help wanted / caution
inactive
invalid
macos-beta
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/PlayCover#1789
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/PlayCover/PlayCover/pull/880
Author: @amirsaam
Created: 3/20/2023
Status: ❌ Closed
Base:
develop← Head:SourceFolders📝 Commits (10+)
0e3d9fbInitial Creatione8f9765Added Search Back + Bug & UI Fixes24a8a5eSort Alphabetically Toggle Option34192c7Fix Sort Issues + Save to Defaults +.help3bca73cBackport Compatibilitybfb3bd4AddSemaphoretoREADME.mdb57bd4aMerge branch 'develop' into SourceFolders614728eSwiftLintc8758b9Various Fixes & Improvements05cecbbMerge branch 'develop' into SourceFolders📊 Changes
73 files changed (+2417 additions, -3691 deletions)
View changed files
📝
.github/ISSUE_TEMPLATE/APP-SUPPORT.yml(+1 -24)📝
.github/ISSUE_TEMPLATE/BUG-REPORT.yml(+4 -8)📝
.github/ISSUE_TEMPLATE/GAME-SUPPORT.yml(+1 -24)📝
.github/workflows/1.build_release.yml(+13 -24)📝
.github/workflows/2.nightly_release.yml(+4 -18)📝
.github/workflows/SwiftLint.yml(+3 -2)📝
.swiftlint.yml(+0 -4)📝
Cartfile(+1 -1)📝
Cartfile.resolved(+1 -1)📝
PlayCover.xcodeproj/project.pbxproj(+79 -50)📝
PlayCover/AppInstaller/Downloader.swift(+2 -2)📝
PlayCover/AppInstaller/Installer.swift(+11 -12)📝
PlayCover/Model/AppContainer.swift(+27 -14)📝
PlayCover/Model/AppInfo.swift(+0 -74)📝
PlayCover/Model/AppSettings.swift(+15 -26)📝
PlayCover/Model/Keymapping.swift(+3 -1)📝
PlayCover/Model/PlayApp.swift(+43 -61)📝
PlayCover/PlayCoverError.swift(+3 -0)📝
PlayCover/Utils/Cacher.swift(+8 -4)➖
PlayCover/Utils/Extensions/PlayAppExtensions.swift(+0 -68)...and 53 more files
📄 Description
Introduces Source Folders in IPA Library where changes the structure of Sources and adds Name and Logo URL to them and shows them as they are.
With this approach we are no longer stack all apps from all sources together so for example we can have Genshin Impact from every source in their folders.
StoreVMNote:
There is a new package
Semaphoreused in this PR, this package introducesAsyncSemaphorealikeDispatchSemaphorebut unlike that, it does not block any thread; Instead, Swift concurrency tasks are suspended "awaiting" for the semaphore.This is a good thing to have for future uses like I have done in this PR dealing with suspension in the easiest way.
The reason I did not use
try await Task.sleepis that we aren't sure when the previous item in the loop is done to start the loop again, plus we are updating UI and we need to be on main thread andDispatchSemaphorewill not work and sends PlayCover to Not Responding state.Issues:
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.