New Patch: Swipe to Queue

This commit is contained in:
meowarex committed 2026-09-04 09:24:52 +00:00
1 parent 0ad5848354
commit aaf2d9e99d
116 files changed
+6598 -5603

No files matched your search

+1 -1
View File
@@ -32,7 +32,7 @@ android {
minSdk = 24
targetSdk = 36
versionCode = 68
versionName = "1.1.6"
versionName = "1.1.7"
vectorDrawables {
useSupportLibrary = true
@@ -430,45 +430,45 @@
"swipe-to-queue-compose.patch"
],
"extensionFiles": [
"radiant/SwipeToQueue.smali",
"radiant/QueueSwipeRemove.smali",
"radiant/swipe/QueueRequest.smali",
"radiant/swipe/QueueRowResolver.smali",
"radiant/swipe/QueueExecutor.smali",
"radiant/swipe/FavoriteTracksResolver.smali",
"radiant/swipe/DynamicTrackResolver.smali",
"radiant/swipe/MyAlbumsResolver.smali",
"radiant/swipe/MyPlaylistsResolver.smali",
"radiant/swipe/MyMixesAndRadioResolver.smali",
"radiant/swipe/SearchAlbumsResolver.smali",
"radiant/swipe/SearchPlaylistsResolver.smali",
"radiant/swipe/PlaylistItemsResolver.smali",
"radiant/swipe/UnifiedSearchResolver.smali",
"radiant/swipe/ComposeSwipeAction.smali",
"radiant/swipe/ComposeSwipeState.smali",
"radiant/swipe/ComposeSwipeState$Gesture.smali",
"radiant/swipe/ComposeSwipeState$Draw.smali",
"radiant/swipe/ComposeSwipeState$ResetAnimator.smali",
"radiant/swipe/ComposeTapGuard.smali",
"radiant/swipe/AlbumItemQueueAction.smali",
"radiant/swipe/DynamicTrackQueueEvent.smali",
"radiant/swipe/DynamicTrackQueueAction.smali",
"radiant/swipe/DynamicTrackQueue.smali",
"radiant/swipe/ViewAllTrackQueueAction.smali",
"radiant/swipe/ViewAllTrackQueue.smali",
"radiant/swipe/ComposeSearchQueueEvent.smali",
"radiant/swipe/ComposeSearchQueueAction.smali",
"radiant/swipe/ComposeSearchQueue.smali",
"radiant/swipe/FeedResolver.smali",
"radiant/swipe/ArtistTrackCreditsQueueEvent.smali",
"radiant/swipe/ArtistTrackCreditsQueueAction.smali",
"radiant/swipe/ArtistTrackCreditsQueue.smali",
"radiant/swipe/DynamicMediaQueueEvent.smali",
"radiant/swipe/CompactGridMediaQueueAction.smali",
"radiant/swipe/VerticalMediaQueueAction.smali",
"radiant/swipe/PublicPlaylistQueueAction.smali",
"radiant/swipe/DynamicMediaQueue.smali",
"radiant/swipe/SuggestionsResolver.smali"
"radiant/gestures/queue/SwipeToQueue.smali",
"radiant/gestures/queue/QueueSwipeRemove.smali",
"radiant/gestures/queue/QueueRequest.smali",
"radiant/gestures/queue/QueueRowResolver.smali",
"radiant/gestures/queue/QueueExecutor.smali",
"radiant/gestures/queue/FavoriteTracksResolver.smali",
"radiant/gestures/queue/DynamicTrackResolver.smali",
"radiant/gestures/queue/MyAlbumsResolver.smali",
"radiant/gestures/queue/MyPlaylistsResolver.smali",
"radiant/gestures/queue/MyMixesAndRadioResolver.smali",
"radiant/gestures/queue/SearchAlbumsResolver.smali",
"radiant/gestures/queue/SearchPlaylistsResolver.smali",
"radiant/gestures/queue/PlaylistItemsResolver.smali",
"radiant/gestures/queue/UnifiedSearchResolver.smali",
"radiant/gestures/queue/ComposeSwipeAction.smali",
"radiant/gestures/queue/ComposeSwipeState.smali",
"radiant/gestures/queue/ComposeSwipeState$Gesture.smali",
"radiant/gestures/queue/ComposeSwipeState$Draw.smali",
"radiant/gestures/queue/ComposeSwipeState$ResetAnimator.smali",
"radiant/gestures/queue/ComposeTapGuard.smali",
"radiant/gestures/queue/AlbumItemQueueAction.smali",
"radiant/gestures/queue/DynamicTrackQueueEvent.smali",
"radiant/gestures/queue/DynamicTrackQueueAction.smali",
"radiant/gestures/queue/DynamicTrackQueue.smali",
"radiant/gestures/queue/ViewAllTrackQueueAction.smali",
"radiant/gestures/queue/ViewAllTrackQueue.smali",
"radiant/gestures/queue/ComposeSearchQueueEvent.smali",
"radiant/gestures/queue/ComposeSearchQueueAction.smali",
"radiant/gestures/queue/ComposeSearchQueue.smali",
"radiant/gestures/queue/FeedResolver.smali",
"radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali",
"radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali",
"radiant/gestures/queue/ArtistTrackCreditsQueue.smali",
"radiant/gestures/queue/DynamicMediaQueueEvent.smali",
"radiant/gestures/queue/CompactGridMediaQueueAction.smali",
"radiant/gestures/queue/VerticalMediaQueueAction.smali",
"radiant/gestures/queue/PublicPlaylistQueueAction.smali",
"radiant/gestures/queue/DynamicMediaQueue.smali",
"radiant/gestures/queue/SuggestionsResolver.smali"
],
"title": "Swipe to Queue",
"description": "Swipe on tracks/albums/playlists to add them to the play queue (and more actions)",
@@ -678,14 +678,14 @@
"lyrics-gesture-scroll-guard.patch"
],
"extensionFiles": [
"radiant/gestures/MiniPlayerGestures.smali",
"radiant/gestures/MiniPlayerGestures$Gesture.smali",
"radiant/gestures/MiniPlayerGestures$FeedbackLayer.smali",
"radiant/gestures/MiniPlayerGestures$FeedbackResetAnimator.smali",
"radiant/gestures/MiniPlayerGestures$RootGesture.smali",
"radiant/gestures/MiniPlayerGestures$ApplyPending.smali",
"radiant/gestures/LyricsDrag.smali",
"radiant/gestures/LyricsDrag$Guard.smali"
"radiant/gestures/miniplayer/MiniPlayerGestures.smali",
"radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali",
"radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali",
"radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackResetAnimator.smali",
"radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali",
"radiant/gestures/miniplayer/MiniPlayerGestures$ApplyPending.smali",
"radiant/gestures/lyrics/LyricsDrag.smali",
"radiant/gestures/lyrics/LyricsDrag$Guard.smali"
]
},
{
@@ -715,11 +715,11 @@
"mini-player-left-right-gesture.patch"
],
"extensionFiles": [
"radiant/gestures/MiniPlayerTrackGestures.smali",
"radiant/gestures/MiniPlayerTrackGestures$Gesture.smali",
"radiant/gestures/MiniPlayerTrackGestures$OffsetLayer.smali",
"radiant/gestures/MiniPlayerTrackGestures$ResetAnimator.smali",
"radiant/gestures/MiniPlayerTrackGestures$TextDraw.smali",
"radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali",
"radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali",
"radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali",
"radiant/gestures/miniplayer/MiniPlayerTrackGestures$ResetAnimator.smali",
"radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali",
"com/tidal/android/feature/appscaffold/ui/r$c.smali"
]
}
@@ -238,7 +238,6 @@ class PatchOptionsModel(
fun lockState(spec: PatchSpec): PatchLock {
if (isBlockedByPackageName(spec)) return PatchLock.RequiresDefaultPackage
if (spec.variants.isNotEmpty()) return PatchLock.Free
val byId = specs.associateBy { it.id }
fun closure(seed: PatchSpec, step: (PatchSpec) -> List<PatchSpec>): Set<PatchSpec> =
@@ -254,7 +253,14 @@ class PatchOptionsModel(
if (other.id == spec.id || !isPatchEnabled(other)) continue
val requiresClosure = closure(other, requiresOf)
if (spec in requiresClosure - other) return PatchLock.LockedOn(other)
// A spec with variants is a multi-choice control, so there is no single state to
// force it *on* into - hence the exemption here. Forcing it *off* is unambiguous, so
// the disables check below still applies to it. Skipping both left LyricsRlApi and
// PlayerBackdrop tappable under Legacy UI even though setPatchEnabled had already
// switched them off, letting the user turn a patch back on that cannot work.
if (spec.variants.isEmpty() && spec in requiresClosure - other) {
return PatchLock.LockedOn(other)
}
val disablesClosure = requiresClosure.flatMap { it.disables }
.mapNotNull(byId::get)