Skip to content

Commit c41a012

Browse files
committed
DisplaySettings: disable player shuffle button
1 parent 3105ff6 commit c41a012

File tree

7 files changed

+34
-0
lines changed

7 files changed

+34
-0
lines changed

Amperfy/Screens/Player/PopupPlayer+Visuals.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import AmperfyKit
2525
extension PopupPlayerVC {
2626

2727
func refresh() {
28+
refreshContextQueueSectionHeader()
2829
refreshUserQueueSectionHeader()
2930
refreshCellMasks()
3031
refreshVisibleCellsSubtitleColor()

Amperfy/Screens/Player/PopupPlayerVC.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,11 @@ class PopupPlayerVC: UIViewController, UIScrollViewDelegate {
207207
userQueueSectionView.display(name: PlayerQueueType.user.description, buttonPressAction: self.clearUserQueue)
208208
}
209209
}
210+
211+
func refreshContextQueueSectionHeader() {
212+
guard let contextNextQueueSectionHeader = contextNextQueueSectionHeader else { return }
213+
contextNextQueueSectionHeader.refresh()
214+
}
210215

211216
// MARK: - UIScrollViewDelegate
212217
func scrollViewDidScroll(_ scrollView: UIScrollView) {

Amperfy/Screens/Player/SectionHeader/ContextQueueNextSectionHeader.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ class ContextQueueNextSectionHeader: UIView {
8585

8686
func refreshShuffleButton() {
8787
guard let rootView = rootView else { return }
88+
shuffleButton.isEnabled = appDelegate.storage.settings.isPlayerShuffleButtonEnabled
8889
shuffleButton.isSelected = player.isShuffle
8990
var config = rootView.getPlayerButtonConfiguration(isSelected: shuffleButton.isSelected)
9091
config.image = .shuffle

Amperfy/Screens/ViewController/SettingsHostVC.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ class SettingsHostVC: UIViewController {
6767
self.appDelegate.storage.settings.isShowArtistDuration = newValue
6868
}))
6969

70+
settings.isPlayerShuffleButtonEnabled = self.appDelegate.storage.settings.isPlayerShuffleButtonEnabled
71+
changesAgent.append(settings.$isPlayerShuffleButtonEnabled.sink(receiveValue: { newValue in
72+
self.appDelegate.storage.settings.isPlayerShuffleButtonEnabled = newValue
73+
}))
74+
7075
settings.isShowMusicPlayerSkipButtons = self.appDelegate.storage.settings.isShowMusicPlayerSkipButtons
7176
changesAgent.append(settings.$isShowMusicPlayerSkipButtons.sink(receiveValue: { newValue in
7277
self.appDelegate.storage.settings.isShowMusicPlayerSkipButtons = newValue

Amperfy/SwiftUI/Settings/DisplaySettingsView.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,21 @@ struct DisplaySettingsView: View {
9292
, footer: {
9393
Text("Display artist duration in table rows.")
9494
})
95+
96+
Section(content: {
97+
HStack {
98+
Text("Disable Player Shuffle Button")
99+
Spacer()
100+
Toggle(isOn: Binding<Bool>(
101+
get: { !settings.isPlayerShuffleButtonEnabled },
102+
set: { settings.isPlayerShuffleButtonEnabled = !$0 }
103+
)) {}
104+
.frame(width: 130)
105+
}
106+
}
107+
, footer: {
108+
Text("Player Shuffle Button is displayed but it can't be interacted with.")
109+
})
95110
}
96111
}
97112
.navigationTitle("Display")

Amperfy/SwiftUI/Settings/ObservableSettings.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ final class Settings: ObservableObject {
2828
@Published var isShowSongDuration = false
2929
@Published var isShowAlbumDuration = false
3030
@Published var isShowArtistDuration = false
31+
@Published var isPlayerShuffleButtonEnabled = true
3132
@Published var screenLockPreventionPreference: ScreenLockPreventionPreference = .defaultValue
3233
@Published var streamingMaxBitrateWifiPreference: StreamingMaxBitratePreference = .defaultValue
3334
@Published var streamingMaxBitrateCellularPreference: StreamingMaxBitratePreference = .defaultValue

AmperfyKit/Storage/PersistentStorage.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,7 @@ public class PersistentStorage {
231231
case ShowSongDuration = "showSongDuration"
232232
case ShowAlbumDuration = "showAlbumDuration"
233233
case ShowArtistDuration = "showArtistDuration"
234+
case PlayerShuffleButtonEnabled = "enablePlayerShuffleButton"
234235
case ShowMusicPlayerSkipButtons = "showMusicPlayerSkipButtons"
235236

236237
case SongActionOnTab = "songActionOnTab"
@@ -335,6 +336,11 @@ public class PersistentStorage {
335336
set { UserDefaults.standard.set(newValue, forKey: UserDefaultsKey.ShowArtistDuration.rawValue) }
336337
}
337338

339+
public var isPlayerShuffleButtonEnabled: Bool {
340+
get { return UserDefaults.standard.object(forKey: UserDefaultsKey.PlayerShuffleButtonEnabled.rawValue) as? Bool ?? true }
341+
set { UserDefaults.standard.set(newValue, forKey: UserDefaultsKey.PlayerShuffleButtonEnabled.rawValue) }
342+
}
343+
338344
public var isShowMusicPlayerSkipButtons: Bool {
339345
get { return UserDefaults.standard.object(forKey: UserDefaultsKey.ShowMusicPlayerSkipButtons.rawValue) as? Bool ?? false }
340346
set { UserDefaults.standard.set(newValue, forKey: UserDefaultsKey.ShowMusicPlayerSkipButtons.rawValue) }

0 commit comments

Comments
 (0)