Remapping functionality

This commit is contained in:
Hariharan Mudaliar 2025-12-14 12:11:30 +05:30
commit 96dde9d555
No known key found for this signature in database
GPG key ID: D04F1C2B9194DDFC
9 changed files with 687 additions and 399 deletions

View file

@ -447,6 +447,8 @@ extension Defaults.Keys {
static let musicAuxLeftControl = Key<MusicAuxiliaryControl>("musicAuxLeftControl", default: .shuffle)
static let musicAuxRightControl = Key<MusicAuxiliaryControl>("musicAuxRightControl", default: .repeatMode)
static let didMigrateMusicAuxControls = Key<Bool>("didMigrateMusicAuxControls", default: false)
static let musicControlSlots = Key<[MusicControlButton]>("musicControlSlots", default: MusicControlButton.defaultLayout)
static let didMigrateMusicControlSlots = Key<Bool>("didMigrateMusicControlSlots", default: false)
static let musicSkipBehavior = Key<MusicSkipBehavior>("musicSkipBehavior", default: .track)
static let musicControlWindowEnabled = Key<Bool>("musicControlWindowEnabled", default: false)
// Enable lock screen media widget (shows the standalone panel when screen is locked)
@ -668,6 +670,27 @@ extension Defaults.Keys {
normalizeMusicAuxControls()
}
static func migrateMusicControlSlots() {
guard Defaults[.didMigrateMusicControlSlots] == false else { return }
let allowMediaOutput = Defaults[.showMediaOutputControl]
let baseLayout: [MusicControlButton]
if Defaults[.showShuffleAndRepeat] {
var slots = MusicControlButton.defaultLayout
let left = MusicControlButton(auxiliaryControl: Defaults[.musicAuxLeftControl])
let right = MusicControlButton(auxiliaryControl: Defaults[.musicAuxRightControl])
slots[0] = left
slots[4] = right
baseLayout = slots
} else {
baseLayout = MusicControlButton.minimalLayout
}
Defaults[.musicControlSlots] = baseLayout.normalized(allowingMediaOutput: allowMediaOutput)
Defaults[.didMigrateMusicControlSlots] = true
}
private static func normalizeMusicAuxControls() {
guard Defaults[.musicAuxLeftControl] == Defaults[.musicAuxRightControl] else { return }