diff --git a/.version b/.version index 18efdb9..bc80560 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.1.8 +1.5.0 diff --git a/Manager/app/build.gradle.kts b/Manager/app/build.gradle.kts index 209465b..22b24af 100644 --- a/Manager/app/build.gradle.kts +++ b/Manager/app/build.gradle.kts @@ -31,8 +31,8 @@ android { defaultConfig { minSdk = 24 targetSdk = 36 - versionCode = 68 - versionName = "1.1.8" + versionCode = 84 + versionName = "1.5.0" vectorDrawables { useSupportLibrary = true diff --git a/Manager/app/src/main/assets/patches-manifest.json b/Manager/app/src/main/assets/patches-manifest.json index 5a5de53..93cf133 100644 --- a/Manager/app/src/main/assets/patches-manifest.json +++ b/Manager/app/src/main/assets/patches-manifest.json @@ -82,7 +82,13 @@ "description": "[Only works with API results] - Generates Syllable timings from Line timings using a self trained AI model ", "default": false, "inline": true, - "token": "RL_SYNTHESIZE" + "token": "RL_SYNTHESIZE", + "fileNames": [ + "lyrics-ai-indicator.patch" + ], + "extensionFiles": [ + "radiant/AiSparkle.smali" + ] }, { "type": "toggle", @@ -378,17 +384,43 @@ "type": "toggle", "key": "cover_everywhere", "title": "Cover Everywhere - WIP", - "description": "Applies TIDAL's native blurred album-art backdrop to every Compose based page (Home & Collection)", + "description": "Applies TIDAL's native blurred album-art backdrop to every Compose based page (Home, Collection, Search, Save For Later, Profile, Downloads & Settings)", "default": false, "inline": true, "fileNames": [ "home-backdrop.patch", "collection-backdrop.patch", + "cover-everywhere-pages.patch", "cover-capture.patch" ] } ] }, + { + "id": "AnimatedCovers", + "order": 34, + "fileNames": [ + "animated-covers.patch" + ], + "title": "Animated Covers", + "description": "Replaces cover art with animated artwork when available", + "default": true, + "extensionFiles": [ + "radiant/AnimatedCovers.smali", + "radiant/AnimatedCoverView.smali", + "radiant/RoundOutline.smali" + ] + }, + { + "id": "PlayerCrossfade", + "order": 35, + "fileNames": [ + "player-crossfade.patch" + ], + "title": "Audio Crossfade", + "description": "[Temporary Patch] - Unlocks TIDAL's crossfade between tracks. Set the duration in TIDAL Settings > Audio & Playback (enables the mf-player-crossfade feature flag)", + "default": true + }, { "id": "QualityBadgeColors", "order": 36, @@ -592,7 +624,7 @@ "lyrics-sparkle-conditional-visibility.patch" ], "title": "Replace Lyrics Button", - "description": "Replaces the Lyrics button with the RL Sparkle!", + "description": "Replaces the Lyrics button with the RL Sparkle! Spins while lyrics load, and shows a greyed-out crossed note when a track has no lyrics", "default": true }, { diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/SmaliPatchStep.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/SmaliPatchStep.kt index f59c3d5..baf6f71 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/SmaliPatchStep.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/patch/SmaliPatchStep.kt @@ -369,7 +369,8 @@ class SmaliPatchStep( if (matchesAt(target, sourceLines, hint)) return hint // Walk outward from the hint, alternating below/above, until finds a unique match. - val maxRadius = target.size + // Also reach hints past the end of the file + val maxRadius = maxOf(target.size, hint) for (offset in 1..maxRadius) { val below = hint + offset if (below + sourceLines.size <= target.size && matchesAt(target, sourceLines, below)) { diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/prepare/DowngradeCheckStep.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/prepare/DowngradeCheckStep.kt index 577d8f2..ef11228 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/prepare/DowngradeCheckStep.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/patcher/steps/prepare/DowngradeCheckStep.kt @@ -5,6 +5,7 @@ import android.content.pm.PackageManager.NameNotFoundException import com.meowarex.rlmobile.R import com.meowarex.rlmobile.installers.InstallerResult import com.meowarex.rlmobile.manager.InstallerManager +import com.meowarex.rlmobile.manager.PathManager import com.meowarex.rlmobile.patcher.StepRunner import com.meowarex.rlmobile.patcher.steps.StepGroup import com.meowarex.rlmobile.patcher.steps.base.Step @@ -21,6 +22,7 @@ import org.koin.core.component.inject class DowngradeCheckStep(private val options: PatchOptions) : Step(), KoinComponent { private val context: Application by inject() private val installers: InstallerManager by inject() + private val paths: PathManager by inject() override val group = StepGroup.Prepare override val localizedName = R.string.patch_step_downgrade_check @@ -38,9 +40,11 @@ class DowngradeCheckStep(private val options: PatchOptions) : Step(), KoinCompon } container.log("Version of installed TIDAL app: $currentVersion") - val targetVersion = container - .getStep() - .data.tidalVersionCode + // Custom APK can be newer than data.json + val targetVersion = customApkVersionCode(container) + ?: container + .getStep() + .data.tidalVersionCode container.log("Target TIDAL version: $targetVersion") @@ -59,4 +63,15 @@ class DowngradeCheckStep(private val options: PatchOptions) : Step(), KoinCompon } } } + + private fun customApkVersionCode(container: StepRunner): Int? { + val file = options.customTidalApk?.getFile(paths)?.takeIf { it.exists() } ?: return null + return try { + @Suppress("DEPRECATION") + context.packageManager.getPackageArchiveInfo(file.absolutePath, 0)?.versionCode + } catch (t: Throwable) { + container.log("Failed to read custom TIDAL APK version: ${t.message}") + null + } + } } diff --git a/patches/R8-SYMBOLS.md b/patches/R8-SYMBOLS.md index a240fcf..57c0c14 100644 --- a/patches/R8-SYMBOLS.md +++ b/patches/R8-SYMBOLS.md @@ -1,6 +1,6 @@ -# R8 Symbol Map - TIDAL 2.200.0-10004 +# R8 Symbol Map - TIDAL 2.213.0-10017 -Maintained by hand. Snapshot of the tree as of TIDAL 2.200.0-10004 - counts and line +Maintained by hand. Snapshot of the tree as of TIDAL 2.213.0-10017 (re-derived from the 2.200.0-10004 map by the 2.213 rename sweep) - counts and line numbers in section 4 drift as patches are edited, so treat them as a starting point rather than gospel, and re-check with `grep -rn 'MARKER: R8'`. @@ -54,157 +54,157 @@ markers. `extension/radiant/PebbleBridge*.smali` is built by `tools/pebble-bridge-build/build.sh`. - `integration-pebble-playback.patch` hooks `bk0/e`, TIDAL's 200 ms position poller. - It holds `Lbk0/d;`, `ExoPlayer` and `Handler` and reposts with `0xc8`. + It holds `Lyj0/d;`, `ExoPlayer` and `Handler` and reposts with `0xc8`. - `integration-pebble-lyrics.patch` hooks our `RLAPILyricsWorker`, so no markers there. ## 1. Rolled class references (270) | symbol | uses | referenced from | |---|---:|---| -| `Lam0/l;` | 246 | `extension/radiant/Kawarp.smali`, `extension/radiant/MiniPlayerBackground.smali`, `extension/radiant/MiniSeekerFloating.smali` +31 more | +| `Lyl0/l;` | 246 | `extension/radiant/Kawarp.smali`, `extension/radiant/MiniPlayerBackground.smali`, `extension/radiant/MiniSeekerFloating.smali` +31 more | | `Lh4/a;` | 152 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/FeedResolver.smali` +6 more | | `Lkotlin/u;` | 109 | `extension/radiant/Kawarp.smali`, `extension/radiant/MiniSeekerFloating.smali`, `extension/radiant/NoOp.smali` +22 more | -| `Lam0/a;` | 74 | `extension/radiant/HomeBackdrop.smali`, `extension/radiant/Kawarp.smali`, `extension/radiant/NoOp.smali` +10 more | -| `Lcf/b;` | 60 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali`, `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | -| `Lm40/e$e;` | 49 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali`, `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackQueueAction.smali` +3 more | -| `Lh40/p;` | 46 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | -| `Lo6/b;` | 46 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `Lzc/a;` | 44 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali`, `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | -| `La50/b;` | 42 | `extension/radiant/gestures/queue/FeedResolver.smali`, `extension/radiant/gestures/queue/PlaylistItemsResolver.smali`, `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/google/android/gms/internal/play_billing/f5;` | 74 | `extension/radiant/HomeBackdrop.smali`, `extension/radiant/Kawarp.smali`, `extension/radiant/NoOp.smali` +10 more | +| `Laf/b;` | 60 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali`, `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `Ls30/e$e;` | 49 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali`, `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackQueueAction.smali` +3 more | +| `Ln30/p;` | 46 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | +| `Lm6/b;` | 46 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lxc/a;` | 44 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali`, `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `Lm30/b;` | 42 | `extension/radiant/gestures/queue/FeedResolver.smali`, `extension/radiant/gestures/queue/PlaylistItemsResolver.smali`, `extension/radiant/gestures/queue/SuggestionsResolver.smali` | | `Lcom/tidal/android/dynamicpages/ui/c;` | 42 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | -| `Lu5/b$a;` | 40 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `La50/d;` | 38 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali`, `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali`, `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` +3 more | -| `Le5/z$n2;` | 36 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lo6/b$a;` | 36 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `Lm40/e$d;` | 32 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` +1 more | -| `Lc60/r$b;` | 30 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | -| `Lu5/b$a$b;` | 30 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;` | 40 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lg40/d;` | 38 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali`, `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali`, `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` +3 more | +| `Le5/d0$t2;` | 36 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Ln6/b$a;` | 36 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Ls30/e$d;` | 32 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` +1 more | +| `Li50/u$b;` | 30 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;` | 30 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | | `Lbm/k;` | 28 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lcoil/request/b;` | 28 | `extension/radiant/Kawarp.smali` | | `Lbm/a;` | 26 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | -| `Lm40/e$a;` | 26 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | -| `Lm40/e$c;` | 26 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | -| `Lve/a;` | 26 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | +| `Ls30/e$a;` | 26 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | +| `Ls30/e$c;` | 26 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali` | +| `Lre/a;` | 26 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | | `Lcom/aspiro/wamp/playqueue/source/model/b;` | 25 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali` +8 more | | `Lbm/f;` | 24 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lbm/g;` | 24 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | -| `Lh40/j;` | 24 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lb80/a;` | 22 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lb80/c;` | 20 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lo6/i;` | 20 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `Lf20/a;` | 19 | `extension/radiant/QualityBadge.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | -| `Lb80/d;` | 18 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lc60/r;` | 18 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lh40/a;` | 18 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lh40/i;` | 18 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lm40/e;` | 18 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | -| `Lx40/a;` | 17 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/FeedResolver.smali` +5 more | -| `Lc60/b0;` | 16 | `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | -| `Lc60/d;` | 16 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali` | +| `Ln30/k;` | 24 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lm70/a;` | 22 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lm70/c;` | 20 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Ln6/g;` | 20 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lr00/a;` | 19 | `extension/radiant/QualityBadge.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | +| `Lm70/d;` | 18 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Li50/u;` | 18 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Ln30/a;` | 18 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Ln30/j;` | 18 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Ls30/e;` | 18 | `extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali`, `extension/radiant/gestures/queue/VerticalMediaQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lj30/a;` | 17 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/FeedResolver.smali` +5 more | +| `Li50/e0;` | 16 | `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lo40/e;` | 16 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali` | | `Lcom/tidal/android/core/adapterdelegate/c;` | 16 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | | `Lcom/tidal/android/feature/appscaffold/ui/r$c;` | 16 | `extension/com/tidal/android/feature/appscaffold/ui/r$c.smali`, `extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | | `Le5/c;` | 16 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lgh/j;` | 16 | `extension/radiant/MiniSeekerLine.smali` | -| `Lc60/c0;` | 14 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lc60/f;` | 14 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lcoil/f;` | 14 | `extension/radiant/Kawarp.smali` | -| `Lh40/n;` | 14 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | -| `Lpb0/b;` | 14 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | -| `Lu5/b$a$a;` | 14 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | 13 | `extension/radiant/gestures/queue/SuggestionsResolver.smali`, `gestures/queue/swipe-to-queue.patch` | -| `Lc60/v;` | 12 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/h;` | 12 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Leh/j;` | 16 | `extension/radiant/MiniSeekerLine.smali` | +| `Li50/f0;` | 14 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lo40/g;` | 14 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcoil/e;` | 14 | `extension/radiant/Kawarp.smali` | +| `Ln30/o;` | 14 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | +| `Lua0/b;` | 14 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a;` | 14 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali`, `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Landroidx/compose/foundation/text/input/internal/selection/b;` | 13 | `extension/radiant/gestures/queue/SuggestionsResolver.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Li50/y;` | 12 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j;` | 12 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | | `Lcom/aspiro/wamp/search/v2/d;` | 12 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lcom/tidal/android/navigation/a;` | 12 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` +2 more | -| `Lh9/p1;` | 12 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lie0/i;` | 12 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | +| `Lg9/u1;` | 12 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lae0/i;` | 12 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` +2 more | | `Lo3/a$a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lo3/a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lu3/a$a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lu3/a;` | 12 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 11 | `extension/radiant/gestures/queue/SuggestionsResolver.smali`, `gestures/queue/swipe-to-queue.patch` | -| `Lq20/c2;` | 11 | `extension/radiant/QualityBadge.smali`, `player-move-playing-from.patch`, `player-quality-badge-colors.patch` | -| `Lql0/a;` | 11 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | -| `Lc60/h;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/n;` | 11 | `extension/radiant/gestures/queue/SuggestionsResolver.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lw10/c2;` | 11 | `extension/radiant/QualityBadge.smali`, `player-move-playing-from.patch`, `player-quality-badge-colors.patch` | +| `Lml0/a;` | 11 | `extension/radiant/MiniSeekerLine.smali`, `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lo40/j;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | | `Lcoil/request/h$a;` | 10 | `extension/radiant/Kawarp.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;` | 10 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | -| `Lcom/aspiro/wamp/player/d;` | 10 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/e1;` | 10 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/player/b;` | 10 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | | `Lcom/aspiro/wamp/playlist/ui/items/a;` | 10 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | -| `Lcom/aspiro/wamp/playqueue/g1;` | 10 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | +| `Landroidx/compose/foundation/text/selection/g0;` | 10 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | | `Lcom/tidal/android/dynamicpages/ui/b;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | | `Lcom/tidal/android/feature/playerscreen/ui/f;` | 10 | `extension/radiant/RLAPILyricsWorker.smali`, `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | -| `Li60/c;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | -| `Ltl/h;` | 10 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Lq50/c;` | 10 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `extension/radiant/gestures/queue/DynamicTrackQueue.smali` | +| `Ltl/l;` | 10 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lcoil/request/h;` | 9 | `extension/radiant/Kawarp.smali` | | `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | 9 | `lyrics-disable-cover.patch`, `lyrics-replace-lyrics-button.patch`, `lyrics-replace-share-button.patch` +3 more | -| `Lpb0/b$a;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | -| `Lpb0/b$e;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | -| `Lpb0/b$f;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | -| `Lpb0/b$i;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | -| `La80/c;` | 8 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lhb0/b$a;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lhb0/b$e;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lhb0/b$f;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Lhb0/b$i;` | 9 | `extension/radiant/gestures/queue/ComposeSearchQueueAction.smali`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Ll70/c;` | 8 | `extension/radiant/gestures/queue/FeedResolver.smali` | | `Lcom/tidal/android/feature/appscaffold/ui/b$b;` | 8 | `extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali`, `extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a;` | 8 | `gestures/queue/swipe-to-queue.patch` | | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;` | 8 | `gestures/queue/swipe-to-queue.patch` | | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | 8 | `player-quality-badge-colors.patch` | | `Ldagger/internal/f;` | 8 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lfd/c;` | 8 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | -| `Li40/c$b;` | 8 | `extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali` | -| `Lie0/h;` | 8 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lld/c;` | 8 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | -| `Lpe/f;` | 8 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | -| `Ltl/q;` | 8 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Ldd/c;` | 8 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | +| `Lo30/c$b;` | 8 | `extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali` | +| `Lae0/h;` | 8 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Ljd/b;` | 8 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `Lle/e;` | 8 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | +| `Ltl/r;` | 8 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lu5/g;` | 8 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali` | | `Lv9/e;` | 8 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | -| `Lbi/e;` | 7 | `extension/radiant/RLAPILyricsWorker.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/p3;` | 7 | `extension/radiant/HomeBackdrop.smali`, `extension/radiant/Kawarp.smali`, `player-backdrop-kawarp.patch` +1 more | +| `Lzh/e;` | 7 | `extension/radiant/RLAPILyricsWorker.smali`, `gestures/mini-player/mini-player-left-right-gesture.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/e3;` | 7 | `extension/radiant/HomeBackdrop.smali`, `extension/radiant/Kawarp.smali`, `player-backdrop-kawarp.patch` +1 more | | `Lm3/f;` | 7 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | -| `Lam0/p;` | 6 | `extension/radiant/SparkleButton.smali`, `extension/radiant/SparkleContent.smali`, `mini-player-black.patch` +1 more | -| `Lc3/h;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lc60/s;` | 6 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lce0/b$a;` | 6 | `extension/radiant/Kawarp.smali` | +| `Lyl0/p;` | 6 | `extension/radiant/SparkleButton.smali`, `extension/radiant/SparkleContent.smali`, `mini-player-black.patch` +1 more | +| `Ld3/f;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Li50/v;` | 6 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lud0/b$a;` | 6 | `extension/radiant/Kawarp.smali` | | `Lcom/aspiro/wamp/contextmenu/item/playlist/f;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | 6 | `gestures/queue/swipe-to-queue.patch` | | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | 6 | `extension/radiant/gestures/queue/DynamicMediaQueue.smali`, `gestures/queue/swipe-to-queue-compose.patch` | | `Lcom/tidal/android/feature/appscaffold/ui/b$a;` | 6 | `extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali` | | `Lcom/tidal/android/feature/appscaffold/ui/r;` | 6 | `extension/com/tidal/android/feature/appscaffold/ui/r$c.smali` | | `Lcom/tidal/android/feature/feed/ui/c;` | 6 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | 6 | `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | -| `Lcom/tidal/android/feature/viewall/ui/e$c;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | -| `Lf20/d;` | 6 | `extension/radiant/QualityBadge.smali` | -| `Lgh/b;` | 6 | `extension/radiant/SeekerConsumer.smali` | -| `Lhf/c;` | 6 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | -| `Lie0/a;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | -| `Lie0/g;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/l1;` | 6 | `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | +| `Lcom/tidal/android/feature/viewall/ui/e$e;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Ll10/d;` | 6 | `extension/radiant/QualityBadge.smali` | +| `Leh/b;` | 6 | `extension/radiant/SeekerConsumer.smali` | +| `Ldf/c;` | 6 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | +| `Lsd0/a;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lae0/g;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | | `Lm3/d;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lm3/f$a;` | 6 | `extension/radiant/gestures/queue/QueueExecutor.smali`, `gestures/queue/swipe-to-queue.patch` | -| `Lmb0/a;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | -| `Ln8/d;` | 6 | `extension/radiant/gestures/queue/FavoriteTracksResolver.smali` | -| `Lpd0/a;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | -| `Lq20/u1;` | 6 | `extension/radiant/SparkleButton.smali` | +| `Leb0/a;` | 6 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Lm8/d;` | 6 | `extension/radiant/gestures/queue/FavoriteTracksResolver.smali` | +| `Lhd0/a;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | +| `Lw10/u1;` | 6 | `extension/radiant/SparkleButton.smali` | | `Lra/d;` | 6 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | -| `Lxd0/g;` | 6 | `extension/radiant/Kawarp.smali` | +| `Lpd0/g;` | 6 | `extension/radiant/Kawarp.smali` | | `Lcom/tidal/android/feature/playerscreen/ui/g$c;` | 5 | `extension/radiant/RLAPILyricsWorker.smali`, `lyrics-rl-api-observer.patch` | | `Lcom/tidal/android/feature/playerscreen/ui/p;` | 5 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch`, `player-hide-playing-from.patch` +1 more | -| `Lb0/c;` | 4 | `extension/radiant/Kawarp.smali` | +| `Lc0/c;` | 4 | `extension/radiant/Kawarp.smali` | | `Lbm/h;` | 4 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | -| `Lc3/i$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lc3/i;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lc3/l$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lc3/l;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lce0/b;` | 4 | `extension/radiant/Kawarp.smali` | +| `Ld3/g$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Ld3/g;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Ld3/j$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Le3/k;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lud0/b;` | 4 | `extension/radiant/Kawarp.smali` | | `Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lcom/aspiro/wamp/contextmenu/item/playlist/h;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lcom/aspiro/wamp/contextmenu/item/playlist/u;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lcom/aspiro/wamp/core/k;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/z$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/e0;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/core/l;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali`, `extension/radiant/gestures/queue/DynamicMediaQueue.smali` | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;` | 4 | `gestures/queue/swipe-to-queue.patch` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a;` | 4 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e;` | 4 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j$a;` | 4 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j$e;` | 4 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | | `Lcom/aspiro/wamp/playback/e0;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lcom/aspiro/wamp/playback/f;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lcom/aspiro/wamp/playback/d;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lcom/aspiro/wamp/playback/k0;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lcom/aspiro/wamp/playqueue/d1;` | 4 | `extension/radiant/MiniSeekerLine.smali` | -| `Lcom/aspiro/wamp/playqueue/u0;` | 4 | `extension/radiant/RLAPILyricsWorker.smali` | +| `Lcom/aspiro/wamp/playqueue/r0;` | 4 | `extension/radiant/MiniSeekerLine.smali` | +| `Lcom/aspiro/wamp/playqueue/m0;` | 4 | `extension/radiant/RLAPILyricsWorker.smali` | | `Lcom/aspiro/wamp/search/v2/a$g;` | 4 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lcom/squareup/ui/market/core/theme/k$a;` | 4 | `extension/radiant/SparkleButton.smali` | | `Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;` | 4 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali` | @@ -214,21 +214,21 @@ markers. | `Lcom/tidal/android/feature/search/ui/f;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | | `Lcom/tidal/android/feature/viewall/ui/c;` | 4 | `extension/radiant/gestures/queue/ViewAllTrackQueue.smali` | | `Lcom/tidal/android/image/core/b$a;` | 4 | `extension/radiant/Kawarp.smali` | -| `Ld0/c$a;` | 4 | `extension/radiant/Kawarp.smali` | -| `Lj3/k$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lj3/k;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lj3/n$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lj3/n;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lj3/q$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lj3/q;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Le0/c$a;` | 4 | `extension/radiant/Kawarp.smali` | +| `Lk3/m$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lk3/m;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Le3/j$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lk3/p;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Le3/b$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | +| `Lk3/s;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lm3/i$a;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | | `Lm3/i;` | 4 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lmb0/e;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | -| `Lvn0/b;` | 4 | `extension/radiant/RLAPILyricsWorker.smali` | -| `Lz70/a;` | 4 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lzf/c;` | 4 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | -| `Landroidx/navigation/f0;` | 3 | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/queue/swipe-to-queue-compose.patch` | -| `Landroidx/window/embedding/a2;` | 3 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch` | +| `Leb0/e;` | 4 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | +| `Ltn0/b;` | 4 | `extension/radiant/RLAPILyricsWorker.smali` | +| `Lk70/a;` | 4 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lxf/c;` | 4 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `Lx/f0;` | 3 | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/queue/swipe-to-queue-compose.patch` | +| `Landroidx/window/embedding/c2;` | 3 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch` | | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | 3 | `gestures/queue/swipe-to-queue-compose.patch` | | `Lcom/tidal/android/feature/appscaffold/ui/r$a;` | 3 | `extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali` | | `Lcom/tidal/android/feature/appscaffold/ui/t;` | 3 | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | @@ -237,33 +237,33 @@ markers. | `Lcom/tidal/android/image/core/b$h$a;` | 3 | `extension/radiant/Kawarp.smali` | | `Ldagger/internal/j;` | 3 | `extension/radiant/MiniSeekerLine.smali`, `gestures/queue/swipe-to-queue.patch` | | `Lkotlin/jvm/internal/n;` | 3 | `integration-waze-playback.patch` | -| `La30/a;` | 2 | `player-favorite-heart.patch` | -| `Lad/f;` | 2 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | -| `Lam0/q;` | 2 | `gestures/queue/swipe-to-queue-compose.patch` | -| `Landroidx/window/embedding/b2;` | 2 | `lyrics-replace-share-button.patch` | +| `Lg20/a;` | 2 | `player-favorite-heart.patch` | +| `Lyc/f;` | 2 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | +| `Lyl0/q;` | 2 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Landroidx/window/embedding/d2;` | 2 | `lyrics-replace-share-button.patch` | | `Lbd/d$a;` | 2 | `extension/radiant/gestures/queue/MyAlbumsResolver.smali` | | `Lbm/i;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lcoil/request/d;` | 2 | `extension/radiant/Kawarp.smali` | -| `Lcom/aspiro/wamp/contextmenu/menu/track/c;` | 2 | `gestures/queue/swipe-to-queue.patch` | -| `Lcom/aspiro/wamp/contextmenu/menu/track/d;` | 2 | `gestures/queue/swipe-to-queue.patch` | +| `Lz3/b;` | 2 | `gestures/queue/swipe-to-queue.patch` | +| `Lz3/c;` | 2 | `gestures/queue/swipe-to-queue.patch` | | `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h;` | 2 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/k;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/z$a;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | | `Lcom/aspiro/wamp/search/v2/a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | -| `Lcom/aspiro/wamp/util/h0;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lcom/aspiro/wamp/util/a0;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | | `Lcom/squareup/ui/market/components/n;` | 2 | `extension/radiant/SparkleButton.smali` | | `Lcom/squareup/ui/market/core/theme/k;` | 2 | `extension/radiant/SparkleButton.smali` | -| `Lcom/squareup/ui/market/core/theme/z;` | 2 | `extension/radiant/SparkleButton.smali` | +| `Lcom/squareup/ui/market/core/theme/h0;` | 2 | `extension/radiant/SparkleButton.smali` | | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;` | 2 | `gestures/queue/swipe-to-queue-compose.patch` | | `Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b;` | 2 | `extension/radiant/gestures/queue/ArtistTrackCreditsQueueEvent.smali` | | `Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/b;` | 2 | `extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali` | | `Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b;` | 2 | `extension/radiant/gestures/queue/DynamicTrackQueueEvent.smali` | | `Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/b;` | 2 | `extension/radiant/gestures/queue/DynamicMediaQueueEvent.smali` | | `Lcom/tidal/android/feature/appscaffold/ui/composable/a;` | 2 | `mini-player-black.patch`, `mini-player-dynamic-bg.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/s3;` | 2 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch` | +| `Lbd0/a;` | 2 | `lyrics-replace-lyrics-button.patch`, `lyrics-sparkle-conditional-visibility.patch` | | `Lcom/tidal/android/feature/playerscreen/ui/d;` | 2 | `lyrics-disable-cover.patch`, `player-move-playing-from.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/e0;` | 2 | `lyrics-replace-share-button.patch` | +| `Lcom/tidal/android/feature/profile/ui/sociallinks/y;` | 2 | `lyrics-replace-share-button.patch` | | `Lcom/tidal/android/feature/playerscreen/ui/g;` | 2 | `lyrics-disable-cover.patch`, `lyrics-progress-pill.patch` | | `Lcom/tidal/android/feature/search/ui/b;` | 2 | `extension/radiant/gestures/queue/ComposeSearchQueueEvent.smali` | | `Lcom/tidal/android/feature/search/ui/e;` | 2 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | @@ -272,65 +272,65 @@ markers. | `Lcom/tidal/android/image/core/b;` | 2 | `extension/radiant/Kawarp.smali` | | `Ldf/d$a;` | 2 | `extension/radiant/gestures/queue/MyPlaylistsResolver.smali` | | `Lhu/akarnokd/rxjava/interop/f;` | 2 | `extension/radiant/gestures/queue/QueueExecutor.smali` | -| `Lid/e;` | 2 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | -| `Lij/a0$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | -| `Lij/j0$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | -| `Lij/q$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lgd/e;` | 2 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | +| `Lgj/b0$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lgj/l0$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | +| `Lgj/r$a;` | 2 | `extension/radiant/gestures/queue/PlaylistItemsResolver.smali` | | `Ljd/d$a;` | 2 | `extension/radiant/gestures/queue/SearchAlbumsResolver.smali` | | `Lk5/f;` | 2 | `extension/radiant/gestures/queue/AlbumItemQueueAction.smali` | | `Lkotlin/collections/u;` | 2 | `extension/radiant/gestures/queue/SuggestionsResolver.smali` | | `Lkotlin/coroutines/e;` | 2 | `extension/radiant/gestures/lyrics/LyricsDrag$Guard.smali` | -| `Lkotlin/coroutines/h;` | 2 | `extension/radiant/MiniPlayerBackground.smali` | +| `Landroidx/compose/ui/text/p;` | 2 | `extension/radiant/MiniPlayerBackground.smali` | | `Lkotlin/i;` | 2 | `mini-player-dynamic-bg.patch` | | `Lmb0/f;` | 2 | `extension/radiant/gestures/queue/ComposeSearchQueue.smali` | | `Lo4/g;` | 2 | `gestures/queue/swipe-to-queue.patch` | -| `Lo50/a;` | 2 | `debug-menu-unlock.patch` | -| `Lp7/a$a;` | 2 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `Lq20/r4;` | 2 | `extension/radiant/QualityBadge.smali` | -| `Lq20/s4;` | 2 | `extension/radiant/QualityBadge.smali` | +| `La40/a;` | 2 | `debug-menu-unlock.patch` | +| `Lo7/a$a;` | 2 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lw10/r4;` | 2 | `extension/radiant/QualityBadge.smali` | +| `Lw10/s4;` | 2 | `extension/radiant/QualityBadge.smali` | | `Lqe/c$a;` | 2 | `extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali` | -| `Ltl/f;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | +| `Ltl/j;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lul/a0$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lul/d$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lul/n0$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | | `Lul/w$a;` | 2 | `extension/radiant/gestures/queue/UnifiedSearchResolver.smali` | -| `Lv6/e$a;` | 2 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | -| `Lv70/b;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lvn0/a;` | 2 | `extension/radiant/RLAPILyricsWorker.smali` | +| `Lu6/e$a;` | 2 | `extension/radiant/gestures/queue/DynamicTrackResolver.smali` | +| `Lr60/a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | +| `Lrn0/a;` | 2 | `extension/radiant/RLAPILyricsWorker.smali` | | `Lw70/c$a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | | `Lw70/h$a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | | `Lw70/k$a;` | 2 | `extension/radiant/gestures/queue/FeedResolver.smali` | -| `Lwf/d;` | 2 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | -| `Lxd0/e;` | 2 | `extension/radiant/Kawarp.smali` | -| `Lxd0/f;` | 2 | `extension/radiant/Kawarp.smali` | +| `Luf/d;` | 2 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | +| `Lhd0/h;` | 2 | `extension/radiant/Kawarp.smali` | +| `Lhd0/j;` | 2 | `extension/radiant/Kawarp.smali` | | `Lxf/d$a;` | 2 | `extension/radiant/gestures/queue/SearchPlaylistsResolver.smali` | -| `La30/b;` | 1 | `player-favorite-heart.patch` | +| `Lg20/b;` | 1 | `player-favorite-heart.patch` | | `Landroidx/compose/foundation/text/input/a;` | 1 | `player-backdrop-playback.patch` | -| `Lbk0/d;` | 1 | `integration-pebble-playback.patch` | -| `Lbk0/e;` | 1 | `integration-pebble-playback.patch` | +| `Lyj0/d;` | 1 | `integration-pebble-playback.patch` | +| `Lyj0/e;` | 1 | `integration-pebble-playback.patch` | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n;` | 1 | `gestures/queue/swipe-to-queue.patch` | -| `Lcom/aspiro/wamp/nowplaying/view/playqueue/l;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/aspiro/wamp/nowplaying/view/playqueue/p;` | 1 | `gestures/queue/swipe-to-queue.patch` | | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a;` | 1 | `gestures/queue/swipe-to-queue.patch` | | `Lcom/squareup/ui/market/layout/e;` | 1 | `player-backdrop-playback.patch` | | `Lcom/squareup/ui/market/text/a;` | 1 | `player-move-playing-from.patch` | | `Lcom/tidal/android/dynamicpages/ui/composables/verticallistcard/m;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | | `Lcom/tidal/android/feature/appscaffold/ui/composable/g;` | 1 | `gestures/mini-player/mini-player-left-right-gesture.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/b0;` | 1 | `lyrics-disable-cover.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/e5;` | 1 | `lyrics-replace-share-button.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/k1;` | 1 | `lyrics-replace-lyrics-button.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/o1;` | 1 | `lyrics-fade-region.patch` | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/t4;` | 1 | `player-quality-badge-colors.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/i0;` | 1 | `lyrics-disable-cover.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/c4;` | 1 | `lyrics-replace-share-button.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/v0;` | 1 | `lyrics-replace-lyrics-button.patch` | +| `Lcom/squareup/ui/market/modal/a0;` | 1 | `lyrics-fade-region.patch` | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/u3;` | 1 | `player-quality-badge-colors.patch` | | `Lcom/tidal/android/feature/playerscreen/ui/g$a;` | 1 | `lyrics-disable-cover.patch` | | `Lcom/tidal/android/feature/viewall/ui/e$a;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | -| `Lcom/tidal/android/feature/viewall/ui/n;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | -| `Lcom/tidal/android/featureflags/n;` | 1 | `debug-menu-unlock.patch` | -| `Lcom/tidal/android/tidalapi/domain/model/o;` | 1 | `lyrics-rl-api-isrc.patch` | -| `Lde0/c;` | 1 | `player-backdrop-playback.patch` | -| `Lmb/f;` | 1 | `integration-waze-playback.patch` | -| `Ln8/b;` | 1 | `gestures/queue/swipe-to-queue.patch` | +| `Lcom/tidal/android/feature/viewall/ui/w;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lcom/tidal/android/featureflags/l;` | 1 | `debug-menu-unlock.patch` | +| `Lcom/tidal/android/tidalapi/domain/model/q;` | 1 | `lyrics-rl-api-isrc.patch` | +| `Lvd0/c;` | 1 | `player-backdrop-playback.patch` | +| `Lkb/f;` | 1 | `integration-waze-playback.patch` | +| `Lm8/b;` | 1 | `gestures/queue/swipe-to-queue.patch` | | `Lo4/g$e;` | 1 | `gestures/queue/swipe-to-queue.patch` | -| `Lob0/q;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | -| `Lob0/w;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lgb0/x;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | +| `Lgb0/d0;` | 1 | `gestures/queue/swipe-to-queue-compose.patch` | ## 2. Rolled members on otherwise-stable classes (347) @@ -341,262 +341,262 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `Lcom/aspiro/wamp/App$a;` | `a` | `()Lcom/aspiro/wamp/App;` | 8 | | `Lcom/aspiro/wamp/App;` | `e` | `()Le5/c;` | 8 | | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;` | `a` | `(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a;` | 8 | -| `Lm40/e$e;` | `a` | `:J` | 8 | -| `La50/b;` | `b` | `:Ljava/util/ArrayList;` | 7 | -| `Lcf/b;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 6 | +| `Ls30/e$e;` | `a` | `:J` | 8 | +| `Lg40/b;` | `b` | `:Ljava/util/ArrayList;` | 7 | +| `Laf/b;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 6 | | `Lcom/tidal/android/navigation/a;` | `b` | `(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node;` | 6 | -| `Lie0/i;` | `a` | `(Lh40/p;)Lcom/aspiro/wamp/model/Track;` | 6 | -| `Lo6/b;` | `c` | `:Lo6/b$a;` | 6 | -| `Lzc/a;` | `b` | `:Lcom/aspiro/wamp/model/Album;` | 6 | -| `Lc60/r$b;` | `a` | `:Lh40/n;` | 5 | +| `Lae0/i;` | `c` | `(Ln30/p;)Lcom/aspiro/wamp/model/Track;` | 6 | +| `Ln6/b;` | `c` | `:Ln6/b$a;` | 6 | +| `Lxc/a;` | `b` | `:Lcom/aspiro/wamp/model/Album;` | 6 | +| `Li50/u$b;` | `a` | `:Ln30/o;` | 5 | | `Lcom/aspiro/wamp/playqueue/source/model/b;` | `j` | `(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 5 | | `Lcom/tidal/android/dynamicpages/ui/c;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 5 | -| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `P` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 5 | -| `Li60/c;` | `c` | `(Ljava/lang/String;)Lc60/h;` | 5 | -| `Lm40/e$e;` | `j` | `:Z` | 5 | -| `Lo6/b$a;` | `q` | `:Ljava/lang/String;` | 5 | -| `Lo6/b;` | `a` | `:Lo6/i;` | 5 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `S` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 5 | +| `Lq50/c;` | `c` | `(Ljava/lang/String;)Li50/j;` | 5 | +| `Ls30/e$e;` | `j` | `:Z` | 5 | +| `Ln6/b$a;` | `q` | `:Ljava/lang/String;` | 5 | +| `Ln6/b;` | `a` | `:Ln6/g;` | 5 | | `Lbm/a;` | `a` | `:Lcom/aspiro/wamp/model/Album;` | 4 | | `Lbm/f;` | `a` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 4 | | `Lbm/g;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 4 | | `Lbm/k;` | `a` | `:Lcom/aspiro/wamp/model/Track;` | 4 | -| `Lcf/b;` | `h` | `:Z` | 4 | -| `Lcf/b;` | `f` | `:Z` | 4 | -| `Lcf/b;` | `g` | `:Ljava/lang/String;` | 4 | -| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `o` | `(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 4 | -| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `N` | `()Ltl/h;` | 4 | +| `Laf/b;` | `h` | `:Z` | 4 | +| `Laf/b;` | `f` | `:Z` | 4 | +| `Laf/b;` | `g` | `:Ljava/lang/String;` | 4 | +| `Lcom/aspiro/wamp/playqueue/source/model/b;` | `o` | `(Lcom/tidal/android/navigation/NavigationInfo;Ljava/lang/String;Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 4 | +| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `N` | `()Ltl/j;` | 4 | | `Lcom/tidal/android/feature/playerscreen/ui/f;` | `a` | `:Ljava/lang/String;` | 4 | | `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `m` | `:Lcom/tidal/android/feature/playerscreen/ui/p;` | 4 | -| `Lh40/p;` | `a` | `:J` | 4 | -| `Lie0/h;` | `a` | `(Lh40/j;)Lcom/aspiro/wamp/model/Playlist;` | 4 | -| `Lo6/b$a;` | `o` | `:I` | 4 | -| `Lu5/b$a$b;` | `r` | `:I` | 4 | -| `Lu5/b$a;` | `c` | `:Lu5/b$a$b;` | 4 | -| `Lzc/a;` | `k` | `:Z` | 4 | -| `Lb80/a;` | `a` | `:Lcom/aspiro/wamp/model/Album;` | 3 | -| `Lb80/c;` | `a` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 3 | -| `Lb80/d;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 3 | -| `Lc60/s;` | `a` | `(Lc60/r;)Ljava/lang/String;` | 3 | +| `Ln30/p;` | `a` | `:J` | 4 | +| `Lae0/h;` | `a` | `(Ln30/k;)Lcom/aspiro/wamp/model/Playlist;` | 4 | +| `Ln6/b$a;` | `o` | `:I` | 4 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;` | `s` | `:I` | 4 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;` | `c` | `:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;` | 4 | +| `Lxc/a;` | `k` | `:Z` | 4 | +| `Lm70/a;` | `a` | `:Lcom/aspiro/wamp/model/Album;` | 3 | +| `Lm70/c;` | `a` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 3 | +| `Lm70/d;` | `a` | `:Lcom/aspiro/wamp/model/Playlist;` | 3 | +| `Li50/v;` | `a` | `(Li50/u;)Ljava/lang/String;` | 3 | | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `i` | `:Z` | 3 | -| `Lcom/aspiro/wamp/player/d;` | `b` | `()Lcom/aspiro/wamp/model/MediaItemParent;` | 3 | -| `Lcom/aspiro/wamp/playqueue/g1;` | `a` | `()Lcom/aspiro/wamp/player/d;` | 3 | +| `Lcom/aspiro/wamp/player/c;` | `b` | `()Lcom/aspiro/wamp/model/MediaItemParent;` | 3 | +| `Lcom/aspiro/wamp/playqueue/x0;` | `a` | `()Lcom/aspiro/wamp/player/c;` | 3 | | `Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;` | `a` | `(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType;` | 3 | | `Lcom/tidal/android/feature/appscaffold/ui/b$b;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/b$b;` | 3 | | `Lcom/tidal/android/feature/appscaffold/ui/r$c;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/r$c;` | 3 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/p3;` | `a` | `(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 3 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/e3;` | `a` | `(ILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 3 | | `Lh4/a;` | `b` | `:Lo3/a$a;` | 3 | | `Lh4/a;` | `h` | `:Lu3/a$a;` | 3 | -| `Lie0/a;` | `a` | `(Lh40/a;)Lcom/aspiro/wamp/model/Album;` | 3 | -| `Lie0/g;` | `b` | `(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix;` | 3 | -| `Lm40/e$d;` | `a` | `:Ljava/lang/String;` | 3 | -| `Lm40/e$d;` | `g` | `:Z` | 3 | +| `Lae0/a;` | `b` | `(Ln30/a;)Lcom/aspiro/wamp/model/Album;` | 3 | +| `Lae0/g;` | `b` | `(Ln30/j;)Lcom/aspiro/wamp/mix/model/Mix;` | 3 | +| `Ls30/e$d;` | `a` | `:Ljava/lang/String;` | 3 | +| `Ls30/e$d;` | `g` | `:Z` | 3 | | `Lo3/a$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lo3/a;` | 3 | -| `Lo6/b$a;` | `d` | `:I` | 3 | +| `Ln6/b$a;` | `d` | `:I` | 3 | | `Lu3/a$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lu3/a;` | 3 | -| `Lu5/b$a$b;` | `s` | `:Ljava/lang/String;` | 3 | -| `Lu5/b$a;` | `a` | `:Lu5/b$a$a;` | 3 | -| `Lve/a;` | `c` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 3 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;` | `t` | `:Ljava/lang/String;` | 3 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;` | `a` | `:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a;` | 3 | +| `Lte/a;` | `c` | `:Lcom/aspiro/wamp/mix/model/Mix;` | 3 | | `Lcoil/request/h$a;` | `b` | `:Lcoil/request/b;` | 2 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `Y` | `(ILcom/aspiro/wamp/model/FavoriteTrack;)Z` | 2 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `d` | `:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | 2 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `l` | `:Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;` | 2 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | `b` | `(I)Lcom/aspiro/wamp/model/FavoriteTrack;` | 2 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;` | `f` | `:Landroidx/recyclerview/widget/RecyclerView;` | 2 | -| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `c` | `:Lpe/f;` | 2 | +| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `c` | `:Lne/f;` | 2 | | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `h` | `:Landroid/graphics/drawable/Drawable;` | 2 | | `Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;` | `h` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 2 | | `Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;` | `c` | `:Lcom/aspiro/wamp/playlist/ui/items/a;` | 2 | | `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `g` | `:Lio/reactivex/disposables/CompositeDisposable;` | 2 | | `Lcom/aspiro/wamp/search/v2/d;` | `e` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 2 | -| `Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;` | `p0` | `()Lf20/a;` | 2 | +| `Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;` | `p0` | `()Ll10/a;` | 2 | | `Lcom/tidal/android/feature/appscaffold/ui/b$a;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/b$a;` | 2 | | `Lcom/tidal/android/feature/appscaffold/ui/composable/a;` | `c` | `:Landroidx/compose/foundation/shape/RoundedCornerShape;` | 2 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;` | `b` | `(Lcom/tidal/android/feature/playerscreen/ui/b;Lam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 2 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | `b` | `:I` | 2 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | `d` | `:J` | 2 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/f2;` | `e` | `:J` | 2 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/p3;` | `b` | `(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 2 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/s3;` | `a` | `(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;` | `b` | `(Lcom/tidal/android/feature/playerscreen/ui/b;Lyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/u1;` | `b` | `:I` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/u1;` | `d` | `:J` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/u1;` | `e` | `:J` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/e3;` | `b` | `(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V` | 2 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/h3;` | `a` | `(ILyl0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V` | 2 | | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | `b` | `:I` | 2 | | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | `a` | `:Ljava/lang/String;` | 2 | | `Lcom/tidal/android/feature/search/ui/SearchQuery;` | `a` | `:Ljava/lang/String;` | 2 | | `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `m` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 2 | -| `Le5/z$n2;` | `r2` | `()Lcom/aspiro/wamp/playqueue/g1;` | 2 | -| `Lh9/p1;` | `b` | `:Lx40/a;` | 2 | +| `Le5/d0$t2;` | `A2` | `()Lcom/aspiro/wamp/playqueue/x0;` | 2 | +| `Lg9/u1;` | `b` | `:Ld40/a;` | 2 | | `Lm3/f$a;` | `a` | `(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/f;` | 2 | | `Lm3/f;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 2 | -| `Lm40/e$a;` | `a` | `:J` | 2 | -| `Lm40/e$a;` | `e` | `:Z` | 2 | -| `Lm40/e$c;` | `a` | `:Ljava/lang/String;` | 2 | -| `Lm40/e$c;` | `h` | `:Z` | 2 | -| `Lo50/a;` | `a` | `:Ljava/lang/String;` | 2 | -| `Lo6/b;` | `b` | `:J` | 2 | -| `Lo6/i;` | `p` | `:Ljava/util/LinkedHashMap;` | 2 | -| `Ltl/q;` | `a` | `:Lx40/a;` | 2 | -| `Lu5/b$a$b;` | `g` | `:Lcom/aspiro/wamp/model/Availability;` | 2 | -| `Lu5/b$a$b;` | `p` | `:Z` | 2 | -| `Lu5/b$a;` | `b` | `:J` | 2 | -| `Lve/a;` | `f` | `:Z` | 2 | -| `Lve/a;` | `a` | `:Ljava/lang/String;` | 2 | -| `La30/a;` | `a` | `:I` | 1 | -| `La30/b;` | `O` | `:La30/a;` | 1 | -| `La80/c;` | `a` | `:Ljava/lang/String;` | 1 | -| `La80/c;` | `e` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `La80/c;` | `b` | `:Lx40/a;` | 1 | -| `Lb80/a;` | `c` | `:Z` | 1 | -| `Lb80/a;` | `g` | `:I` | 1 | -| `Lb80/c;` | `c` | `:I` | 1 | -| `Lb80/d;` | `c` | `:I` | 1 | -| `Lbi/e;` | `i` | `()Z` | 1 | -| `Lbi/e;` | `h` | `(Z)V` | 1 | +| `Ls30/e$a;` | `a` | `:J` | 2 | +| `Ls30/e$a;` | `e` | `:Z` | 2 | +| `Ls30/e$c;` | `a` | `:Ljava/lang/String;` | 2 | +| `Ls30/e$c;` | `h` | `:Z` | 2 | +| `Lu40/a;` | `a` | `:Ljava/lang/String;` | 2 | +| `Ln6/b;` | `b` | `:J` | 2 | +| `Ln6/g;` | `p` | `:Ljava/util/LinkedHashMap;` | 2 | +| `Ltl/r;` | `a` | `:Ld40/a;` | 2 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;` | `g` | `:Lcom/aspiro/wamp/model/Availability;` | 2 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;` | `p` | `:Z` | 2 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;` | `b` | `:J` | 2 | +| `Lte/a;` | `f` | `:Z` | 2 | +| `Lte/a;` | `a` | `:Ljava/lang/String;` | 2 | +| `Lg20/a;` | `a` | `:I` | 1 | +| `Lg20/b;` | `O` | `:Lg20/a;` | 1 | +| `Ll70/c;` | `a` | `:Ljava/lang/String;` | 1 | +| `Ll70/c;` | `e` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Ll70/c;` | `b` | `:Ld40/a;` | 1 | +| `Lm70/a;` | `c` | `:Z` | 1 | +| `Lm70/a;` | `g` | `:I` | 1 | +| `Lm70/c;` | `c` | `:I` | 1 | +| `Lm70/d;` | `c` | `:I` | 1 | +| `Lzh/e;` | `i` | `()Z` | 1 | +| `Lzh/e;` | `h` | `(Z)V` | 1 | | `Lbm/a;` | `c` | `:Lcom/aspiro/wamp/model/Availability$Album;` | 1 | | `Lbm/i;` | `a` | `(Lbm/h;)Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | | `Lbm/k;` | `e` | `:Lcom/aspiro/wamp/model/Availability$MediaItem;` | 1 | | `Lbm/k;` | `n` | `:Lcom/aspiro/wamp/search/SearchDataSource;` | 1 | -| `Lc3/h;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lc3/i$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/i;` | 1 | -| `Lc3/i;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lc3/l$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l;` | 1 | -| `Lc3/l;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lc60/b0;` | `b` | `:Ljava/lang/String;` | 1 | -| `Lc60/b0;` | `f` | `:Ljava/util/ArrayList;` | 1 | -| `Lc60/b0;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lc60/b0;` | `e` | `:I` | 1 | -| `Lc60/b0;` | `c` | `:Ljava/lang/String;` | 1 | -| `Lc60/b0;` | `g` | `:Ljava/lang/String;` | 1 | -| `Lc60/c0;` | `b` | `:Ljava/lang/String;` | 1 | -| `Lc60/c0;` | `g` | `:Ljava/util/ArrayList;` | 1 | -| `Lc60/c0;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lc60/c0;` | `f` | `:I` | 1 | -| `Lc60/c0;` | `c` | `:Ljava/lang/String;` | 1 | -| `Lc60/d;` | `b` | `:Ljava/lang/String;` | 1 | -| `Lc60/d;` | `f` | `:Ljava/util/ArrayList;` | 1 | -| `Lc60/d;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lc60/d;` | `e` | `:I` | 1 | -| `Lc60/d;` | `c` | `:Ljava/lang/String;` | 1 | -| `Lc60/d;` | `g` | `:Ljava/lang/String;` | 1 | -| `Lc60/f;` | `b` | `:Ljava/lang/String;` | 1 | -| `Lc60/f;` | `g` | `:Ljava/util/ArrayList;` | 1 | -| `Lc60/f;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lc60/f;` | `d` | `:I` | 1 | -| `Lc60/f;` | `e` | `:Ljava/lang/String;` | 1 | -| `Lc60/v;` | `b` | `:Ljava/lang/String;` | 1 | -| `Lc60/v;` | `f` | `:Ljava/util/ArrayList;` | 1 | -| `Lc60/v;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lc60/v;` | `e` | `:I` | 1 | -| `Lce0/b$a;` | `a` | `()Lce0/b;` | 1 | -| `Lce0/b;` | `a` | `()Lxd0/e;` | 1 | -| `Lcoil/f;` | `b` | `(Lcoil/request/h;)Lcoil/request/d;` | 1 | +| `Ld3/f;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Ld3/g$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Ld3/g;` | 1 | +| `Ld3/g;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Ld3/j$a;` | `a` | `(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Ld3/j;` | 1 | +| `Ld3/j;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Li50/e0;` | `b` | `:Ljava/lang/String;` | 1 | +| `Li50/e0;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Li50/e0;` | `a` | `:Ljava/lang/String;` | 1 | +| `Li50/e0;` | `e` | `:I` | 1 | +| `Li50/e0;` | `c` | `:Ljava/lang/String;` | 1 | +| `Li50/e0;` | `g` | `:Ljava/lang/String;` | 1 | +| `Li50/f0;` | `b` | `:Ljava/lang/String;` | 1 | +| `Li50/f0;` | `g` | `:Ljava/util/ArrayList;` | 1 | +| `Li50/f0;` | `a` | `:Ljava/lang/String;` | 1 | +| `Li50/f0;` | `f` | `:I` | 1 | +| `Li50/f0;` | `c` | `:Ljava/lang/String;` | 1 | +| `Li50/d;` | `b` | `:Ljava/lang/String;` | 1 | +| `Li50/d;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Li50/d;` | `a` | `:Ljava/lang/String;` | 1 | +| `Li50/d;` | `e` | `:I` | 1 | +| `Li50/d;` | `c` | `:Ljava/lang/String;` | 1 | +| `Li50/d;` | `g` | `:Ljava/lang/String;` | 1 | +| `Li50/f;` | `b` | `:Ljava/lang/String;` | 1 | +| `Li50/f;` | `g` | `:Ljava/util/ArrayList;` | 1 | +| `Li50/f;` | `a` | `:Ljava/lang/String;` | 1 | +| `Li50/f;` | `d` | `:I` | 1 | +| `Li50/f;` | `e` | `:Ljava/lang/String;` | 1 | +| `Li50/y;` | `b` | `:Ljava/lang/String;` | 1 | +| `Li50/y;` | `f` | `:Ljava/util/ArrayList;` | 1 | +| `Li50/y;` | `a` | `:Ljava/lang/String;` | 1 | +| `Li50/y;` | `e` | `:I` | 1 | +| `Lud0/b$a;` | `a` | `()Lud0/b;` | 1 | +| `Lud0/b;` | `a` | `()Lpd0/e;` | 1 | +| `Lcoil/e;` | `b` | `(Lcoil/request/h;)Lcoil/request/d;` | 1 | | `Lcoil/request/b;` | `a` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | | `Lcoil/request/b;` | `b` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | | `Lcoil/request/b;` | `c` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | | `Lcoil/request/b;` | `d` | `:Lkotlinx/coroutines/CoroutineDispatcher;` | 1 | -| `Lcoil/request/b;` | `e` | `:Ld0/c$a;` | 1 | +| `Lcoil/request/b;` | `e` | `:Le0/c$a;` | 1 | | `Lcoil/request/b;` | `f` | `:Lcoil/size/Precision;` | 1 | | `Lcoil/request/b;` | `g` | `:Landroid/graphics/Bitmap$Config;` | 1 | | `Lcoil/request/b;` | `h` | `:Z` | 1 | | `Lcoil/request/b;` | `i` | `:Lcoil/request/CachePolicy;` | 1 | | `Lcoil/request/b;` | `j` | `:Lcoil/request/CachePolicy;` | 1 | -| `Lcoil/request/h$a;` | `d` | `:Lb0/c;` | 1 | +| `Lcoil/request/h$a;` | `d` | `:Lc0/c;` | 1 | | `Lcoil/request/h$a;` | `a` | `()Lcoil/request/h;` | 1 | | `Lcoil/request/h;` | `a` | `(Lcoil/request/h;)Lcoil/request/h$a;` | 1 | | `Lcom/aspiro/wamp/contextmenu/item/playlist/f;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | | `Lcom/aspiro/wamp/contextmenu/item/playlist/h$a;` | `a` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/h;` | 1 | | `Lcom/aspiro/wamp/contextmenu/item/playlist/h;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;` | `a` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u;` | 1 | -| `Lcom/aspiro/wamp/contextmenu/item/playlist/u;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lcom/aspiro/wamp/contextmenu/menu/track/c;` | `b` | `:Ldagger/internal/j;` | 1 | -| `Lcom/aspiro/wamp/contextmenu/menu/track/d;` | `a` | `:Lcom/aspiro/wamp/contextmenu/menu/track/c;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `h` | `:Lad/f;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `N` | `()La50/d;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `c` | `:Lfd/c;` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/z$a;` | `a` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/z;` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/z;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lz3/b;` | `b` | `:Ldagger/internal/j;` | 1 | +| `Lz3/c;` | `a` | `:Lz3/b;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `h` | `:Lyc/f;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `N` | `()Lg40/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `c` | `:Ldd/c;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;` | `j` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `f` | `:Lid/e;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `N` | `()La50/d;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `c` | `:Lld/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `f` | `:Lgd/e;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `N` | `()Lg40/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `c` | `:Ljd/b;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;` | `g` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `Z` | `(ILcom/aspiro/wamp/model/FavoriteTrack;I)V` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `f` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `b` | `:Lx40/a;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `w` | `(Landroidx/recyclerview/widget/RecyclerView;ILandroid/view/View;)V` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `b` | `:Ld40/a;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `x` | `(Landroidx/recyclerview/widget/RecyclerView;ILandroid/view/View;)V` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;` | `N` | `()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | `m` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;` | `k` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `N` | `()La50/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `N` | `()Lg40/d;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;` | `h` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | | `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `j` | `:Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/h;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `N` | `()La50/d;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `d` | `:Lhf/c;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `g` | `:Lwf/d;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `N` | `()La50/d;` | 1 | -| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `c` | `:Lzf/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `N` | `()Lg40/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;` | `d` | `:Lff/c;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `g` | `:Luf/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `N` | `()Lg40/d;` | 1 | +| `Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;` | `c` | `:Lxf/c;` | 1 | | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `c` | `:Landroid/graphics/drawable/ColorDrawable;` | 1 | | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;` | `d` | `:Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl$ActionType;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;` | `o` | `:Ljava/lang/Object;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;` | `j` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/h;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/h;` | `c` | `:Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/j;` | `a` | `(Lcom/aspiro/wamp/nowplaying/view/suggestions/i;)V` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | `c` | `:Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 1 | -| `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;` | `M` | `()Lcom/aspiro/wamp/nowplaying/view/suggestions/l;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/e1;` | `o` | `:Ljava/lang/Object;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/e1;` | `j` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/i;` | `c` | `:Lcom/aspiro/wamp/nowplaying/view/suggestions/m;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/k;` | `a` | `(Lcom/aspiro/wamp/nowplaying/view/suggestions/j;)V` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/q0;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/q0;` | `c` | `:Lcom/aspiro/wamp/nowplaying/view/suggestions/m;` | 1 | +| `Lcom/aspiro/wamp/nowplaying/view/suggestions/q0;` | `M` | `()Lcom/aspiro/wamp/nowplaying/view/suggestions/m;` | 1 | | `Lcom/aspiro/wamp/playback/e0;` | `a` | `(Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lio/reactivex/disposables/Disposable;` | 1 | -| `Lcom/aspiro/wamp/playback/f;` | `a` | `(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f;` | 1 | +| `Lcom/aspiro/wamp/playback/e;` | `a` | `(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f;` | 1 | | `Lcom/aspiro/wamp/playback/k0;` | `c` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)V` | 1 | | `Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;` | `d` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | -| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `k` | `()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel;` | 1 | +| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `l` | `()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel;` | 1 | | `Lcom/aspiro/wamp/playlist/ui/items/a;` | `c` | `(Lcom/aspiro/wamp/model/Track;)V` | 1 | -| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `i` | `(I)V` | 1 | +| `Lcom/aspiro/wamp/playlist/ui/items/a;` | `j` | `(I)V` | 1 | | `Lcom/aspiro/wamp/playqueue/source/model/b;` | `c` | `(Lcom/aspiro/wamp/model/Album;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/AlbumSource;` | 1 | | `Lcom/aspiro/wamp/playqueue/source/model/b;` | `f` | `(Lcom/aspiro/wamp/model/Playlist;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/PlaylistSource;` | 1 | | `Lcom/aspiro/wamp/playqueue/source/model/b;` | `p` | `(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource;` | 1 | | `Lcom/aspiro/wamp/playqueue/source/model/b;` | `m` | `(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/MyItemsSource;` | 1 | -| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `c` | `:Ltl/q;` | 1 | +| `Lcom/aspiro/wamp/search/v2/UnifiedSearchView;` | `c` | `:Ltl/r;` | 1 | | `Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lcom/aspiro/wamp/util/h0;` | `c` | `(I)Ljava/lang/String;` | 1 | -| `Lcom/squareup/ui/market/components/MarketIconButtonKt;` | `P` | `(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lq20/u1;` | 1 | -| `Lcom/squareup/ui/market/components/MarketIconButtonKt;` | `b` | `(Lam0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lam0/a;Ljava/lang/String;Lq20/u1;Lam0/p;Landroidx/compose/runtime/Composer;II)V` | 1 | -| `Lcom/squareup/ui/market/components/MarketLabelKt;` | `e` | `(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lam0/l;Lq20/c2;Landroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/aspiro/wamp/util/a0;` | `c` | `(I)Ljava/lang/String;` | 1 | +| `Lcom/squareup/ui/market/components/MarketIconButtonKt;` | `P` | `(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lw10/u1;` | 1 | +| `Lcom/squareup/ui/market/components/MarketIconButtonKt;` | `c` | `(Lyl0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lyl0/a;Ljava/lang/String;Lw10/u1;Lyl0/p;Landroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/squareup/ui/market/components/MarketLabelKt;` | `e` | `(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lyl0/l;Lw10/c2;Landroidx/compose/runtime/Composer;II)V` | 1 | | `Lcom/squareup/ui/market/core/theme/k;` | `e` | `:Lcom/squareup/ui/market/core/theme/k$a;` | 1 | -| `Lcom/squareup/ui/market/core/theme/z;` | `t` | `(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet;` | 1 | -| `Lcom/squareup/ui/market/layout/e;` | `c` | `(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;` | 1 | -| `Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;` | `a` | `:Lcom/tidal/android/featureflags/n;` | 1 | -| `Lcom/tidal/android/dynamicpages/ui/c;` | `a` | `:Lcom/aspiro/wamp/core/k;` | 1 | +| `Lcom/squareup/ui/market/core/theme/d0;` | `t` | `(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet;` | 1 | +| `Lrx/functions/u;` | `b` | `(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap;` | 1 | +| `Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;` | `a` | `:Lcom/tidal/android/featureflags/m;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/c;` | `a` | `:Lcom/aspiro/wamp/core/l;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;` | `c` | `:Ljava/lang/String;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | -| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | `f` | `:Lam0/q;` | 1 | +| `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | `f` | `:Lyl0/q;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;` | `a` | `:Ljava/lang/String;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;` | `f` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;` | `b` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | | `Lcom/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager;` | `e` | `:Lcom/tidal/android/dynamicpages/ui/b;` | 1 | -| `Lcom/tidal/android/feature/appscaffold/ui/composable/g;` | `a` | `:Lam0/l;` | 1 | +| `Lcom/tidal/android/feature/appscaffold/ui/composable/g;` | `a` | `:Lyl0/l;` | 1 | | `Lcom/tidal/android/feature/appscaffold/ui/q;` | `d` | `:Ljava/lang/String;` | 1 | | `Lcom/tidal/android/feature/appscaffold/ui/q;` | `e` | `:Z` | 1 | | `Lcom/tidal/android/feature/appscaffold/ui/r$a;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/r$a;` | 1 | | `Lcom/tidal/android/feature/appscaffold/ui/t;` | `b` | `:Lcom/tidal/android/feature/appscaffold/ui/q;` | 1 | | `Lcom/tidal/android/feature/appscaffold/ui/t;` | `c` | `:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState;` | 1 | | `Lcom/tidal/android/feature/appscaffold/ui/t;` | `a` | `:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$ItemType;` | 1 | -| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `d` | `:Lv70/b;` | 1 | -| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `c` | `:La80/c;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `d` | `:Lg70/b;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/FeedView;` | `c` | `:Ll70/c;` | 1 | | `Lcom/tidal/android/feature/feed/ui/FeedView;` | `f` | `:Lio/reactivex/disposables/CompositeDisposable;` | 1 | -| `Lcom/tidal/android/feature/feed/ui/c;` | `c` | `:Lz70/a;` | 1 | +| `Lcom/tidal/android/feature/feed/ui/c;` | `c` | `:Lk70/a;` | 1 | | `Lcom/tidal/android/feature/feed/ui/viewstates/UpdatedIntervals$a;` | `a` | `(I)Ljava/lang/String;` | 1 | | `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel$observeLyricsProgress$1$a;` | `a` | `:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | 1 | | `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `W` | `:Lkotlinx/coroutines/flow/StateFlow;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `Q` | `:Lkotlin/i;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `a` | `:Lbi/e;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `O` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `K` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/b0;` | `b` | `:Lcom/tidal/android/feature/playerscreen/ui/s$a;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;` | `c` | `(Lcom/tidal/android/feature/playerscreen/ui/d;Lam0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;` | `a` | `(Lcom/tidal/android/feature/playerscreen/ui/g;Lam0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lam0/l;Landroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `T` | `:Lkotlin/i;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `a` | `:Lzh/e;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `R` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;` | `N` | `:Lkotlinx/coroutines/flow/MutableStateFlow;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/i0;` | `b` | `:Lcom/tidal/android/feature/playerscreen/ui/s$a;` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;` | `c` | `(Lcom/tidal/android/feature/playerscreen/ui/d;Lyl0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;` | `a` | `(Lcom/tidal/android/feature/playerscreen/ui/g;Lyl0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lyl0/l;Landroidx/compose/runtime/Composer;II)V` | 1 | | `Lcom/tidal/android/feature/playerscreen/ui/composables/anim/BouncePressKt;` | `a` | `(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier;` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/e5;` | `a` | `(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/k1;` | `a` | `(Landroidx/compose/ui/Modifier;Lam0/a;ZLandroidx/compose/runtime/Composer;I)V` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/o1;` | `a` | `:F` | 1 | -| `Lcom/tidal/android/feature/playerscreen/ui/composables/t4;` | `g` | `:F` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/o4;` | `a` | `(ILyl0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/c1;` | `a` | `(Landroidx/compose/ui/Modifier;Lyl0/a;ZLandroidx/compose/runtime/Composer;I)V` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/f1;` | `a` | `:F` | 1 | +| `Lcom/tidal/android/feature/playerscreen/ui/composables/g4;` | `g` | `:F` | 1 | | `Lcom/tidal/android/feature/playerscreen/ui/g$c;` | `c` | `:I` | 1 | | `Lcom/tidal/android/feature/playerscreen/ui/p;` | `a` | `:Ljava/lang/String;` | 1 | | `Lcom/tidal/android/feature/playerscreen/ui/s$a;` | `j` | `:Lcom/tidal/android/feature/playerscreen/ui/g;` | 1 | @@ -606,85 +606,85 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `n` | `:Ljava/util/List;` | 1 | | `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `d` | `:Lcom/tidal/android/feature/search/ui/e;` | 1 | | `Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;` | `f` | `:Lcom/tidal/android/feature/search/ui/f;` | 1 | -| `Lcom/tidal/android/feature/search/ui/f;` | `a` | `(JLh40/p;Ljava/lang/String;)V` | 1 | +| `Lcom/tidal/android/feature/search/ui/f;` | `a` | `(JLn30/p;Ljava/lang/String;)V` | 1 | | `Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;` | `n` | `:Lcom/tidal/android/feature/viewall/ui/c;` | 1 | | `Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;` | `f` | `:Lcom/tidal/android/feature/viewall/ui/u;` | 1 | | `Lcom/tidal/android/feature/viewall/ui/c;` | `f` | `:Ljava/util/ArrayList;` | 1 | -| `Lcom/tidal/android/feature/viewall/ui/e$c;` | `a` | `:Ljava/lang/Object;` | 1 | -| `Lcom/tidal/android/image/coil/base/CoilImageLoader;` | `a` | `:Lcoil/f;` | 1 | -| `Lcom/tidal/android/image/coil/c;` | `a` | `(Lxd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h;` | 1 | -| `Lde0/c;` | `a` | `:Ljava/lang/String;` | 1 | -| `Le5/z$n2;` | `z0` | `:Ldagger/internal/j;` | 1 | -| `Le5/z$n2;` | `u3` | `()Lcom/aspiro/wamp/playback/f;` | 1 | -| `Le5/z$n2;` | `x3` | `()Lcom/aspiro/wamp/playback/e0;` | 1 | -| `Le5/z$n2;` | `w8` | `:Ldagger/internal/f;` | 1 | -| `Le5/z$n2;` | `y3` | `()Lcom/aspiro/wamp/playback/k0;` | 1 | -| `Le5/z$n2;` | `v8` | `:Ldagger/internal/f;` | 1 | -| `Le5/z$n2;` | `K9` | `:Ldagger/internal/f;` | 1 | -| `Le5/z$n2;` | `k9` | `:Ldagger/internal/f;` | 1 | -| `Lfd/c;` | `a` | `:Lx40/a;` | 1 | -| `Lfd/c;` | `d` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | -| `Lfd/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lgh/b;` | `b` | `:F` | 1 | -| `Lgh/j;` | `a` | `()V` | 1 | -| `Lgh/j;` | `d` | `:Lio/reactivex/subjects/BehaviorSubject;` | 1 | +| `Lcom/tidal/android/feature/viewall/ui/e$d;` | `a` | `:Ljava/lang/Object;` | 1 | +| `Lcom/tidal/android/image/coil/base/CoilImageLoader;` | `a` | `:Lcoil/e;` | 1 | +| `Lcom/tidal/android/image/coil/c;` | `a` | `(Lpd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h;` | 1 | +| `Lvd0/c;` | `a` | `:Ljava/lang/String;` | 1 | +| `Le5/d0$t2;` | `e1` | `:Ldagger/internal/j;` | 1 | +| `Le5/d0$t2;` | `F3` | `()Lcom/aspiro/wamp/playback/e;` | 1 | +| `Le5/d0$t2;` | `I3` | `()Lcom/aspiro/wamp/playback/e0;` | 1 | +| `Le5/d0$t2;` | `w8` | `:Ldagger/internal/f;` | 1 | +| `Le5/d0$t2;` | `J3` | `()Lcom/aspiro/wamp/playback/k0;` | 1 | +| `Le5/d0$t2;` | `v8` | `:Ldagger/internal/f;` | 1 | +| `Le5/d0$t2;` | `K9` | `:Ldagger/internal/f;` | 1 | +| `Le5/d0$t2;` | `k9` | `:Ldagger/internal/f;` | 1 | +| `Ldd/c;` | `a` | `:Ld40/a;` | 1 | +| `Ldd/c;` | `d` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Ldd/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Leh/b;` | `b` | `:F` | 1 | +| `Leh/j;` | `a` | `()V` | 1 | +| `Leh/j;` | `d` | `:Lio/reactivex/subjects/BehaviorSubject;` | 1 | | `Lh4/a;` | `q` | `(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z` | 1 | -| `Lh4/a;` | `n` | `:Lcom/aspiro/wamp/contextmenu/menu/track/TrackContextMenu$a;` | 1 | -| `Lhf/c;` | `e` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | -| `Lhf/c;` | `d` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lj3/k$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/k;` | 1 | -| `Lj3/k;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lj3/n$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/n;` | 1 | -| `Lj3/n;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lj3/q$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q;` | 1 | -| `Lj3/q;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lh4/a;` | `m` | `:Lz3/a$a;` | 1 | +| `Lff/c;` | `e` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Lff/c;` | `d` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lk3/m$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lk3/m;` | 1 | +| `Lk3/m;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/k$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lk3/p;` | 1 | +| `Lk3/p;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | +| `Lcom/aspiro/wamp/contextmenu/item/playlist/AddToFavorites$a;` | `a` | `(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lk3/s;` | 1 | +| `Lk3/s;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | | `Lk5/f;` | `l` | `(Ljava/lang/String;)Lcom/aspiro/wamp/dynamicpages/data/model/Module;` | 1 | -| `Lld/c;` | `a` | `:Lx40/a;` | 1 | -| `Lld/c;` | `d` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | -| `Lld/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Ljd/b;` | `a` | `:Ld40/a;` | 1 | +| `Ljd/b;` | `d` | `:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;` | 1 | +| `Ljd/b;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | | `Lm3/d;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lm3/f;` | `j` | `:Lcom/aspiro/wamp/playqueue/g1;` | 1 | +| `Lm3/f;` | `j` | `:Lcom/aspiro/wamp/playqueue/x0;` | 1 | | `Lm3/i$a;` | `a` | `(Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Lm3/i;` | 1 | | `Lm3/i;` | `b` | `(Landroidx/fragment/app/FragmentActivity;)V` | 1 | -| `Lmb/f;` | `c` | `:Ljava/util/Map;` | 1 | -| `Lmb0/a;` | `a` | `:Lh40/n;` | 1 | -| `Lmb0/f;` | `a` | `(Lmb0/e;)Ljava/lang/String;` | 1 | -| `Ln8/d;` | `f` | `:Lcom/aspiro/wamp/model/MediaItem;` | 1 | -| `Lo3/a;` | `l` | `:Lcom/aspiro/wamp/module/album/AlbumProvider;` | 1 | -| `Lo3/a;` | `e` | `:Lc3/i$a;` | 1 | -| `Lo3/a;` | `d` | `:Lc3/l$a;` | 1 | +| `Lkb/f;` | `c` | `:Ljava/util/Map;` | 1 | +| `Leb0/a;` | `a` | `:Ln30/o;` | 1 | +| `Lcom/squareup/experiments/x;` | `c` | `(Leb0/e;)Ljava/lang/String;` | 1 | +| `Lm8/d;` | `f` | `:Lcom/aspiro/wamp/model/MediaItem;` | 1 | +| `Lo3/a;` | `m` | `:Lcom/aspiro/wamp/module/album/AlbumProvider;` | 1 | +| `Lo3/a;` | `f` | `:Ld3/g$a;` | 1 | +| `Lo3/a;` | `e` | `:Ld3/j$a;` | 1 | | `Lo4/g;` | `e` | `:Lo4/g$e;` | 1 | | `Lo4/g;` | `b` | `:I` | 1 | -| `Lo6/i;` | `g` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | -| `Lo6/i;` | `e` | `(ILjava/lang/String;)V` | 1 | -| `Lo6/i;` | `m` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lob0/q;` | `a` | `(Lpb0/b$e;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V` | 1 | -| `Lob0/w;` | `a` | `(Lpb0/b$f;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V` | 1 | -| `Lpb0/b$a;` | `a` | `:J` | 1 | -| `Lpb0/b$a;` | `f` | `:Z` | 1 | -| `Lpb0/b$e;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lpb0/b$f;` | `a` | `:Ljava/lang/String;` | 1 | -| `Lpb0/b$i;` | `a` | `:J` | 1 | -| `Lpb0/b$i;` | `i` | `:Z` | 1 | -| `Lpd0/a;` | `a` | `:Lh40/n;` | 1 | -| `Lpe/f;` | `a` | `:Lx40/a;` | 1 | -| `Lpe/f;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lq20/c2;` | `g` | `(Lq20/c2;Lq20/s4;Lf20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lq20/r4;ILjava/lang/Object;)Lq20/c2;` | 1 | +| `Ln6/g;` | `g` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Ln6/g;` | `e` | `(ILjava/lang/String;)V` | 1 | +| `Ln6/g;` | `m` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lgb0/x;` | `a` | `(Lhb0/b$e;Lyl0/a;Landroidx/compose/ui/Modifier;Lyl0/a;Landroidx/compose/runtime/Composer;I)V` | 1 | +| `Lgb0/d0;` | `a` | `(Lhb0/b$f;Lyl0/a;Landroidx/compose/ui/Modifier;Lyl0/a;Landroidx/compose/runtime/Composer;I)V` | 1 | +| `Lhb0/b$a;` | `a` | `:J` | 1 | +| `Lhb0/b$a;` | `f` | `:Z` | 1 | +| `Lhb0/b$e;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lhb0/b$f;` | `a` | `:Ljava/lang/String;` | 1 | +| `Lhb0/b$i;` | `a` | `:J` | 1 | +| `Lhb0/b$i;` | `i` | `:Z` | 1 | +| `Lhd0/a;` | `a` | `:Ln30/o;` | 1 | +| `Lne/f;` | `a` | `:Ld40/a;` | 1 | +| `Lne/f;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lw10/c2;` | `g` | `(Lw10/c2;Lw10/s4;Ll10/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lw10/r4;ILjava/lang/Object;)Lw10/c2;` | 1 | | `Lra/d;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Ltl/f;` | `e` | `(Lcom/aspiro/wamp/search/v2/a;)V` | 1 | -| `Ltl/h;` | `c` | `()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;` | 1 | -| `Ltl/q;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lu3/a;` | `j` | `:Lj3/k$a;` | 1 | -| `Lu3/a;` | `e` | `:Lj3/n$a;` | 1 | -| `Lu3/a;` | `d` | `:Lj3/q$a;` | 1 | -| `Lu5/b$a$a;` | `g` | `(ILjava/lang/String;)V` | 1 | +| `Ltl/h;` | `e` | `(Lcom/aspiro/wamp/search/v2/a;)V` | 1 | +| `Ltl/j;` | `c` | `()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;` | 1 | +| `Ltl/r;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lu3/a;` | `j` | `:Lk3/m$a;` | 1 | +| `Lu3/a;` | `e` | `:Lcom/aspiro/wamp/contextmenu/item/playlist/k$a;` | 1 | +| `Lu3/a;` | `d` | `:Lcom/aspiro/wamp/contextmenu/item/playlist/AddToFavorites$a;` | 1 | +| `Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a;` | `g` | `(ILjava/lang/String;)V` | 1 | | `Lu5/g;` | `h` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | | `Lu5/g;` | `j` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | | `Lv9/e;` | `b` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | -| `Lv9/e;` | `a` | `:Lcom/aspiro/wamp/core/k;` | 1 | -| `Lvn0/a;` | `c` | `(Ljava/lang/Iterable;)Lvn0/b;` | 1 | -| `Lz70/a;` | `c` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | -| `Lzf/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | +| `Lv9/e;` | `a` | `:Lcom/aspiro/wamp/core/l;` | 1 | +| `Ltn0/a;` | `c` | `(Ljava/lang/Iterable;)Ltn0/b;` | 1 | +| `Lk70/a;` | `c` | `:Lcom/aspiro/wamp/model/AvailabilityInteractor;` | 1 | +| `Lxf/c;` | `c` | `:Lcom/tidal/android/navigation/NavigationInfo;` | 1 | ## 3. Rolled patch target classes (65) @@ -692,18 +692,18 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | target | hooked by | |---|---| -| `bk0/e.smali` | `integration-pebble-playback.patch` | -| `cg0/h.smali` | `lyrics-rl-api-isrc.patch` | +| `yj0/e.smali` | `integration-pebble-playback.patch` | +| `vf0/h.smali` | `lyrics-rl-api-isrc.patch` | | `com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali` | `gestures/queue/swipe-to-queue.patch` | -| `com/aspiro/wamp/nowplaying/view/playqueue/l.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/playqueue/n.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl.smali` | `gestures/queue/swipe-to-queue.patch` | -| `com/aspiro/wamp/nowplaying/view/suggestions/h.smali` | `gestures/queue/swipe-to-queue.patch` | -| `com/aspiro/wamp/nowplaying/view/suggestions/o0.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/suggestions/i.smali` | `gestures/queue/swipe-to-queue.patch` | +| `com/aspiro/wamp/nowplaying/view/suggestions/q0.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/aspiro/wamp/search/v2/UnifiedSearchView.smali` | `gestures/queue/swipe-to-queue.patch` | | `com/tidal/android/core/debug/DebugFeatureInteractorDefault.smali` | `debug-menu-unlock.patch` | @@ -711,9 +711,9 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/dynamicpages/ui/composables/compactgridcard/d.smali` | `gestures/queue/swipe-to-queue-compose.patch` | -| `com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/j.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali` | `gestures/queue/swipe-to-queue-compose.patch` | -| `com/tidal/android/dynamicpages/ui/composables/verticaltracklist/j.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/dynamicpages/ui/composables/verticaltracklist/i.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/dynamicpages/ui/modules/compactgridcard/CompactGridCardModuleManager$createModuleViewState$2$2.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager$createModuleViewState$3.smali` | `gestures/queue/swipe-to-queue-compose.patch` | @@ -723,40 +723,40 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali` | `gestures/mini-player/mini-player-left-right-gesture.patch`, `gestures/mini-player/mini-player-up-gesture.patch` | | `com/tidal/android/feature/appscaffold/ui/composable/a.smali` | `mini-player-black.patch`, `mini-player-grey.patch` | | `com/tidal/android/feature/appscaffold/ui/composable/g.smali` | `gestures/mini-player/mini-player-left-right-gesture.patch` | -| `com/tidal/android/feature/appscaffold/ui/composable/i.smali` | `gestures/mini-player/mini-player-up-gesture.patch`, `mini-player-black.patch`, `mini-player-dynamic-bg.patch`, `mini-player-floating-border.patch`, `mini-player-grey.patch` | +| `com/tidal/android/feature/appscaffold/ui/composable/k.smali` | `gestures/mini-player/mini-player-up-gesture.patch`, `mini-player-black.patch`, `mini-player-dynamic-bg.patch`, `mini-player-floating-border.patch`, `mini-player-grey.patch` | | `com/tidal/android/feature/appscaffold/ui/q.smali` | `cover-capture.patch` | | `com/tidal/android/feature/appscaffold/ui/t.smali` | `cover-capture.patch` | | `com/tidal/android/feature/feed/ui/FeedView.smali` | `gestures/queue/swipe-to-queue.patch` | -| `com/tidal/android/feature/home/ui/composables/g.smali` | `home-backdrop.patch` | -| `com/tidal/android/feature/home/ui/k.smali` | `home-backdrop.patch` | -| `com/tidal/android/feature/home/ui/o.smali` | `home-backdrop.patch` | +| `com/tidal/android/feature/home/ui/composables/f.smali` | `home-backdrop.patch` | +| `com/tidal/android/feature/home/ui/j.smali` | `home-backdrop.patch` | +| `com/tidal/android/feature/home/ui/m.smali` | `home-backdrop.patch` | | `com/tidal/android/feature/playerscreen/ui/PlayerScreenKt$PlayerScreenPortrait$2$1.smali` | `lyrics-keep-controls-visible.patch` | | `com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali` | `lyrics-replace-lyrics-button.patch`, `lyrics-replace-share-button.patch`, `lyrics-sparkle-conditional-visibility.patch`, `player-backdrop-kawarp.patch`, `player-backdrop-playback.patch`, `player-hide-playing-from.patch`, `player-move-playing-from.patch`, `player-one-handed.patch` | | `com/tidal/android/feature/playerscreen/ui/PlayerViewModel$observeLyricsProgress$1$a.smali` | `lyrics-rl-api-observer.patch` | | `com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali` | `lyrics-rl-api.patch`, `player-quality-badge-colors.patch` | | `com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali` | `lyrics-keep-controls-visible.patch`, `lyrics-rl-api.patch`, `mini-player-dynamic-bg.patch` | -| `com/tidal/android/feature/playerscreen/ui/b0.smali` | `lyrics-disable-cover.patch` | +| `com/tidal/android/feature/playerscreen/ui/i0.smali` | `lyrics-disable-cover.patch` | | `com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali` | `gestures/lyrics/lyrics-gesture-scroll-guard.patch` | | `com/tidal/android/feature/playerscreen/ui/composables/SeekbarAndTimeKt.smali` | `player-quality-badge-colors.patch` | -| `com/tidal/android/feature/playerscreen/ui/composables/c1.smali` | `player-favorite-heart.patch` | -| `com/tidal/android/feature/playerscreen/ui/composables/f2.smali` | `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | -| `com/tidal/android/feature/playerscreen/ui/composables/n2.smali` | `player-move-playing-from.patch` | -| `com/tidal/android/feature/playerscreen/ui/composables/o1.smali` | `lyrics-fade-region.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/v0.smali` | `player-favorite-heart.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/u1.smali` | `lyrics-rl-api-syllable.patch`, `lyrics-rl-api-word.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/c2.smali` | `player-move-playing-from.patch` | +| `com/tidal/android/feature/playerscreen/ui/composables/f1.smali` | `lyrics-fade-region.patch` | | `com/tidal/android/feature/playerscreen/ui/i$a.smali` | `player-quality-badge-colors.patch` | -| `com/tidal/android/feature/playerscreen/ui/m0.smali` | `lyrics-progress-pill.patch` | +| `com/tidal/android/feature/playerscreen/ui/z0.smali` | `lyrics-progress-pill.patch` | | `com/tidal/android/feature/search/ui/SearchScreenViewModel.smali` | `gestures/queue/swipe-to-queue-compose.patch` | -| `com/tidal/android/feature/search/ui/composables/u0.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/feature/search/ui/composables/s0.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali` | `gestures/queue/swipe-to-queue-compose.patch` | -| `com/tidal/android/feature/viewall/ui/l.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `com/tidal/android/feature/viewall/ui/s.smali` | `gestures/queue/swipe-to-queue-compose.patch` | | `com/tidal/wave2/foundation/WaveScaffoldKt.smali` | `collection-backdrop.patch` | -| `de0/c.smali` | `player-backdrop-playback.patch` | +| `vd0/c.smali` | `player-backdrop-playback.patch` | | `h4/a.smali` | `gestures/queue/swipe-to-queue.patch` | -| `hg/d.smali` | `enable-legacy-ui.patch` | -| `j40/e4.smali` | `gestures/queue/swipe-to-queue-compose.patch` | -| `j40/p2.smali` | `gestures/queue/swipe-to-queue-compose.patch` | -| `mb/f.smali` | `integration-waze-playback.patch` | -| `p7/a.smali` | `gestures/queue/swipe-to-queue.patch` | -| `v6/e.smali` | `gestures/queue/swipe-to-queue.patch` | +| `fg/e.smali` | `enable-legacy-ui.patch` | +| `p30/h4.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `p30/t2.smali` | `gestures/queue/swipe-to-queue-compose.patch` | +| `kb/f.smali` | `integration-waze-playback.patch` | +| `o7/a.smali` | `gestures/queue/swipe-to-queue.patch` | +| `u6/e.smali` | `gestures/queue/swipe-to-queue.patch` | ## 4. Occurrences inside .patch files - not marked inline (221) @@ -765,89 +765,89 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `cover-capture.patch` | 5 | context | `Lcom/tidal/android/feature/appscaffold/ui/q; d` | | `cover-capture.patch` | 11 | context | `Lcom/tidal/android/feature/appscaffold/ui/q; e` | | `cover-capture.patch` | 15 | context | `Lcom/tidal/android/feature/appscaffold/ui/q;` | -| `debug-menu-unlock.patch` | 11 | context | `Lcom/tidal/android/featureflags/n; a` | -| `debug-menu-unlock.patch` | 26 | context | `Lo50/a; a` | -| `debug-menu-unlock.patch` | 36 | context | `Lo50/a; a` | -| `gestures/lyrics/lyrics-gesture-scroll-guard.patch` | 12 | context | `Lam0/l;` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 7 | added | `Lam0/l;` | +| `debug-menu-unlock.patch` | 11 | context | `Lcom/tidal/android/featureflags/m; a` | +| `debug-menu-unlock.patch` | 26 | context | `Lu40/a; a` | +| `debug-menu-unlock.patch` | 36 | context | `Lu40/a; a` | +| `gestures/lyrics/lyrics-gesture-scroll-guard.patch` | 12 | context | `Lyl0/l;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 7 | added | `Lyl0/l;` | | `gestures/mini-player/mini-player-left-right-gesture.patch` | 16 | context | `Lcom/tidal/android/feature/appscaffold/ui/t; Lcom/tidal/android/feature/appscaffold/ui/q; b` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 32 | context | `Lf20/a; p0` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 63 | context | `Lbi/e; i` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 32 | context | `Ll10/a; p0` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 63 | context | `Lzh/e; i` | | `gestures/mini-player/mini-player-left-right-gesture.patch` | 73 | added | `Lcom/tidal/android/feature/appscaffold/ui/r$c; a` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 81 | added | `Lbi/e;` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 89 | added | `Lbi/e; h` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 95 | context | `Landroidx/navigation/f0;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 81 | added | `Lzh/e;` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 89 | added | `Lzh/e; h` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 95 | context | `Lx/f0;` | | `gestures/mini-player/mini-player-left-right-gesture.patch` | 116 | added | `Lkotlin/u;` | -| `gestures/mini-player/mini-player-left-right-gesture.patch` | 122 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/g; Lam0/l; a` | +| `gestures/mini-player/mini-player-left-right-gesture.patch` | 122 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/g; Lyl0/l; a` | | `gestures/mini-player/mini-player-left-right-gesture.patch` | 126 | context | `Lcom/tidal/android/feature/appscaffold/ui/b$b; a` | -| `gestures/mini-player/mini-player-up-gesture.patch` | 14 | added | `Lam0/l;` | +| `gestures/mini-player/mini-player-up-gesture.patch` | 14 | added | `Lyl0/l;` | | `gestures/mini-player/mini-player-up-gesture.patch` | 23 | context | `Lcom/tidal/android/feature/appscaffold/ui/t; c` | | `gestures/mini-player/mini-player-up-gesture.patch` | 25 | added | `Lcom/tidal/android/feature/appscaffold/ui/t; a` | -| `gestures/mini-player/mini-player-up-gesture.patch` | 64 | context | `Lf20/a; p0` | -| `gestures/player/player-swipe-gesture.patch` | 35 | added | `Lam0/l;` | -| `gestures/player/player-swipe-gesture.patch` | 37 | added | `Lam0/l;` | -| `gestures/player/player-swipe-gesture.patch` | 41 | context | `Lam0/l;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 5 | context | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 7 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 18 | added | `Lm40/e$e; a` | -| `gestures/queue/swipe-to-queue-compose.patch` | 26 | added | `Lam0/l; Lm40/e$e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 28 | added | `Lm40/e$e; j` | -| `gestures/queue/swipe-to-queue-compose.patch` | 54 | context | `Landroidx/navigation/f0;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 60 | added | `Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 72 | added | `Lam0/l; Lm40/e;` | +| `gestures/mini-player/mini-player-up-gesture.patch` | 64 | context | `Ll10/a; p0` | +| `gestures/player/player-swipe-gesture.patch` | 35 | added | `Lyl0/l;` | +| `gestures/player/player-swipe-gesture.patch` | 37 | added | `Lyl0/l;` | +| `gestures/player/player-swipe-gesture.patch` | 41 | context | `Lyl0/l;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 5 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 7 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 18 | added | `Ls30/e$e; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 26 | added | `Lyl0/l; Ls30/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 28 | added | `Ls30/e$e; j` | +| `gestures/queue/swipe-to-queue-compose.patch` | 54 | context | `Lx/f0;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 60 | added | `Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 72 | added | `Lyl0/l; Ls30/e;` | | `gestures/queue/swipe-to-queue-compose.patch` | 93 | added | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d; Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; b` | -| `gestures/queue/swipe-to-queue-compose.patch` | 95 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; Lam0/q; f` | +| `gestures/queue/swipe-to-queue-compose.patch` | 95 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; Lyl0/q; f` | | `gestures/queue/swipe-to-queue-compose.patch` | 97 | added | `Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d; c` | | `gestures/queue/swipe-to-queue-compose.patch` | 99 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; a` | -| `gestures/queue/swipe-to-queue-compose.patch` | 103 | added | `Lam0/q;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 103 | added | `Lyl0/q;` | | `gestures/queue/swipe-to-queue-compose.patch` | 105 | added | `Lkotlin/u;` | | `gestures/queue/swipe-to-queue-compose.patch` | 123 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | | `gestures/queue/swipe-to-queue-compose.patch` | 127 | added | `Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/a;` | | `gestures/queue/swipe-to-queue-compose.patch` | 129 | added | `Lkotlin/u;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 159 | context | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 161 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 167 | added | `Lam0/l; Lpb0/b;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 173 | added | `Lpb0/b$a; f` | -| `gestures/queue/swipe-to-queue-compose.patch` | 187 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 193 | added | `Lam0/l; Lpb0/b;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 208 | context | `Lob0/w; Lpb0/b$f; Lam0/a; a` | -| `gestures/queue/swipe-to-queue-compose.patch` | 211 | context | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 213 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 219 | added | `Lam0/l; Lpb0/b;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 225 | added | `Lpb0/b$i; i` | -| `gestures/queue/swipe-to-queue-compose.patch` | 239 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 245 | added | `Lam0/l; Lpb0/b;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 260 | context | `Lob0/q; Lpb0/b$e; Lam0/a; a` | -| `gestures/queue/swipe-to-queue-compose.patch` | 265 | context | `Lam0/l;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 267 | added | `Lm40/e$e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 273 | added | `Lm40/e$e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 275 | added | `Lm40/e$e; a` | -| `gestures/queue/swipe-to-queue-compose.patch` | 283 | added | `Lam0/l; Lm40/e$e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 285 | added | `Lm40/e$e; j` | -| `gestures/queue/swipe-to-queue-compose.patch` | 300 | added | `Lcom/tidal/android/feature/viewall/ui/n;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 304 | added | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 159 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 161 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 167 | added | `Lyl0/l; Lhb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 173 | added | `Lhb0/b$a; f` | +| `gestures/queue/swipe-to-queue-compose.patch` | 187 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 193 | added | `Lyl0/l; Lhb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 208 | context | `Lgb0/d0; Lhb0/b$f; Lyl0/a; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 211 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 213 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 219 | added | `Lyl0/l; Lhb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 225 | added | `Lhb0/b$i; i` | +| `gestures/queue/swipe-to-queue-compose.patch` | 239 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 245 | added | `Lyl0/l; Lhb0/b;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 260 | context | `Lgb0/x; Lhb0/b$e; Lyl0/a; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 265 | context | `Lyl0/l;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 267 | added | `Ls30/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 273 | added | `Ls30/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 275 | added | `Ls30/e$e; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 283 | added | `Lyl0/l; Ls30/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 285 | added | `Ls30/e$e; j` | +| `gestures/queue/swipe-to-queue-compose.patch` | 300 | added | `Lcom/tidal/android/feature/viewall/ui/w;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 304 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | | `gestures/queue/swipe-to-queue-compose.patch` | 318 | added | `Lcom/tidal/android/feature/viewall/ui/e;` | | `gestures/queue/swipe-to-queue-compose.patch` | 324 | added | `Lkotlin/u;` | | `gestures/queue/swipe-to-queue-compose.patch` | 330 | context | `Lcom/tidal/android/feature/viewall/ui/e$a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 334 | context | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 335 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 341 | added | `Lm40/e$e; a` | -| `gestures/queue/swipe-to-queue-compose.patch` | 349 | added | `Lam0/l; Lm40/e$e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 351 | added | `Lm40/e$e; j` | -| `gestures/queue/swipe-to-queue-compose.patch` | 376 | added | `Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 384 | added | `Lam0/l; Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 390 | added | `Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 402 | context | `Lam0/a;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 334 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 335 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 341 | added | `Ls30/e$e; a` | +| `gestures/queue/swipe-to-queue-compose.patch` | 349 | added | `Lyl0/l; Ls30/e$e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 351 | added | `Ls30/e$e; j` | +| `gestures/queue/swipe-to-queue-compose.patch` | 376 | added | `Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 384 | added | `Lyl0/l; Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 390 | added | `Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 402 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | | `gestures/queue/swipe-to-queue-compose.patch` | 403 | added | `Lcom/tidal/android/dynamicpages/ui/composables/verticallistcard/m;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 407 | added | `Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 413 | added | `Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 415 | added | `Lm40/e;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 421 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 429 | context | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 430 | added | `Lam0/a;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 438 | added | `Lam0/l; Lm40/e$d;` | -| `gestures/queue/swipe-to-queue-compose.patch` | 444 | added | `Lm40/e$d; g` | -| `gestures/queue/swipe-to-queue-compose.patch` | 480 | context | `Landroidx/navigation/f0;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 407 | added | `Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 413 | added | `Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 415 | added | `Ls30/e;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 421 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 429 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 430 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 438 | added | `Lyl0/l; Ls30/e$d;` | +| `gestures/queue/swipe-to-queue-compose.patch` | 444 | added | `Ls30/e$d; g` | +| `gestures/queue/swipe-to-queue-compose.patch` | 480 | context | `Lx/f0;` | | `gestures/queue/swipe-to-queue.patch` | 13 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; d` | | `gestures/queue/swipe-to-queue.patch` | 17 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; b` | | `gestures/queue/swipe-to-queue.patch` | 33 | added | `f` | @@ -857,14 +857,14 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `gestures/queue/swipe-to-queue.patch` | 79 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; m` | | `gestures/queue/swipe-to-queue.patch` | 81 | added | `Lcom/aspiro/wamp/playqueue/source/model/b; m` | | `gestures/queue/swipe-to-queue.patch` | 87 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0; k` | -| `gestures/queue/swipe-to-queue.patch` | 89 | added | `Lx40/a; b` | +| `gestures/queue/swipe-to-queue.patch` | 89 | added | `Ld40/a; b` | | `gestures/queue/swipe-to-queue.patch` | 91 | added | `Lh4/a;` | | `gestures/queue/swipe-to-queue.patch` | 95 | added | `Lh4/a;` | | `gestures/queue/swipe-to-queue.patch` | 126 | added | `Lh4/a; q` | | `gestures/queue/swipe-to-queue.patch` | 142 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; l` | | `gestures/queue/swipe-to-queue.patch` | 146 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; f` | | `gestures/queue/swipe-to-queue.patch` | 148 | added | `w` | -| `gestures/queue/swipe-to-queue.patch` | 156 | context | `Ln8/b;` | +| `gestures/queue/swipe-to-queue.patch` | 156 | context | `Lm8/b;` | | `gestures/queue/swipe-to-queue.patch` | 159 | context | `Lo4/g; Lo4/g$e; e` | | `gestures/queue/swipe-to-queue.patch` | 163 | context | `Lo4/g; b` | | `gestures/queue/swipe-to-queue.patch` | 164 | added | `Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m; l` | @@ -874,17 +874,17 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `gestures/queue/swipe-to-queue.patch` | 218 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | | `gestures/queue/swipe-to-queue.patch` | 230 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | | `gestures/queue/swipe-to-queue.patch` | 270 | added | `Lh4/a; n` | -| `gestures/queue/swipe-to-queue.patch` | 272 | added | `Lcom/aspiro/wamp/contextmenu/menu/track/d;` | -| `gestures/queue/swipe-to-queue.patch` | 274 | added | `Lcom/aspiro/wamp/contextmenu/menu/track/d; Lcom/aspiro/wamp/contextmenu/menu/track/c; a` | -| `gestures/queue/swipe-to-queue.patch` | 276 | added | `Lcom/aspiro/wamp/contextmenu/menu/track/c; Ldagger/internal/j; b` | -| `gestures/queue/swipe-to-queue.patch` | 278 | added | `Lql0/a;` | +| `gestures/queue/swipe-to-queue.patch` | 272 | added | `Lz3/c;` | +| `gestures/queue/swipe-to-queue.patch` | 274 | added | `Lz3/c; Lz3/b; a` | +| `gestures/queue/swipe-to-queue.patch` | 276 | added | `Lz3/b; Ldagger/internal/j; b` | +| `gestures/queue/swipe-to-queue.patch` | 278 | added | `Lml0/a;` | | `gestures/queue/swipe-to-queue.patch` | 282 | added | `Lm3/f$a;` | | `gestures/queue/swipe-to-queue.patch` | 284 | added | `Lm3/f$a; Lm3/f; a` | -| `gestures/queue/swipe-to-queue.patch` | 288 | added | `Lm3/f; Lcom/aspiro/wamp/playqueue/g1; j` | -| `gestures/queue/swipe-to-queue.patch` | 290 | added | `Lcom/aspiro/wamp/playqueue/g1; Lcom/aspiro/wamp/player/d; a` | -| `gestures/queue/swipe-to-queue.patch` | 294 | added | `Lcom/aspiro/wamp/player/d; b` | +| `gestures/queue/swipe-to-queue.patch` | 288 | added | `Lm3/f; Lcom/aspiro/wamp/playqueue/x0; j` | +| `gestures/queue/swipe-to-queue.patch` | 290 | added | `Lcom/aspiro/wamp/playqueue/x0; Lcom/aspiro/wamp/player/c; a` | +| `gestures/queue/swipe-to-queue.patch` | 294 | added | `Lcom/aspiro/wamp/player/c; b` | | `gestures/queue/swipe-to-queue.patch` | 300 | added | `Lm3/f; b` | -| `gestures/queue/swipe-to-queue.patch` | 323 | context | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a; Lcom/aspiro/wamp/nowplaying/view/playqueue/l;` | +| `gestures/queue/swipe-to-queue.patch` | 323 | context | `Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a; Lcom/aspiro/wamp/nowplaying/view/playqueue/n;` | | `gestures/queue/swipe-to-queue.patch` | 346 | added | `h` | | `gestures/queue/swipe-to-queue.patch` | 357 | added | `i` | | `gestures/queue/swipe-to-queue.patch` | 359 | context | `d` | @@ -893,91 +893,91 @@ The owner name survives R8; only the member name rolls. Match on the descriptor. | `gestures/queue/swipe-to-queue.patch` | 456 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | | `gestures/queue/swipe-to-queue.patch` | 469 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | | `gestures/queue/swipe-to-queue.patch` | 482 | context | `Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b; Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; a` | -| `gestures/queue/swipe-to-queue.patch` | 500 | context | `Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; Lcom/aspiro/wamp/nowplaying/view/suggestions/l; M` | -| `integration-pebble-playback.patch` | 30 | context | `Lbk0/d; Lbk0/e;` | +| `gestures/queue/swipe-to-queue.patch` | 500 | context | `Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; Lcom/aspiro/wamp/nowplaying/view/suggestions/m; M` | +| `integration-pebble-playback.patch` | 30 | context | `Lyj0/d; Lyj0/e;` | | `integration-waze-playback.patch` | 9 | added | `Lkotlin/jvm/internal/n;` | | `integration-waze-playback.patch` | 17 | added | `Lkotlin/jvm/internal/n;` | | `integration-waze-playback.patch` | 35 | added | `Lkotlin/jvm/internal/n;` | -| `integration-waze-playback.patch` | 55 | context | `Lmb/f; c` | -| `lyrics-disable-cover.patch` | 11 | added | `Lcom/tidal/android/feature/playerscreen/ui/b0; Lcom/tidal/android/feature/playerscreen/ui/s$a; b` | +| `integration-waze-playback.patch` | 55 | context | `Lkb/f; c` | +| `lyrics-disable-cover.patch` | 11 | added | `Lcom/tidal/android/feature/playerscreen/ui/i0; Lcom/tidal/android/feature/playerscreen/ui/s$a; b` | | `lyrics-disable-cover.patch` | 13 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/g; j` | | `lyrics-disable-cover.patch` | 15 | added | `Lcom/tidal/android/feature/playerscreen/ui/g$a;` | -| `lyrics-disable-cover.patch` | 19 | context | `Lcom/tidal/android/feature/playerscreen/ui/d; Lam0/l; c` | -| `lyrics-fade-region.patch` | 7 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/o1; a` | +| `lyrics-disable-cover.patch` | 19 | context | `Lcom/tidal/android/feature/playerscreen/ui/d; Lyl0/l; c` | +| `lyrics-fade-region.patch` | 7 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/f1; a` | | `lyrics-keep-controls-visible.patch` | 28 | added | `Lkotlin/u;` | -| `lyrics-progress-pill.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/g; Lam0/l; a` | -| `lyrics-progress-pill.patch` | 60 | added | `Lam0/a;` | -| `lyrics-progress-pill.patch` | 72 | added | `Lam0/l;` | -| `lyrics-replace-lyrics-button.patch` | 8 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/k1; Lam0/a; a` | -| `lyrics-replace-lyrics-button.patch` | 19 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/s3; Lam0/a; a` | -| `lyrics-replace-lyrics-button.patch` | 21 | added | `Landroidx/window/embedding/a2;` | -| `lyrics-replace-lyrics-button.patch` | 27 | added | `Landroidx/window/embedding/a2;` | -| `lyrics-replace-lyrics-button.patch` | 35 | added | `Lam0/a;` | +| `lyrics-progress-pill.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/g; Lyl0/l; a` | +| `lyrics-progress-pill.patch` | 60 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `lyrics-progress-pill.patch` | 72 | added | `Lyl0/l;` | +| `lyrics-replace-lyrics-button.patch` | 8 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/c1; Lyl0/a; a` | +| `lyrics-replace-lyrics-button.patch` | 19 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/h3; Lyl0/a; a` | +| `lyrics-replace-lyrics-button.patch` | 21 | added | `Landroidx/window/embedding/c2;` | +| `lyrics-replace-lyrics-button.patch` | 27 | added | `Landroidx/window/embedding/c2;` | +| `lyrics-replace-lyrics-button.patch` | 35 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | | `lyrics-replace-lyrics-button.patch` | 38 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | -| `lyrics-replace-share-button.patch` | 7 | removed | `Lcom/tidal/android/feature/playerscreen/ui/b; Lam0/a; b` | -| `lyrics-replace-share-button.patch` | 20 | removed | `Lcom/tidal/android/feature/playerscreen/ui/e0;` | -| `lyrics-replace-share-button.patch` | 21 | added | `Landroidx/window/embedding/b2;` | -| `lyrics-replace-share-button.patch` | 26 | removed | `Lcom/tidal/android/feature/playerscreen/ui/e0;` | -| `lyrics-replace-share-button.patch` | 27 | added | `Landroidx/window/embedding/b2;` | -| `lyrics-replace-share-button.patch` | 33 | context | `Lam0/a;` | +| `lyrics-replace-share-button.patch` | 7 | removed | `Lcom/tidal/android/feature/playerscreen/ui/b; Lyl0/a; b` | +| `lyrics-replace-share-button.patch` | 20 | removed | `Lcom/tidal/android/feature/profile/ui/sociallinks/y;` | +| `lyrics-replace-share-button.patch` | 21 | added | `Landroidx/window/embedding/d2;` | +| `lyrics-replace-share-button.patch` | 26 | removed | `Lcom/tidal/android/feature/profile/ui/sociallinks/y;` | +| `lyrics-replace-share-button.patch` | 27 | added | `Landroidx/window/embedding/d2;` | +| `lyrics-replace-share-button.patch` | 33 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | | `lyrics-replace-share-button.patch` | 36 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/b; d` | -| `lyrics-replace-share-button.patch` | 42 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/e5; Lam0/a; a` | -| `lyrics-replace-share-button.patch` | 43 | added | `Lcom/tidal/android/feature/playerscreen/ui/b; Lam0/a; b` | -| `lyrics-rl-api-isrc.patch` | 4 | context | `Lcom/tidal/android/tidalapi/domain/model/o;` | +| `lyrics-replace-share-button.patch` | 42 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/o4; Lyl0/a; a` | +| `lyrics-replace-share-button.patch` | 43 | added | `Lcom/tidal/android/feature/playerscreen/ui/b; Lyl0/a; b` | +| `lyrics-rl-api-isrc.patch` | 4 | context | `Lcom/tidal/android/tidalapi/domain/model/q;` | | `lyrics-rl-api-observer.patch` | 10 | context | `a` | | `lyrics-rl-api-observer.patch` | 34 | context | `Lcom/tidal/android/feature/playerscreen/ui/g$c; c` | | `lyrics-rl-api-syllable.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/f;` | | `lyrics-rl-api-syllable.patch` | 23 | context | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | -| `lyrics-rl-api-syllable.patch` | 25 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; b` | +| `lyrics-rl-api-syllable.patch` | 25 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/u1; b` | | `lyrics-rl-api-syllable.patch` | 29 | added | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | -| `lyrics-rl-api-syllable.patch` | 33 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; d` | -| `lyrics-rl-api-syllable.patch` | 37 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; e` | -| `lyrics-rl-api-syllable.patch` | 64 | added | `Lam0/l;` | -| `lyrics-rl-api-syllable.patch` | 76 | removed | `Lam0/l;` | -| `lyrics-rl-api-syllable.patch` | 77 | added | `Lam0/l;` | +| `lyrics-rl-api-syllable.patch` | 33 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/u1; d` | +| `lyrics-rl-api-syllable.patch` | 37 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/u1; e` | +| `lyrics-rl-api-syllable.patch` | 64 | added | `Lyl0/l;` | +| `lyrics-rl-api-syllable.patch` | 76 | removed | `Lyl0/l;` | +| `lyrics-rl-api-syllable.patch` | 77 | added | `Lyl0/l;` | | `lyrics-rl-api-word.patch` | 14 | context | `Lcom/tidal/android/feature/playerscreen/ui/f;` | | `lyrics-rl-api-word.patch` | 23 | context | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | -| `lyrics-rl-api-word.patch` | 25 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; b` | +| `lyrics-rl-api-word.patch` | 25 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/u1; b` | | `lyrics-rl-api-word.patch` | 29 | added | `Lcom/tidal/android/feature/playerscreen/ui/f; a` | -| `lyrics-rl-api-word.patch` | 33 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; d` | -| `lyrics-rl-api-word.patch` | 37 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/f2; e` | -| `lyrics-rl-api-word.patch` | 52 | removed | `Lam0/l;` | -| `lyrics-rl-api-word.patch` | 53 | added | `Lam0/l;` | +| `lyrics-rl-api-word.patch` | 33 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/u1; d` | +| `lyrics-rl-api-word.patch` | 37 | added | `Lcom/tidal/android/feature/playerscreen/ui/composables/u1; e` | +| `lyrics-rl-api-word.patch` | 52 | removed | `Lyl0/l;` | +| `lyrics-rl-api-word.patch` | 53 | added | `Lyl0/l;` | | `lyrics-rl-api.patch` | 77 | context | `P` | -| `lyrics-sparkle-conditional-visibility.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/s3; Lam0/a; a` | +| `lyrics-sparkle-conditional-visibility.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/h3; Lyl0/a; a` | | `lyrics-sparkle-conditional-visibility.patch` | 7 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; i` | -| `lyrics-sparkle-conditional-visibility.patch` | 15 | context | `Landroidx/window/embedding/a2;` | -| `lyrics-sparkle-conditional-visibility.patch` | 20 | context | `Lam0/a;` | +| `lyrics-sparkle-conditional-visibility.patch` | 15 | context | `Landroidx/window/embedding/c2;` | +| `lyrics-sparkle-conditional-visibility.patch` | 20 | context | `Lcom/google/android/gms/internal/play_billing/f5;` | | `lyrics-sparkle-conditional-visibility.patch` | 36 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | | `mini-player-black.patch` | 56 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/a; c` | -| `mini-player-black.patch` | 71 | context | `Lam0/p;` | +| `mini-player-black.patch` | 71 | context | `Lyl0/p;` | | `mini-player-dynamic-bg.patch` | 14 | context | `Lcom/tidal/android/feature/appscaffold/ui/composable/a; c` | | `mini-player-dynamic-bg.patch` | 20 | context | `W` | | `mini-player-dynamic-bg.patch` | 22 | added | `Lkotlin/i; Q` | | `mini-player-dynamic-bg.patch` | 24 | added | `Lkotlin/i;` | -| `mini-player-floating-border.patch` | 9 | added | `Lam0/l;` | +| `mini-player-floating-border.patch` | 9 | added | `Lyl0/l;` | | `mini-player-floating-border.patch` | 14 | context | `Lkotlin/u;` | -| `mini-player-grey.patch` | 58 | context | `Lam0/p;` | -| `player-backdrop-kawarp.patch` | 8 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; b` | -| `player-backdrop-kawarp.patch` | 9 | added | `Lam0/a;` | -| `player-backdrop-kawarp.patch` | 36 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; a` | -| `player-backdrop-playback.patch` | 10 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; b` | +| `mini-player-grey.patch` | 58 | context | `Lyl0/p;` | +| `player-backdrop-kawarp.patch` | 8 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/e3; Lyl0/a; b` | +| `player-backdrop-kawarp.patch` | 9 | added | `Lcom/google/android/gms/internal/play_billing/f5;` | +| `player-backdrop-kawarp.patch` | 36 | removed | `Lcom/tidal/android/feature/playerscreen/ui/composables/e3; Lyl0/a; a` | +| `player-backdrop-playback.patch` | 10 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/e3; Lyl0/a; b` | | `player-backdrop-playback.patch` | 46 | removed | `Landroidx/compose/foundation/text/input/a;` | -| `player-backdrop-playback.patch` | 73 | context | `Lde0/c; a` | +| `player-backdrop-playback.patch` | 73 | context | `Lvd0/c; a` | | `player-backdrop-playback.patch` | 95 | context | `Lcom/squareup/ui/market/layout/e; c` | -| `player-favorite-heart.patch` | 16 | removed | `La30/b; La30/a; O` | -| `player-favorite-heart.patch` | 20 | removed | `La30/a; a` | +| `player-favorite-heart.patch` | 16 | removed | `Lg20/b; Lg20/a; O` | +| `player-favorite-heart.patch` | 20 | removed | `Lg20/a; a` | | `player-hide-playing-from.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | | `player-move-playing-from.patch` | 8 | added | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/p; m` | | `player-move-playing-from.patch` | 12 | added | `Lcom/tidal/android/feature/playerscreen/ui/p; a` | | `player-move-playing-from.patch` | 22 | context | `Lcom/tidal/android/feature/playerscreen/ui/s$a; Lcom/tidal/android/feature/playerscreen/ui/d; c` | -| `player-move-playing-from.patch` | 29 | context | `Lq20/c2;` | -| `player-move-playing-from.patch` | 61 | added | `Lcom/squareup/ui/market/text/a; Lam0/l; Lq20/c2; e` | -| `player-quality-badge-colors.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/t4; g` | +| `player-move-playing-from.patch` | 29 | context | `Lw10/c2;` | +| `player-move-playing-from.patch` | 61 | added | `Lcom/squareup/ui/market/text/a; Lyl0/l; Lw10/c2; e` | +| `player-quality-badge-colors.patch` | 5 | context | `Lcom/tidal/android/feature/playerscreen/ui/composables/g4; g` | | `player-quality-badge-colors.patch` | 16 | context | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | | `player-quality-badge-colors.patch` | 18 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a; b` | | `player-quality-badge-colors.patch` | 22 | context | `Lcom/tidal/android/feature/playerscreen/ui/i$a; a` | -| `player-quality-badge-colors.patch` | 33 | added | `Lq20/c2;` | +| `player-quality-badge-colors.patch` | 33 | added | `Lw10/c2;` | | `player-quality-badge-colors.patch` | 55 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a;` | | `player-quality-badge-colors.patch` | 66 | context | `Lcom/tidal/android/feature/playerscreen/ui/i$a; a` | | `player-quality-badge-colors.patch` | 68 | added | `Lcom/tidal/android/feature/playerscreen/ui/i$a; b` | diff --git a/patches/animated-covers.patch b/patches/animated-covers.patch new file mode 100644 index 0000000..13ec4ad --- /dev/null +++ b/patches/animated-covers.patch @@ -0,0 +1,54 @@ +--- a/com/tidal/android/feature/appscaffold/ui/q.smali ++++ b/com/tidal/android/feature/appscaffold/ui/q.smali +@@ -38,6 +38,8 @@ + .line 1 + invoke-direct {p0}, Ljava/lang/Object;->()V + ++ invoke-static {p1, p2, p3, p4}, Lradiant/AnimatedCovers;->onMediaState(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V # Look up animated cover ++ + .line 2 + .line 3 + .line 4 +--- a/com/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt.smali +@@ -633,5 +633,7 @@ + .line 281 + .line 282 +- invoke-static/range {v4 .. v13}, Lsd0/f;->a(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;II)V ++ move/from16 v14, p0 # Page album id ++ ++ invoke-static/range {v4 .. v14}, Lradiant/AnimatedCovers;->cover(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;III)V # Animated cover, else normal cover + + .line 283 +--- a/com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali ++++ b/com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali +@@ -92,4 +92,6 @@ + iput-object v1, v0, Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel;->a:Lzh/e; + ++ invoke-static {v1}, Lradiant/AnimatedCovers;->setQueue(Ljava/lang/Object;)V # Keep play queue for album name ++ + move-object/from16 v1, p2 + +--- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali +@@ -278,6 +278,10 @@ + move-object v5, p2 + + .line 9 +- invoke-static/range {v0 .. v9}, Lsd0/f;->a(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;II)V ++ move/from16 v10, p1 # Mini player album id ++ ++ invoke-static/range {v0 .. v10}, Lradiant/AnimatedCovers;->cover(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;III)V # Animated cover in mini player ++ ++ move/from16 v10, p5 # Restore changed flags + + invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z +--- a/com/aspiro/wamp/nowplaying/widgets/secondaryProgressView/SecondaryProgressView.smali ++++ b/com/aspiro/wamp/nowplaying/widgets/secondaryProgressView/SecondaryProgressView.smali +@@ -649,4 +649,6 @@ + :goto_3 + invoke-static {v5, v6, v3, v2}, Lwd0/l;->a(Landroid/widget/ImageView;ILjava/lang/String;I)Lcom/tidal/android/image/coil/g; + ++ invoke-static {v5, v6}, Lradiant/AnimatedCoverView;->attach(Landroid/widget/ImageView;I)V # Animated cover on lyrics pill ++ + .line 153 diff --git a/patches/cover-capture.patch b/patches/cover-capture.patch index 411fc7d..4a3c7e6 100644 --- a/patches/cover-capture.patch +++ b/patches/cover-capture.patch @@ -1,6 +1,6 @@ --- a/com/tidal/android/feature/appscaffold/ui/q.smali +++ b/com/tidal/android/feature/appscaffold/ui/q.smali -@@ -55,6 +55,8 @@ +@@ -57,6 +57,8 @@ .line 10 iput-object p4, p0, Lcom/tidal/android/feature/appscaffold/ui/q;->d:Ljava/lang/String; diff --git a/patches/cover-everywhere-pages.patch b/patches/cover-everywhere-pages.patch new file mode 100644 index 0000000..983cccf --- /dev/null +++ b/patches/cover-everywhere-pages.patch @@ -0,0 +1,49 @@ +--- a/com/tidal/wave/components/WaveScaffoldKt.smali ++++ b/com/tidal/wave/components/WaveScaffoldKt.smali +@@ -647,4 +647,10 @@ + move-result-wide v25 + ++ const-wide/16 v25, 0x0 # Transparent background for backdrop ++ ++ const/4 v0, 0x0 # render $changed flag ++ ++ invoke-static {v1, v0}, Lradiant/HomeBackdrop;->render(Landroidx/compose/runtime/Composer;I)V # render album-art backdrop ++ + .line 267 + new-instance v0, Lcom/tidal/wave/components/WaveScaffoldKt$WaveScaffold$2; +--- a/com/tidal/android/feature/saveforlater/ui/n.smali ++++ b/com/tidal/android/feature/saveforlater/ui/n.smali +@@ -174,4 +174,10 @@ + move-result-wide v7 + ++ const-wide/16 v7, 0x0 # Transparent background for backdrop ++ ++ const/4 v5, 0x0 # render $changed flag ++ ++ invoke-static {v13, v5}, Lradiant/HomeBackdrop;->render(Landroidx/compose/runtime/Composer;I)V # render album-art backdrop ++ + .line 66 + new-instance v2, Lcom/tidal/android/feature/saveforlater/ui/p; +--- a/com/tidal/android/feature/search/ui/composables/SearchScreenKt.smali ++++ b/com/tidal/android/feature/search/ui/composables/SearchScreenKt.smali +@@ -396,6 +396,10 @@ + :cond_9 + check-cast v4, Lyl0/l; + ++ const/4 v1, 0x0 # render $changed flag ++ ++ invoke-static {v6, v1}, Lradiant/HomeBackdrop;->render(Landroidx/compose/runtime/Composer;I)V # Backdrop behind Search ++ + .line 177 + .line 178 + invoke-static {v0, v4, v6, v10}, Lcom/tidal/android/feature/search/ui/composables/SearchScreenKt;->b(Lcom/tidal/android/feature/search/ui/d;Lyl0/l;Landroidx/compose/runtime/Composer;I)V +--- a/qa/b.smali ++++ b/qa/b.smali +@@ -126,5 +126,7 @@ + if-eqz p2, :cond_2 + ++ invoke-static {p1, v2}, Lradiant/HomeBackdrop;->render(Landroidx/compose/runtime/Composer;I)V # Backdrop behind View All ++ + .line 46 + .line 47 + invoke-static {p2, p1, v2}, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenKt;->f(Lcom/tidal/android/feature/viewall/ui/g;Landroidx/compose/runtime/Composer;I)V diff --git a/patches/data.json b/patches/data.json index f7373ed..6b5a170 100644 --- a/patches/data.json +++ b/patches/data.json @@ -1,5 +1,5 @@ { - "tidalVersionCode": 10004, + "tidalVersionCode": 10017, "tidalApkUrl": "https://github.com/meowarex/rl-mobile/releases/download/latest/tidal-stock.apk", - "patchesVersion": "1.2.8" + "patchesVersion": "1.5.0" } diff --git a/patches/debug-menu-unlock.patch b/patches/debug-menu-unlock.patch index 6c5d04b..f6f70dd 100644 --- a/patches/debug-menu-unlock.patch +++ b/patches/debug-menu-unlock.patch @@ -8,7 +8,7 @@ + return v0 # bypass debug flag + .line 1 - iget-object v0, p0, Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;->a:Lcom/tidal/android/featureflags/n; + iget-object v0, p0, Lcom/tidal/android/core/debug/DebugFeatureInteractorDefault;->a:Lcom/tidal/android/featureflags/m; @@ -99,6 +102,14 @@ } @@ -23,7 +23,7 @@ + return-object v0 # short-circuit b() + .line 1 - sget-object v0, Lo50/a;->a:Ljava/lang/String; + sget-object v0, Lu40/a;->a:Ljava/lang/String; @@ -261,6 +272,9 @@ .method public final c()Z @@ -33,5 +33,5 @@ + return v0 # bypass debug flag + .line 1 - sget-object v0, Lo50/a;->a:Ljava/lang/String; + sget-object v0, Lu40/a;->a:Ljava/lang/String; diff --git a/patches/enable-legacy-ui.patch b/patches/enable-legacy-ui.patch index 6fa44bd..745e5ce 100644 --- a/patches/enable-legacy-ui.patch +++ b/patches/enable-legacy-ui.patch @@ -1,5 +1,5 @@ ---- a/hg/d.smali -+++ b/hg/d.smali +--- a/fg/e.smali ++++ b/fg/e.smali @@ -27,7 +27,7 @@ .line 2 diff --git a/patches/extension/radiant/AiSparkle.smali b/patches/extension/radiant/AiSparkle.smali new file mode 100644 index 0000000..2c493b0 --- /dev/null +++ b/patches/extension/radiant/AiSparkle.smali @@ -0,0 +1,652 @@ +.class public final Lradiant/AiSparkle; +.super Landroidx/compose/ui/graphics/painter/Painter; + +# interfaces +.implements Landroid/view/Choreographer$FrameCallback; +.implements Ljava/lang/Runnable; + + +# static fields +.field private static final CYCLE_MS:J = 0x1770L + +.field private static final PALETTE:[I + +.field private static final POSTER:Lradiant/AiSparkle; + +.field private static final STOPS:[F + +.field private static final TAG:Ljava/lang/String; = "RLAiSparkle" + +.field static final aiState:Landroidx/compose/runtime/MutableState; + +.field private static cached:Lradiant/AiSparkle; + +.field private static frameScheduled:Z + +.field private static lastDrawMs:J + +.field private static volatile pending:Z + +.field static final tick:Landroidx/compose/runtime/MutableState; + + +# instance fields +.field private final base:Landroidx/compose/ui/graphics/painter/Painter; + +.field private final colors:[I + +.field private final fillPaint:Landroid/graphics/Paint; + + +# direct methods +.method static constructor ()V + .registers 5 + + const v0, -0xa11801 + + const v1, -0x587406 + + const v2, -0x9463 + + const/16 v3, -0x2e9a + + filled-new-array {v2, v3, v0, v1}, [I + + move-result-object v0 + + sput-object v0, Lradiant/AiSparkle;->PALETTE:[I + + const/4 v0, 0x4 + + new-array v0, v0, [F + + fill-array-data v0, :array_38 + + sput-object v0, Lradiant/AiSparkle;->STOPS:[F + + sget-object v0, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; + + const/4 v1, 0x0 + + const/4 v2, 0x2 + + invoke-static {v0, v1, v2, v1}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v0 + + sput-object v0, Lradiant/AiSparkle;->aiState:Landroidx/compose/runtime/MutableState; + + const-wide/16 v3, 0x0 + + invoke-static {v3, v4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object v0 + + invoke-static {v0, v1, v2, v1}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v0 + + sput-object v0, Lradiant/AiSparkle;->tick:Landroidx/compose/runtime/MutableState; + + new-instance v0, Lradiant/AiSparkle; + + invoke-direct {v0, v1}, Lradiant/AiSparkle;->(Landroidx/compose/ui/graphics/painter/Painter;)V + + sput-object v0, Lradiant/AiSparkle;->POSTER:Lradiant/AiSparkle; + + return-void + + nop + + :array_38 + .array-data 4 + 0x0 + 0x3eb33333 # 0.35f + 0x3f266666 # 0.65f + 0x3f800000 # 1.0f + .end array-data +.end method + +.method private constructor (Landroidx/compose/ui/graphics/painter/Painter;)V + .registers 4 + + invoke-direct {p0}, Landroidx/compose/ui/graphics/painter/Painter;->()V + + new-instance v0, Landroid/graphics/Paint; + + const/4 v1, 0x1 + + invoke-direct {v0, v1}, Landroid/graphics/Paint;->(I)V + + iput-object v0, p0, Lradiant/AiSparkle;->fillPaint:Landroid/graphics/Paint; + + const/4 v0, 0x4 + + new-array v0, v0, [I + + iput-object v0, p0, Lradiant/AiSparkle;->colors:[I + + iput-object p1, p0, Lradiant/AiSparkle;->base:Landroidx/compose/ui/graphics/painter/Painter; + + iget-object p1, p0, Lradiant/AiSparkle;->fillPaint:Landroid/graphics/Paint; + + new-instance v0, Landroid/graphics/PorterDuffXfermode; + + sget-object v1, Landroid/graphics/PorterDuff$Mode;->SRC_IN:Landroid/graphics/PorterDuff$Mode; + + invoke-direct {v0, v1}, Landroid/graphics/PorterDuffXfermode;->(Landroid/graphics/PorterDuff$Mode;)V + + invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode; + + return-void +.end method + +.method private static lerpPalette(F)I + .registers 8 + + float-to-double v0, p0 + + invoke-static {v0, v1}, Ljava/lang/Math;->floor(D)D + + move-result-wide v0 + + double-to-float v0, v0 + + sub-float/2addr p0, v0 + + const/high16 v0, 0x40800000 # 4.0f + + mul-float/2addr p0, v0 + + float-to-int v0, p0 + + int-to-float v1, v0 + + sub-float/2addr p0, v1 + + sget-object v1, Lradiant/AiSparkle;->PALETTE:[I + + and-int/lit8 v2, v0, 0x3 + + aget v1, v1, v2 + + sget-object v2, Lradiant/AiSparkle;->PALETTE:[I + + add-int/lit8 v0, v0, 0x1 + + and-int/lit8 v0, v0, 0x3 + + aget v0, v2, v0 + + shr-int/lit8 v2, v1, 0x10 + + and-int/lit16 v2, v2, 0xff + + shr-int/lit8 v3, v1, 0x8 + + and-int/lit16 v3, v3, 0xff + + and-int/lit16 v1, v1, 0xff + + shr-int/lit8 v4, v0, 0x10 + + and-int/lit16 v4, v4, 0xff + + shr-int/lit8 v5, v0, 0x8 + + and-int/lit16 v5, v5, 0xff + + and-int/lit16 v0, v0, 0xff + + int-to-float v6, v2 + + sub-int/2addr v4, v2 + + int-to-float v2, v4 + + mul-float/2addr v2, p0 + + add-float/2addr v6, v2 + + float-to-int v2, v6 + + int-to-float v4, v3 + + sub-int/2addr v5, v3 + + int-to-float v3, v5 + + mul-float/2addr v3, p0 + + add-float/2addr v4, v3 + + float-to-int v3, v4 + + int-to-float v4, v1 + + sub-int/2addr v0, v1 + + int-to-float v0, v0 + + mul-float/2addr v0, p0 + + add-float/2addr v4, v0 + + float-to-int p0, v4 + + const/high16 v0, -0x1000000 + + shl-int/lit8 v1, v2, 0x10 + + or-int/2addr v0, v1 + + shl-int/lit8 v1, v3, 0x8 + + or-int/2addr v0, v1 + + or-int/2addr p0, v0 + + return p0 +.end method + +.method public static onResponse(Ljava/lang/String;)V + .registers 5 + + const/4 v0, 0x0 + + :try_start_1 + new-instance v1, Lorg/json/JSONObject; + + invoke-direct {v1, p0}, Lorg/json/JSONObject;->(Ljava/lang/String;)V + + const-string p0, "Word" + + const-string v2, "type" + + const-string v3, "" + + invoke-virtual {v1, v2, v3}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result p0 + + if-eqz p0, :cond_22 + + const-string p0, "_synthesized" + + invoke-virtual {v1, p0, v0}, Lorg/json/JSONObject;->optBoolean(Ljava/lang/String;Z)Z + + move-result p0 + :try_end_1c + .catchall {:try_start_1 .. :try_end_1c} :catchall_21 + + if-eqz p0, :cond_22 + + const/4 p0, 0x1 + + move v0, p0 + + goto :goto_22 + + :catchall_21 + move-exception p0 + + :cond_22 + :goto_22 + invoke-static {v0}, Lradiant/AiSparkle;->post(Z)V + + return-void +.end method + +.method private static post(Z)V + .registers 2 + + sput-boolean p0, Lradiant/AiSparkle;->pending:Z + + new-instance p0, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v0 + + invoke-direct {p0, v0}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + sget-object v0, Lradiant/AiSparkle;->POSTER:Lradiant/AiSparkle; + + invoke-virtual {p0, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z + + return-void +.end method + +.method public static reset()V + .registers 1 + + const/4 v0, 0x0 + + invoke-static {v0}, Lradiant/AiSparkle;->post(Z)V + + return-void +.end method + +.method public static wrap(Landroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/painter/Painter; + .registers 3 + + sget-object p1, Lradiant/AiSparkle;->aiState:Landroidx/compose/runtime/MutableState; + + invoke-interface {p1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object p1 + + check-cast p1, Ljava/lang/Boolean; + + invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z + + move-result p1 + + if-eqz p1, :cond_21 + + if-nez p0, :cond_11 + + goto :goto_21 + + :cond_11 + sget-object p1, Lradiant/AiSparkle;->cached:Lradiant/AiSparkle; + + if-eqz p1, :cond_19 + + iget-object v0, p1, Lradiant/AiSparkle;->base:Landroidx/compose/ui/graphics/painter/Painter; + + if-eq v0, p0, :cond_20 + + :cond_19 + new-instance p1, Lradiant/AiSparkle; + + invoke-direct {p1, p0}, Lradiant/AiSparkle;->(Landroidx/compose/ui/graphics/painter/Painter;)V + + sput-object p1, Lradiant/AiSparkle;->cached:Lradiant/AiSparkle; + + :cond_20 + return-object p1 + + :cond_21 + :goto_21 + return-object p0 +.end method + + +# virtual methods +.method public applyColorFilter(Landroidx/compose/ui/graphics/ColorFilter;)Z + .registers 2 + + const/4 p1, 0x1 + + return p1 +.end method + +.method public doFrame(J)V + .registers 7 + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide p1 + + sget-object v0, Lradiant/AiSparkle;->aiState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/Boolean; + + invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z + + move-result v0 + + if-eqz v0, :cond_2f + + sget-wide v0, Lradiant/AiSparkle;->lastDrawMs:J + + sub-long v0, p1, v0 + + const-wide/16 v2, 0x1f4 + + cmp-long v0, v0, v2 + + if-gez v0, :cond_2f + + sget-object v0, Lradiant/AiSparkle;->tick:Landroidx/compose/runtime/MutableState; + + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object p1 + + invoke-interface {v0, p1}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; + + move-result-object p1 + + sget-object p2, Lradiant/AiSparkle;->POSTER:Lradiant/AiSparkle; + + invoke-virtual {p1, p2}, Landroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V + + goto :goto_32 + + :cond_2f + const/4 p1, 0x0 + + sput-boolean p1, Lradiant/AiSparkle;->frameScheduled:Z + + :goto_32 + return-void +.end method + +.method public getIntrinsicSize-NH-jbRc()J + .registers 3 + + iget-object v0, p0, Lradiant/AiSparkle;->base:Landroidx/compose/ui/graphics/painter/Painter; + + invoke-virtual {v0}, Landroidx/compose/ui/graphics/painter/Painter;->getIntrinsicSize-NH-jbRc()J + + move-result-wide v0 + + return-wide v0 +.end method + +.method public onDraw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V + .registers 19 + + move-object/from16 v0, p0 + + sget-object v1, Lradiant/AiSparkle;->tick:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v1 + + sput-wide v1, Lradiant/AiSparkle;->lastDrawMs:J + + sget-boolean v3, Lradiant/AiSparkle;->frameScheduled:Z + + if-nez v3, :cond_1d + + const/4 v3, 0x1 + + sput-boolean v3, Lradiant/AiSparkle;->frameScheduled:Z + + invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; + + move-result-object v3 + + sget-object v4, Lradiant/AiSparkle;->POSTER:Lradiant/AiSparkle; + + invoke-virtual {v3, v4}, Landroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V + + :cond_1d + invoke-interface/range {p1 .. p1}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getSize-NH-jbRc()J + + move-result-wide v7 + + invoke-static {v7, v8}, Landroidx/compose/ui/geometry/Size;->getWidth-impl(J)F + + move-result v12 + + invoke-static {v7, v8}, Landroidx/compose/ui/geometry/Size;->getHeight-impl(J)F + + move-result v13 + + const/4 v3, 0x0 + + cmpg-float v4, v12, v3 + + if-lez v4, :cond_8b + + cmpg-float v3, v13, v3 + + if-gtz v3, :cond_33 + + goto :goto_8b + + :cond_33 + invoke-interface/range {p1 .. p1}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/DrawContext; + + move-result-object v3 + + invoke-interface {v3}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->getCanvas()Landroidx/compose/ui/graphics/Canvas; + + move-result-object v3 + + invoke-static {v3}, Landroidx/compose/ui/graphics/AndroidCanvas_androidKt;->getNativeCanvas(Landroidx/compose/ui/graphics/Canvas;)Landroid/graphics/Canvas; + + move-result-object v9 + + const-wide/16 v3, 0x1770 + + rem-long/2addr v1, v3 + + long-to-float v1, v1 + + const v2, 0x45bb8000 # 6000.0f + + div-float/2addr v1, v2 + + const/4 v11, 0x0 + + const/4 v14, 0x0 + + const/4 v10, 0x0 + + invoke-virtual/range {v9 .. v14}, Landroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;)I + + move-result v2 + + move-object v3, v9 + + iget-object v5, v0, Lradiant/AiSparkle;->base:Landroidx/compose/ui/graphics/painter/Painter; + + const/high16 v9, 0x3f800000 # 1.0f + + const/4 v10, 0x0 + + move-object/from16 v6, p1 + + invoke-virtual/range {v5 .. v10}, Landroidx/compose/ui/graphics/painter/Painter;->draw-x_KDEd0(Landroidx/compose/ui/graphics/drawscope/DrawScope;JFLandroidx/compose/ui/graphics/ColorFilter;)V + + const/4 v4, 0x0 + + :goto_5a + const/4 v5, 0x4 + + if-ge v4, v5, :cond_6d + + iget-object v5, v0, Lradiant/AiSparkle;->colors:[I + + int-to-float v6, v4 + + const/high16 v7, 0x3e800000 # 0.25f + + mul-float/2addr v6, v7 + + add-float/2addr v6, v1 + + invoke-static {v6}, Lradiant/AiSparkle;->lerpPalette(F)I + + move-result v6 + + aput v6, v5, v4 + + add-int/lit8 v4, v4, 0x1 + + goto :goto_5a + + :cond_6d + iget-object v1, v0, Lradiant/AiSparkle;->fillPaint:Landroid/graphics/Paint; + + new-instance v9, Landroid/graphics/LinearGradient; + + iget-object v14, v0, Lradiant/AiSparkle;->colors:[I + + sget-object v15, Lradiant/AiSparkle;->STOPS:[F + + sget-object v16, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; + + const/4 v10, 0x0 + + move v11, v13 + + const/4 v13, 0x0 + + invoke-direct/range {v9 .. v16}, Landroid/graphics/LinearGradient;->(FFFF[I[FLandroid/graphics/Shader$TileMode;)V + + move v13, v11 + + invoke-virtual {v1, v9}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; + + const/4 v11, 0x0 + + iget-object v14, v0, Lradiant/AiSparkle;->fillPaint:Landroid/graphics/Paint; + + move-object v9, v3 + + invoke-virtual/range {v9 .. v14}, Landroid/graphics/Canvas;->drawRect(FFFFLandroid/graphics/Paint;)V + + invoke-virtual {v9, v2}, Landroid/graphics/Canvas;->restoreToCount(I)V + + :cond_8b + :goto_8b + return-void +.end method + +.method public run()V + .registers 3 + + sget-boolean v0, Lradiant/AiSparkle;->pending:Z + + invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; + + move-result-object v0 + + sget-object v1, Lradiant/AiSparkle;->aiState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/Boolean;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_17 + + sget-object v1, Lradiant/AiSparkle;->aiState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1, v0}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + :cond_17 + return-void +.end method diff --git a/patches/extension/radiant/AnimatedCoverView.smali b/patches/extension/radiant/AnimatedCoverView.smali new file mode 100644 index 0000000..56f64e7 --- /dev/null +++ b/patches/extension/radiant/AnimatedCoverView.smali @@ -0,0 +1,845 @@ +.class public final Lradiant/AnimatedCoverView; +.super Landroid/view/TextureView; + +# interfaces +.implements Landroid/view/TextureView$SurfaceTextureListener; +.implements Landroid/media/MediaPlayer$OnPreparedListener; +.implements Landroid/media/MediaPlayer$OnInfoListener; +.implements Landroid/media/MediaPlayer$OnErrorListener; +.implements Landroid/view/View$OnLayoutChangeListener; +.implements Landroid/view/View$OnAttachStateChangeListener; +.implements Ljava/lang/Runnable; + + +# static fields +.field private static final live:Ljava/util/ArrayList; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/ArrayList<", + "Ljava/lang/ref/WeakReference<", + "Lradiant/AnimatedCoverView;", + ">;>;" + } + .end annotation +.end field + + +# instance fields +.field private albumId:I + +.field private final host:Landroid/view/ViewGroup; + +.field private outlined:Z + +.field private player:Landroid/media/MediaPlayer; + +.field private surface:Landroid/view/Surface; + +.field private final target:Landroid/widget/ImageView; + +.field private url:Ljava/lang/String; + + +# direct methods +.method static constructor ()V + .registers 1 + + new-instance v0, Ljava/util/ArrayList; + + invoke-direct {v0}, Ljava/util/ArrayList;->()V + + sput-object v0, Lradiant/AnimatedCoverView;->live:Ljava/util/ArrayList; + + return-void +.end method + +.method private constructor (Landroid/widget/ImageView;Landroid/view/ViewGroup;)V + .registers 4 + + invoke-virtual {p1}, Landroid/widget/ImageView;->getContext()Landroid/content/Context; + + move-result-object v0 + + invoke-direct {p0, v0}, Landroid/view/TextureView;->(Landroid/content/Context;)V + + const/4 v0, -0x1 + + iput v0, p0, Lradiant/AnimatedCoverView;->albumId:I + + iput-object p1, p0, Lradiant/AnimatedCoverView;->target:Landroid/widget/ImageView; + + iput-object p2, p0, Lradiant/AnimatedCoverView;->host:Landroid/view/ViewGroup; + + const/4 p1, 0x0 + + invoke-virtual {p0, p1}, Lradiant/AnimatedCoverView;->setOpaque(Z)V + + const/4 p1, 0x0 + + invoke-virtual {p0, p1}, Lradiant/AnimatedCoverView;->setAlpha(F)V + + const/4 p1, 0x4 + + invoke-virtual {p0, p1}, Lradiant/AnimatedCoverView;->setVisibility(I)V + + invoke-virtual {p0, p0}, Lradiant/AnimatedCoverView;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V + + const/4 p1, 0x2 + + invoke-virtual {p0, p1}, Lradiant/AnimatedCoverView;->setImportantForAccessibility(I)V + + return-void +.end method + +.method public static attach(Landroid/widget/ImageView;I)V + .registers 8 + + if-nez p0, :cond_3 + + return-void + + :cond_3 + :try_start_3 + invoke-static {p0}, Lradiant/AnimatedCoverView;->find(Landroid/widget/ImageView;)Lradiant/AnimatedCoverView; + + move-result-object v0 + + if-nez v0, :cond_60 + + invoke-static {p0}, Lradiant/AnimatedCoverView;->frameAncestor(Landroid/view/View;)Landroid/view/ViewGroup; + + move-result-object v0 + + if-nez v0, :cond_10 + + return-void + + :cond_10 + new-instance v1, Lradiant/AnimatedCoverView; + + invoke-direct {v1, p0, v0}, Lradiant/AnimatedCoverView;->(Landroid/widget/ImageView;Landroid/view/ViewGroup;)V + + invoke-static {}, Landroid/view/View;->generateViewId()I + + move-result v2 + + invoke-virtual {v1, v2}, Lradiant/AnimatedCoverView;->setId(I)V + + new-instance v2, Landroid/view/ViewGroup$LayoutParams; + + invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I + + move-result v3 + + const/4 v4, 0x1 + + invoke-static {v4, v3}, Ljava/lang/Math;->max(II)I + + move-result v3 + + invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I + + move-result v5 + + invoke-static {v4, v5}, Ljava/lang/Math;->max(II)I + + move-result v4 + + invoke-direct {v2, v3, v4}, Landroid/view/ViewGroup$LayoutParams;->(II)V + + invoke-virtual {v0, v1, v2}, Landroid/view/ViewGroup;->addView(Landroid/view/View;Landroid/view/ViewGroup$LayoutParams;)V + + invoke-virtual {p0, v1}, Landroid/widget/ImageView;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V + + invoke-virtual {p0, v1}, Landroid/widget/ImageView;->addOnAttachStateChangeListener(Landroid/view/View$OnAttachStateChangeListener;)V + + invoke-virtual {p0}, Landroid/widget/ImageView;->getParent()Landroid/view/ViewParent; + + move-result-object v2 + + instance-of v2, v2, Landroid/view/View; + + if-eqz v2, :cond_52 + + invoke-virtual {p0}, Landroid/widget/ImageView;->getParent()Landroid/view/ViewParent; + + move-result-object v2 + + if-eq v2, v0, :cond_52 + + invoke-virtual {p0}, Landroid/widget/ImageView;->getParent()Landroid/view/ViewParent; + + move-result-object p0 + + check-cast p0, Landroid/view/View; + + invoke-virtual {p0, v1}, Landroid/view/View;->addOnLayoutChangeListener(Landroid/view/View$OnLayoutChangeListener;)V + + :cond_52 + sget-object p0, Lradiant/AnimatedCoverView;->live:Ljava/util/ArrayList; + + new-instance v0, Ljava/lang/ref/WeakReference; + + invoke-direct {v0, v1}, Ljava/lang/ref/WeakReference;->(Ljava/lang/Object;)V + + invoke-virtual {p0, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z + + invoke-direct {v1}, Lradiant/AnimatedCoverView;->sync()V + + move-object v0, v1 + + :cond_60 + iput p1, v0, Lradiant/AnimatedCoverView;->albumId:I + + invoke-direct {v0}, Lradiant/AnimatedCoverView;->refresh()V + :try_end_65 + .catchall {:try_start_3 .. :try_end_65} :catchall_66 + + goto :goto_67 + + :catchall_66 + move-exception p0 + + :goto_67 + return-void +.end method + +.method private static find(Landroid/widget/ImageView;)Lradiant/AnimatedCoverView; + .registers 4 + + sget-object v0, Lradiant/AnimatedCoverView;->live:Ljava/util/ArrayList; + + invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :cond_6 + :goto_6 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :cond_23 + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lradiant/AnimatedCoverView; + + if-nez v1, :cond_1e + + invoke-interface {v0}, Ljava/util/Iterator;->remove()V + + goto :goto_6 + + :cond_1e + iget-object v2, v1, Lradiant/AnimatedCoverView;->target:Landroid/widget/ImageView; + + if-ne v2, p0, :cond_6 + + return-object v1 + + :cond_23 + const/4 p0, 0x0 + + return-object p0 +.end method + +.method private static frameAncestor(Landroid/view/View;)Landroid/view/ViewGroup; + .registers 2 + + invoke-virtual {p0}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object p0 + + :goto_4 + instance-of v0, p0, Landroid/view/ViewGroup; + + if-eqz v0, :cond_14 + + instance-of v0, p0, Landroid/widget/FrameLayout; + + if-eqz v0, :cond_f + + check-cast p0, Landroid/view/ViewGroup; + + return-object p0 + + :cond_f + invoke-interface {p0}, Landroid/view/ViewParent;->getParent()Landroid/view/ViewParent; + + move-result-object p0 + + goto :goto_4 + + :cond_14 + const/4 p0, 0x0 + + return-object p0 +.end method + +.method private refresh()V + .registers 3 + + iget v0, p0, Lradiant/AnimatedCoverView;->albumId:I + + invoke-static {v0}, Lradiant/AnimatedCovers;->urlFor(I)Ljava/lang/String; + + move-result-object v0 + + iget-object v1, p0, Lradiant/AnimatedCoverView;->url:Ljava/lang/String; + + if-nez v0, :cond_d + + if-nez v1, :cond_14 + + goto :goto_13 + + :cond_d + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-eqz v1, :cond_14 + + :goto_13 + return-void + + :cond_14 + invoke-direct {p0}, Lradiant/AnimatedCoverView;->release()V + + iput-object v0, p0, Lradiant/AnimatedCoverView;->url:Ljava/lang/String; + + const/4 v1, 0x0 + + invoke-virtual {p0, v1}, Lradiant/AnimatedCoverView;->setAlpha(F)V + + if-nez v0, :cond_24 + + const/4 v0, 0x4 + + invoke-virtual {p0, v0}, Lradiant/AnimatedCoverView;->setVisibility(I)V + + return-void + + :cond_24 + const/4 v0, 0x0 + + invoke-virtual {p0, v0}, Lradiant/AnimatedCoverView;->setVisibility(I)V + + invoke-direct {p0}, Lradiant/AnimatedCoverView;->start()V + + return-void +.end method + +.method static refreshAll()V + .registers 2 + + :try_start_0 + sget-object v0, Lradiant/AnimatedCoverView;->live:Ljava/util/ArrayList; + + invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; + + move-result-object v0 + + :goto_6 + invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z + + move-result v1 + + if-eqz v1, :cond_23 + + invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/lang/ref/WeakReference; + + invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Lradiant/AnimatedCoverView; + + if-nez v1, :cond_1e + + invoke-interface {v0}, Ljava/util/Iterator;->remove()V + + goto :goto_6 + + :cond_1e + invoke-direct {v1}, Lradiant/AnimatedCoverView;->refresh()V + :try_end_21 + .catchall {:try_start_0 .. :try_end_21} :catchall_22 + + goto :goto_6 + + :catchall_22 + move-exception v0 + + :cond_23 + return-void +.end method + +.method private release()V + .registers 3 + + iget-object v0, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + const/4 v1, 0x0 + + iput-object v1, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + if-eqz v0, :cond_c + + :try_start_7 + invoke-virtual {v0}, Landroid/media/MediaPlayer;->release()V + :try_end_a + .catchall {:try_start_7 .. :try_end_a} :catchall_b + + goto :goto_c + + :catchall_b + move-exception v0 + + :cond_c + :goto_c + return-void +.end method + +.method private start()V + .registers 3 + + iget-object v0, p0, Lradiant/AnimatedCoverView;->url:Ljava/lang/String; + + if-eqz v0, :cond_37 + + iget-object v0, p0, Lradiant/AnimatedCoverView;->surface:Landroid/view/Surface; + + if-eqz v0, :cond_37 + + iget-object v0, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + if-eqz v0, :cond_d + + goto :goto_37 + + :cond_d + :try_start_d + new-instance v0, Landroid/media/MediaPlayer; + + invoke-direct {v0}, Landroid/media/MediaPlayer;->()V + + iput-object v0, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + iget-object v1, p0, Lradiant/AnimatedCoverView;->surface:Landroid/view/Surface; + + invoke-virtual {v0, v1}, Landroid/media/MediaPlayer;->setSurface(Landroid/view/Surface;)V + + invoke-virtual {v0, p0}, Landroid/media/MediaPlayer;->setOnPreparedListener(Landroid/media/MediaPlayer$OnPreparedListener;)V + + invoke-virtual {v0, p0}, Landroid/media/MediaPlayer;->setOnInfoListener(Landroid/media/MediaPlayer$OnInfoListener;)V + + invoke-virtual {v0, p0}, Landroid/media/MediaPlayer;->setOnErrorListener(Landroid/media/MediaPlayer$OnErrorListener;)V + + const/4 v1, 0x1 + + invoke-virtual {v0, v1}, Landroid/media/MediaPlayer;->setLooping(Z)V + + const/4 v1, 0x0 + + invoke-virtual {v0, v1, v1}, Landroid/media/MediaPlayer;->setVolume(FF)V + + iget-object v1, p0, Lradiant/AnimatedCoverView;->url:Ljava/lang/String; + + invoke-virtual {v0, v1}, Landroid/media/MediaPlayer;->setDataSource(Ljava/lang/String;)V + + invoke-virtual {v0}, Landroid/media/MediaPlayer;->prepareAsync()V + :try_end_32 + .catchall {:try_start_d .. :try_end_32} :catchall_33 + + goto :goto_37 + + :catchall_33 + move-exception v0 + + invoke-direct {p0}, Lradiant/AnimatedCoverView;->release()V + + :cond_37 + :goto_37 + return-void +.end method + +.method private sync()V + .registers 8 + + invoke-virtual {p0}, Lradiant/AnimatedCoverView;->getLayoutParams()Landroid/view/ViewGroup$LayoutParams; + + move-result-object v0 + + iget-object v1, p0, Lradiant/AnimatedCoverView;->target:Landroid/widget/ImageView; + + invoke-virtual {v1}, Landroid/widget/ImageView;->getWidth()I + + move-result v1 + + const/4 v2, 0x1 + + invoke-static {v2, v1}, Ljava/lang/Math;->max(II)I + + move-result v1 + + iget-object v3, p0, Lradiant/AnimatedCoverView;->target:Landroid/widget/ImageView; + + invoke-virtual {v3}, Landroid/widget/ImageView;->getHeight()I + + move-result v3 + + invoke-static {v2, v3}, Ljava/lang/Math;->max(II)I + + move-result v3 + + if-eqz v0, :cond_2a + + iget v4, v0, Landroid/view/ViewGroup$LayoutParams;->width:I + + if-ne v4, v1, :cond_23 + + iget v4, v0, Landroid/view/ViewGroup$LayoutParams;->height:I + + if-eq v4, v3, :cond_2a + + :cond_23 + iput v1, v0, Landroid/view/ViewGroup$LayoutParams;->width:I + + iput v3, v0, Landroid/view/ViewGroup$LayoutParams;->height:I + + invoke-virtual {p0, v0}, Lradiant/AnimatedCoverView;->setLayoutParams(Landroid/view/ViewGroup$LayoutParams;)V + + :cond_2a + iget-object v0, p0, Lradiant/AnimatedCoverView;->target:Landroid/widget/ImageView; + + const/4 v1, 0x0 + + move v3, v1 + + move v4, v3 + + :goto_2f + if-eqz v0, :cond_58 + + iget-object v5, p0, Lradiant/AnimatedCoverView;->host:Landroid/view/ViewGroup; + + if-eq v0, v5, :cond_58 + + invoke-virtual {v0}, Landroid/view/View;->getLeft()I + + move-result v5 + + int-to-float v5, v5 + + invoke-virtual {v0}, Landroid/view/View;->getTranslationX()F + + move-result v6 + + add-float/2addr v5, v6 + + add-float/2addr v3, v5 + + invoke-virtual {v0}, Landroid/view/View;->getTop()I + + move-result v5 + + int-to-float v5, v5 + + invoke-virtual {v0}, Landroid/view/View;->getTranslationY()F + + move-result v6 + + add-float/2addr v5, v6 + + add-float/2addr v4, v5 + + invoke-virtual {v0}, Landroid/view/View;->getParent()Landroid/view/ViewParent; + + move-result-object v0 + + instance-of v5, v0, Landroid/view/View; + + if-eqz v5, :cond_56 + + check-cast v0, Landroid/view/View; + + goto :goto_2f + + :cond_56 + const/4 v0, 0x0 + + goto :goto_2f + + :cond_58 + if-nez v0, :cond_5b + + return-void + + :cond_5b + invoke-virtual {p0}, Lradiant/AnimatedCoverView;->getLeft()I + + move-result v0 + + int-to-float v0, v0 + + sub-float/2addr v3, v0 + + invoke-virtual {p0, v3}, Lradiant/AnimatedCoverView;->setTranslationX(F)V + + invoke-virtual {p0}, Lradiant/AnimatedCoverView;->getTop()I + + move-result v0 + + int-to-float v0, v0 + + sub-float/2addr v4, v0 + + invoke-virtual {p0, v4}, Lradiant/AnimatedCoverView;->setTranslationY(F)V + + iget-boolean v0, p0, Lradiant/AnimatedCoverView;->outlined:Z + + if-nez v0, :cond_8a + + iput-boolean v2, p0, Lradiant/AnimatedCoverView;->outlined:Z + + :try_start_73 + invoke-virtual {p0}, Lradiant/AnimatedCoverView;->getResources()Landroid/content/res/Resources; + + move-result-object v0 + + sget v3, Lcom/aspiro/wamp/R$dimen;->image_header_corner_radius:I + + invoke-virtual {v0, v3}, Landroid/content/res/Resources;->getDimension(I)F + + move-result v1 + :try_end_7d + .catchall {:try_start_73 .. :try_end_7d} :catchall_7e + + goto :goto_7f + + :catchall_7e + move-exception v0 + + :goto_7f + new-instance v0, Lradiant/RoundOutline; + + invoke-direct {v0, v1}, Lradiant/RoundOutline;->(F)V + + invoke-virtual {p0, v0}, Lradiant/AnimatedCoverView;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V + + invoke-virtual {p0, v2}, Lradiant/AnimatedCoverView;->setClipToOutline(Z)V + + :cond_8a + iget-object v0, p0, Lradiant/AnimatedCoverView;->target:Landroid/widget/ImageView; + + invoke-virtual {v0}, Landroid/widget/ImageView;->getVisibility()I + + move-result v0 + + if-eqz v0, :cond_9c + + invoke-virtual {p0}, Lradiant/AnimatedCoverView;->getVisibility()I + + move-result v0 + + if-nez v0, :cond_9c + + const/4 v0, 0x4 + + invoke-virtual {p0, v0}, Lradiant/AnimatedCoverView;->setVisibility(I)V + + :cond_9c + return-void +.end method + + +# virtual methods +.method public onError(Landroid/media/MediaPlayer;II)Z + .registers 4 + + iget-object p2, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + if-ne p1, p2, :cond_f + + invoke-direct {p0}, Lradiant/AnimatedCoverView;->release()V + + const/4 p1, 0x0 + + invoke-virtual {p0, p1}, Lradiant/AnimatedCoverView;->setAlpha(F)V + + const/4 p1, 0x4 + + invoke-virtual {p0, p1}, Lradiant/AnimatedCoverView;->setVisibility(I)V + + :cond_f + const/4 p1, 0x1 + + return p1 +.end method + +.method public onInfo(Landroid/media/MediaPlayer;II)Z + .registers 4 + + iget-object p3, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + if-ne p1, p3, :cond_1a + + const/4 p1, 0x3 + + if-ne p2, p1, :cond_1a + + invoke-virtual {p0}, Lradiant/AnimatedCoverView;->animate()Landroid/view/ViewPropertyAnimator; + + move-result-object p1 + + const/high16 p2, 0x3f800000 # 1.0f + + invoke-virtual {p1, p2}, Landroid/view/ViewPropertyAnimator;->alpha(F)Landroid/view/ViewPropertyAnimator; + + move-result-object p1 + + const-wide/16 p2, 0x12c + + invoke-virtual {p1, p2, p3}, Landroid/view/ViewPropertyAnimator;->setDuration(J)Landroid/view/ViewPropertyAnimator; + + move-result-object p1 + + invoke-virtual {p1}, Landroid/view/ViewPropertyAnimator;->start()V + + :cond_1a + const/4 p1, 0x0 + + return p1 +.end method + +.method public onLayoutChange(Landroid/view/View;IIIIIIII)V + .registers 10 + + invoke-virtual {p0, p0}, Lradiant/AnimatedCoverView;->post(Ljava/lang/Runnable;)Z + + return-void +.end method + +.method public onPrepared(Landroid/media/MediaPlayer;)V + .registers 3 + + iget-object v0, p0, Lradiant/AnimatedCoverView;->player:Landroid/media/MediaPlayer; + + if-ne p1, v0, :cond_7 + + invoke-virtual {p1}, Landroid/media/MediaPlayer;->start()V + + :cond_7 + return-void +.end method + +.method public onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V + .registers 4 + + new-instance p2, Landroid/view/Surface; + + invoke-direct {p2, p1}, Landroid/view/Surface;->(Landroid/graphics/SurfaceTexture;)V + + iput-object p2, p0, Lradiant/AnimatedCoverView;->surface:Landroid/view/Surface; + + invoke-direct {p0}, Lradiant/AnimatedCoverView;->start()V + + return-void +.end method + +.method public onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)Z + .registers 3 + + invoke-direct {p0}, Lradiant/AnimatedCoverView;->release()V + + const/4 p1, 0x0 + + iput-object p1, p0, Lradiant/AnimatedCoverView;->url:Ljava/lang/String; + + iget-object v0, p0, Lradiant/AnimatedCoverView;->surface:Landroid/view/Surface; + + if-eqz v0, :cond_f + + iget-object v0, p0, Lradiant/AnimatedCoverView;->surface:Landroid/view/Surface; + + invoke-virtual {v0}, Landroid/view/Surface;->release()V + + :cond_f + iput-object p1, p0, Lradiant/AnimatedCoverView;->surface:Landroid/view/Surface; + + const/4 p1, 0x1 + + return p1 +.end method + +.method public onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V + .registers 4 + + return-void +.end method + +.method public onSurfaceTextureUpdated(Landroid/graphics/SurfaceTexture;)V + .registers 2 + + return-void +.end method + +.method public onViewAttachedToWindow(Landroid/view/View;)V + .registers 2 + + :try_start_0 + invoke-direct {p0}, Lradiant/AnimatedCoverView;->refresh()V + :try_end_3 + .catchall {:try_start_0 .. :try_end_3} :catchall_4 + + goto :goto_5 + + :catchall_4 + move-exception p1 + + :goto_5 + return-void +.end method + +.method public onViewDetachedFromWindow(Landroid/view/View;)V + .registers 2 + + invoke-direct {p0}, Lradiant/AnimatedCoverView;->release()V + + const/4 p1, 0x0 + + iput-object p1, p0, Lradiant/AnimatedCoverView;->url:Ljava/lang/String; + + return-void +.end method + +.method public run()V + .registers 2 + + :try_start_0 + invoke-direct {p0}, Lradiant/AnimatedCoverView;->sync()V + :try_end_3 + .catchall {:try_start_0 .. :try_end_3} :catchall_4 + + goto :goto_5 + + :catchall_4 + move-exception v0 + + :goto_5 + return-void +.end method diff --git a/patches/extension/radiant/AnimatedCovers.smali b/patches/extension/radiant/AnimatedCovers.smali new file mode 100644 index 0000000..8c5f861 --- /dev/null +++ b/patches/extension/radiant/AnimatedCovers.smali @@ -0,0 +1,1284 @@ +.class public final Lradiant/AnimatedCovers; +.super Ljava/lang/Object; + +# interfaces +.implements Ljava/lang/Runnable; +.implements Lyl0/p; + + +# static fields +.field private static final CACHE_MAX:I = 0xc8 + +.field private static final MODE_LOOKUP:I = 0x0 + +.field private static final MODE_PLACEHOLDER:I = 0x2 + +.field private static final MODE_PUBLISH:I = 0x1 + +.field private static final SEARCH:Ljava/lang/String; = "https://ama.trainswift.net/api/v1/artwork/search?" + +.field private static final TAG:Ljava/lang/String; = "RLAnimatedCovers" + +.field private static final TARGET_PX:I = 0x2bc + +.field static final albumState:Landroidx/compose/runtime/MutableState; + +.field private static final cache:Ljava/util/LinkedHashMap; + .annotation system Ldalvik/annotation/Signature; + value = { + "Ljava/util/LinkedHashMap<", + "Ljava/lang/String;", + "Ljava/lang/String;", + ">;" + } + .end annotation +.end field + +.field private static volatile currentKey:Ljava/lang/String; + +.field private static volatile queue:Ljava/lang/Object; + +.field static final urlState:Landroidx/compose/runtime/MutableState; + + +# instance fields +.field private album:Ljava/lang/String; + +.field private albumId:I + +.field private artist:Ljava/lang/String; + +.field private colorFilter:Landroidx/compose/ui/graphics/ColorFilter; + +.field private contentScale:Landroidx/compose/ui/layout/ContentScale; + +.field private defaults:I + +.field private description:Ljava/lang/String; + +.field private key:Ljava/lang/String; + +.field private final mode:I + +.field private onError:Lyl0/a; + +.field private placeholder:Ljava/lang/Object; + +.field private request:Lyl0/l; + +.field private title:Ljava/lang/String; + +.field private url:Ljava/lang/String; + + +# direct methods +.method static constructor ()V + .registers 4 + + const/4 v0, 0x0 + + const/4 v1, 0x2 + + invoke-static {v0, v0, v1, v0}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v2 + + sput-object v2, Lradiant/AnimatedCovers;->urlState:Landroidx/compose/runtime/MutableState; + + const/4 v2, -0x1 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + invoke-static {v2, v0, v1, v0}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v0 + + sput-object v0, Lradiant/AnimatedCovers;->albumState:Landroidx/compose/runtime/MutableState; + + new-instance v0, Ljava/util/LinkedHashMap; + + const/high16 v1, 0x3f400000 # 0.75f + + const/4 v2, 0x1 + + const/16 v3, 0x40 + + invoke-direct {v0, v3, v1, v2}, Ljava/util/LinkedHashMap;->(IFZ)V + + sput-object v0, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + return-void +.end method + +.method private constructor (I)V + .registers 2 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + iput p1, p0, Lradiant/AnimatedCovers;->mode:I + + return-void +.end method + +.method public static cover(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;III)V + .registers 13 + + sget-object v0, Lradiant/AnimatedCovers;->urlState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/String; + + sget-object v1, Lradiant/AnimatedCovers;->albumState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/lang/Integer; + + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I + + move-result v1 + + if-eqz v0, :cond_37 + + if-ne v1, p10, :cond_37 + + const p8, 0x52414143 + + invoke-interface {p7, p8}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V + + new-instance p8, Lradiant/AnimatedCovers; + + const/4 p10, 0x2 + + invoke-direct {p8, p10}, Lradiant/AnimatedCovers;->(I)V + + iput-object p0, p8, Lradiant/AnimatedCovers;->request:Lyl0/l; + + iput-object p1, p8, Lradiant/AnimatedCovers;->description:Ljava/lang/String; + + iput-object p3, p8, Lradiant/AnimatedCovers;->colorFilter:Landroidx/compose/ui/graphics/ColorFilter; + + iput-object p4, p8, Lradiant/AnimatedCovers;->contentScale:Landroidx/compose/ui/layout/ContentScale; + + iput-object p5, p8, Lradiant/AnimatedCovers;->placeholder:Ljava/lang/Object; + + iput-object p6, p8, Lradiant/AnimatedCovers;->onError:Lyl0/a; + + iput p9, p8, Lradiant/AnimatedCovers;->defaults:I + + const/4 p0, 0x0 + + invoke-static {v0, p2, p8, p7, p0}, Lcom/tidal/android/core/compose/components/l;->a(Ljava/lang/String;Landroidx/compose/ui/Modifier;Lyl0/p;Landroidx/compose/runtime/Composer;I)V + + goto :goto_40 + + :cond_37 + const p10, 0x52414144 + + invoke-interface {p7, p10}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V + + invoke-static/range {p0 .. p9}, Lsd0/f;->a(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;II)V + + :goto_40 + invoke-interface {p7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V + + return-void +.end method + +.method private static currentAlbum(Ljava/lang/String;)Ljava/lang/String; + .registers 4 + + const/4 v0, 0x0 + + :try_start_1 + sget-object v1, Lradiant/AnimatedCovers;->queue:Ljava/lang/Object; + + if-nez v1, :cond_6 + + return-object v0 + + :cond_6 + check-cast v1, Lzh/e; + + invoke-interface {v1}, Lzh/e;->getCurrentItem()Lcom/aspiro/wamp/playqueue/q0; + + move-result-object v1 + + if-nez v1, :cond_f + + return-object v0 + + :cond_f + invoke-interface {v1}, Lcom/aspiro/wamp/playqueue/q0;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; + + move-result-object v1 + + if-eqz v1, :cond_3f + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getTitle()Ljava/lang/String; + + move-result-object v2 + + invoke-virtual {p0, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result p0 + + if-eqz p0, :cond_3f + + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getAlbum()Lcom/aspiro/wamp/model/Album; + + move-result-object p0 + + if-nez p0, :cond_26 + + goto :goto_3f + + :cond_26 + invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getAlbum()Lcom/aspiro/wamp/model/Album; + + move-result-object p0 + + invoke-virtual {p0}, Lcom/aspiro/wamp/model/Album;->getTitle()Ljava/lang/String; + + move-result-object p0 + + if-eqz p0, :cond_3f + + invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z + + move-result v1 + + if-eqz v1, :cond_3b + + goto :goto_3f + + :cond_3b + invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String; + + move-result-object v0 + :try_end_3f + .catchall {:try_start_1 .. :try_end_3f} :catchall_40 + + :cond_3f + :goto_3f + return-object v0 + + :catchall_40 + move-exception p0 + + return-object v0 +.end method + +.method private static enc(Ljava/lang/String;)Ljava/lang/String; + .registers 3 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/Exception; + } + .end annotation + + const-string v0, "UTF-8" + + invoke-static {p0, v0}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + const-string v0, "+" + + const-string v1, "%20" + + invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String; + + move-result-object p0 + + return-object p0 +.end method + +.method private static get(Ljava/lang/String;)Ljava/lang/String; + .registers 6 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/Exception; + } + .end annotation + + new-instance v0, Ljava/net/URL; + + invoke-direct {v0, p0}, Ljava/net/URL;->(Ljava/lang/String;)V + + invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection; + + move-result-object p0 + + check-cast p0, Ljava/net/HttpURLConnection; + + const/16 v0, 0x2710 + + invoke-virtual {p0, v0}, Ljava/net/HttpURLConnection;->setConnectTimeout(I)V + + invoke-virtual {p0, v0}, Ljava/net/HttpURLConnection;->setReadTimeout(I)V + + :try_start_13 + invoke-virtual {p0}, Ljava/net/HttpURLConnection;->getResponseCode()I + + move-result v0 + :try_end_17 + .catchall {:try_start_13 .. :try_end_17} :catchall_4f + + const/16 v1, 0xc8 + + if-eq v0, v1, :cond_20 + + invoke-virtual {p0}, Ljava/net/HttpURLConnection;->disconnect()V + + const/4 p0, 0x0 + + return-object p0 + + :cond_20 + :try_start_20 + new-instance v0, Ljava/io/BufferedReader; + + new-instance v1, Ljava/io/InputStreamReader; + + invoke-virtual {p0}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream; + + move-result-object v2 + + const-string v3, "UTF-8" + + invoke-direct {v1, v2, v3}, Ljava/io/InputStreamReader;->(Ljava/io/InputStream;Ljava/lang/String;)V + + invoke-direct {v0, v1}, Ljava/io/BufferedReader;->(Ljava/io/Reader;)V + + new-instance v1, Ljava/lang/StringBuilder; + + invoke-direct {v1}, Ljava/lang/StringBuilder;->()V + + const/16 v2, 0x1000 + + new-array v2, v2, [C + + :goto_39 + invoke-virtual {v0, v2}, Ljava/io/BufferedReader;->read([C)I + + move-result v3 + + if-lez v3, :cond_44 + + const/4 v4, 0x0 + + invoke-virtual {v1, v2, v4, v3}, Ljava/lang/StringBuilder;->append([CII)Ljava/lang/StringBuilder; + + goto :goto_39 + + :cond_44 + invoke-virtual {v0}, Ljava/io/BufferedReader;->close()V + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v0 + :try_end_4b + .catchall {:try_start_20 .. :try_end_4b} :catchall_4f + + invoke-virtual {p0}, Ljava/net/HttpURLConnection;->disconnect()V + + return-object v0 + + :catchall_4f + move-exception v0 + + invoke-virtual {p0}, Ljava/net/HttpURLConnection;->disconnect()V + + throw v0 +.end method + +.method private static lookup(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + .registers 5 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/Exception; + } + .end annotation + + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + const-string v1, "https://ama.trainswift.net/api/v1/artwork/search?title=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-static {p0}, Lradiant/AnimatedCovers;->enc(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + const-string v0, "&artist=" + + invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-static {p1}, Lradiant/AnimatedCovers;->enc(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p1 + + invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p0 + + if-eqz p2, :cond_42 + + new-instance p1, Ljava/lang/StringBuilder; + + invoke-direct {p1}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + const-string p1, "&album=" + + invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-static {p2}, Lradiant/AnimatedCovers;->enc(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p1 + + invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p0 + + :cond_42 + invoke-static {p0}, Lradiant/AnimatedCovers;->get(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + const/4 p1, 0x0 + + if-nez p0, :cond_4a + + return-object p1 + + :cond_4a + new-instance p2, Lorg/json/JSONObject; + + invoke-direct {p2, p0}, Lorg/json/JSONObject;->(Ljava/lang/String;)V + + const-string p0, "url" + + const-string v0, "" + + invoke-virtual {p2, p0, v0}, Lorg/json/JSONObject;->optString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + invoke-virtual {p0}, Ljava/lang/String;->isEmpty()Z + + move-result p2 + + if-eqz p2, :cond_5e + + return-object p1 + + :cond_5e + invoke-static {p0}, Lradiant/AnimatedCovers;->resolveMp4(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + return-object p0 +.end method + +.method public static onMediaState(Ljava/lang/String;Ljava/lang/String;ILjava/lang/String;)V + .registers 7 + + if-eqz p0, :cond_71 + + if-eqz p1, :cond_71 + + invoke-virtual {p0}, Ljava/lang/String;->isEmpty()Z + + move-result p3 + + if-eqz p3, :cond_b + + goto :goto_71 + + :cond_b + new-instance p3, Ljava/lang/StringBuilder; + + invoke-direct {p3}, Ljava/lang/StringBuilder;->()V + + invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p3 + + const-string v0, "\u0000" + + invoke-virtual {p3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p3 + + invoke-virtual {p3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p3 + + invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p3 + + sget-object v0, Lradiant/AnimatedCovers;->currentKey:Ljava/lang/String; + + invoke-virtual {p3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-eqz v0, :cond_2b + + return-void + + :cond_2b + sput-object p3, Lradiant/AnimatedCovers;->currentKey:Ljava/lang/String; + + const/4 v0, 0x0 + + invoke-static {p3, v0, p2}, Lradiant/AnimatedCovers;->publish(Ljava/lang/String;Ljava/lang/String;I)V + + sget-object v1, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + monitor-enter v1 + + :try_start_34 + sget-object v2, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + invoke-virtual {v2, p3}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/lang/String; + + monitor-exit v1 + :try_end_3d + .catchall {:try_start_34 .. :try_end_3d} :catchall_6e + + if-eqz v2, :cond_4b + + invoke-virtual {v2}, Ljava/lang/String;->isEmpty()Z + + move-result p0 + + if-eqz p0, :cond_46 + + goto :goto_47 + + :cond_46 + move-object v0, v2 + + :goto_47 + invoke-static {p3, v0, p2}, Lradiant/AnimatedCovers;->publish(Ljava/lang/String;Ljava/lang/String;I)V + + return-void + + :cond_4b + new-instance v0, Lradiant/AnimatedCovers; + + const/4 v1, 0x0 + + invoke-direct {v0, v1}, Lradiant/AnimatedCovers;->(I)V + + iput-object p3, v0, Lradiant/AnimatedCovers;->key:Ljava/lang/String; + + iput-object p0, v0, Lradiant/AnimatedCovers;->title:Ljava/lang/String; + + iput-object p1, v0, Lradiant/AnimatedCovers;->artist:Ljava/lang/String; + + invoke-static {p0}, Lradiant/AnimatedCovers;->currentAlbum(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + iput-object p0, v0, Lradiant/AnimatedCovers;->album:Ljava/lang/String; + + iput p2, v0, Lradiant/AnimatedCovers;->albumId:I + + new-instance p0, Ljava/lang/Thread; + + const-string p1, "RL-AnimatedCovers" + + invoke-direct {p0, v0, p1}, Ljava/lang/Thread;->(Ljava/lang/Runnable;Ljava/lang/String;)V + + const/4 p1, 0x1 + + invoke-virtual {p0, p1}, Ljava/lang/Thread;->setDaemon(Z)V + + invoke-virtual {p0}, Ljava/lang/Thread;->start()V + + return-void + + :catchall_6e + move-exception p0 + + :try_start_6f + monitor-exit v1 + :try_end_70 + .catchall {:try_start_6f .. :try_end_70} :catchall_6e + + throw p0 + + :cond_71 + :goto_71 + return-void +.end method + +.method private static publish(Ljava/lang/String;Ljava/lang/String;I)V + .registers 5 + + new-instance v0, Lradiant/AnimatedCovers; + + const/4 v1, 0x1 + + invoke-direct {v0, v1}, Lradiant/AnimatedCovers;->(I)V + + iput-object p0, v0, Lradiant/AnimatedCovers;->key:Ljava/lang/String; + + iput-object p1, v0, Lradiant/AnimatedCovers;->url:Ljava/lang/String; + + iput p2, v0, Lradiant/AnimatedCovers;->albumId:I + + new-instance p0, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object p1 + + invoke-direct {p0, p1}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + invoke-virtual {p0, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z + + return-void +.end method + +.method private static resolveMp4(Ljava/lang/String;)Ljava/lang/String; + .registers 12 + .annotation system Ldalvik/annotation/Throws; + value = { + Ljava/lang/Exception; + } + .end annotation + + invoke-static {p0}, Lradiant/AnimatedCovers;->get(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v0 + + const/4 v1, 0x0 + + if-nez v0, :cond_8 + + return-object v1 + + :cond_8 + const-string v2, "\n" + + invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; + + move-result-object v0 + + const/4 v2, 0x0 + + const/4 v3, -0x1 + + move-object v5, v1 + + move v4, v2 + + move v6, v4 + + :goto_13 + array-length v7, v0 + + const/4 v8, 0x1 + + sub-int/2addr v7, v8 + + if-ge v4, v7, :cond_9b + + aget-object v7, v0, v4 + + invoke-virtual {v7}, Ljava/lang/String;->trim()Ljava/lang/String; + + move-result-object v7 + + const-string v9, "#EXT-X-STREAM-INF:" + + invoke-virtual {v7, v9}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z + + move-result v9 + + if-eqz v9, :cond_97 + + const-string v9, "avc1" + + invoke-virtual {v7, v9}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I + + move-result v9 + + if-gez v9, :cond_30 + + goto/16 :goto_97 + + :cond_30 + const-string v9, "VIDEO-RANGE=SDR" + + invoke-virtual {v7, v9}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I + + move-result v9 + + if-gez v9, :cond_41 + + const-string v9, "VIDEO-RANGE" + + invoke-virtual {v7, v9}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I + + move-result v9 + + if-ltz v9, :cond_41 + + goto :goto_97 + + :cond_41 + const-string v9, "RESOLUTION=" + + invoke-virtual {v7, v9}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I + + move-result v9 + + if-ltz v9, :cond_5b + + const/16 v10, 0x78 + + invoke-virtual {v7, v10, v9}, Ljava/lang/String;->indexOf(II)I + + move-result v10 + + add-int/lit8 v9, v9, 0xb + + :try_start_51 + invoke-virtual {v7, v9, v10}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object v7 + + invoke-static {v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I + + move-result v7 + :try_end_59 + .catchall {:try_start_51 .. :try_end_59} :catchall_5a + + goto :goto_5c + + :catchall_5a + move-exception v7 + + :cond_5b + move v7, v2 + + :goto_5c + add-int/lit8 v9, v4, 0x1 + + aget-object v9, v0, v9 + + invoke-virtual {v9}, Ljava/lang/String;->trim()Ljava/lang/String; + + move-result-object v9 + + invoke-virtual {v9}, Ljava/lang/String;->isEmpty()Z + + move-result v10 + + if-nez v10, :cond_97 + + const-string v10, "#" + + invoke-virtual {v9, v10}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z + + move-result v10 + + if-eqz v10, :cond_73 + + goto :goto_97 + + :cond_73 + const/16 v10, 0x2bc + + if-lt v7, v10, :cond_78 + + goto :goto_79 + + :cond_78 + move v8, v2 + + :goto_79 + if-eqz v5, :cond_87 + + if-eqz v8, :cond_81 + + if-eqz v6, :cond_87 + + if-lt v7, v3, :cond_87 + + :cond_81 + if-nez v8, :cond_97 + + if-nez v6, :cond_97 + + if-le v7, v3, :cond_97 + + :cond_87 + new-instance v3, Ljava/net/URL; + + new-instance v5, Ljava/net/URL; + + invoke-direct {v5, p0}, Ljava/net/URL;->(Ljava/lang/String;)V + + invoke-direct {v3, v5, v9}, Ljava/net/URL;->(Ljava/net/URL;Ljava/lang/String;)V + + invoke-virtual {v3}, Ljava/net/URL;->toString()Ljava/lang/String; + + move-result-object v5 + + move v3, v7 + + move v6, v8 + + :cond_97 + :goto_97 + add-int/lit8 v4, v4, 0x1 + + goto/16 :goto_13 + + :cond_9b + if-nez v5, :cond_9e + + return-object v1 + + :cond_9e + invoke-static {v5}, Lradiant/AnimatedCovers;->get(Ljava/lang/String;)Ljava/lang/String; + + move-result-object p0 + + if-nez p0, :cond_a5 + + return-object v1 + + :cond_a5 + const-string v0, "#EXT-X-MAP:URI=\"" + + invoke-virtual {p0, v0}, Ljava/lang/String;->indexOf(Ljava/lang/String;)I + + move-result v0 + + if-gez v0, :cond_ae + + return-object v1 + + :cond_ae + add-int/lit8 v0, v0, 0x10 + + const/16 v2, 0x22 + + invoke-virtual {p0, v2, v0}, Ljava/lang/String;->indexOf(II)I + + move-result v2 + + if-gez v2, :cond_b9 + + return-object v1 + + :cond_b9 + new-instance v1, Ljava/net/URL; + + new-instance v3, Ljava/net/URL; + + invoke-direct {v3, v5}, Ljava/net/URL;->(Ljava/lang/String;)V + + invoke-virtual {p0, v0, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; + + move-result-object p0 + + invoke-direct {v1, v3, p0}, Ljava/net/URL;->(Ljava/net/URL;Ljava/lang/String;)V + + invoke-virtual {v1}, Ljava/net/URL;->toString()Ljava/lang/String; + + move-result-object p0 + + return-object p0 +.end method + +.method public static setQueue(Ljava/lang/Object;)V + .registers 1 + + sput-object p0, Lradiant/AnimatedCovers;->queue:Ljava/lang/Object; + + return-void +.end method + +.method static urlFor(I)Ljava/lang/String; + .registers 3 + + sget-object v0, Lradiant/AnimatedCovers;->urlState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v0 + + check-cast v0, Ljava/lang/String; + + if-eqz v0, :cond_19 + + sget-object v1, Lradiant/AnimatedCovers;->albumState:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/lang/Integer; + + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I + + move-result v1 + + if-ne v1, p0, :cond_19 + + goto :goto_1a + + :cond_19 + const/4 v0, 0x0 + + :goto_1a + return-object v0 +.end method + + +# virtual methods +.method public invoke(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + .registers 14 + + sget-object p2, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + + const/high16 v0, 0x3f800000 # 1.0f + + invoke-static {p2, v0}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier; + + move-result-object v3 + + iget-object v1, p0, Lradiant/AnimatedCovers;->request:Lyl0/l; + + iget-object v2, p0, Lradiant/AnimatedCovers;->description:Ljava/lang/String; + + iget-object v4, p0, Lradiant/AnimatedCovers;->colorFilter:Landroidx/compose/ui/graphics/ColorFilter; + + iget-object v5, p0, Lradiant/AnimatedCovers;->contentScale:Landroidx/compose/ui/layout/ContentScale; + + iget-object v6, p0, Lradiant/AnimatedCovers;->placeholder:Ljava/lang/Object; + + iget-object v7, p0, Lradiant/AnimatedCovers;->onError:Lyl0/a; + + move-object v8, p1 + + check-cast v8, Landroidx/compose/runtime/Composer; + + const/4 v9, 0x0 + + iget v10, p0, Lradiant/AnimatedCovers;->defaults:I + + invoke-static/range {v1 .. v10}, Lsd0/f;->a(Lyl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Lyl0/a;Landroidx/compose/runtime/Composer;II)V + + sget-object p1, Lkotlin/u;->a:Lkotlin/u; + + return-object p1 +.end method + +.method public run()V + .registers 7 + + iget v0, p0, Lradiant/AnimatedCovers;->mode:I + + const/4 v1, 0x1 + + if-ne v0, v1, :cond_26 + + iget-object v0, p0, Lradiant/AnimatedCovers;->key:Ljava/lang/String; + + sget-object v1, Lradiant/AnimatedCovers;->currentKey:Ljava/lang/String; + + invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z + + move-result v0 + + if-nez v0, :cond_10 + + return-void + + :cond_10 + sget-object v0, Lradiant/AnimatedCovers;->urlState:Landroidx/compose/runtime/MutableState; + + iget-object v1, p0, Lradiant/AnimatedCovers;->url:Ljava/lang/String; + + invoke-interface {v0, v1}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + sget-object v0, Lradiant/AnimatedCovers;->albumState:Landroidx/compose/runtime/MutableState; + + iget v1, p0, Lradiant/AnimatedCovers;->albumId:I + + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v1 + + invoke-interface {v0, v1}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + invoke-static {}, Lradiant/AnimatedCoverView;->refreshAll()V + + return-void + + :cond_26 + const/4 v0, 0x0 + + :try_start_27 + iget-object v1, p0, Lradiant/AnimatedCovers;->album:Ljava/lang/String; + + if-nez v1, :cond_38 + + const-wide/16 v1, 0x320 + + invoke-static {v1, v2}, Ljava/lang/Thread;->sleep(J)V + + iget-object v1, p0, Lradiant/AnimatedCovers;->title:Ljava/lang/String; + + invoke-static {v1}, Lradiant/AnimatedCovers;->currentAlbum(Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + + iput-object v1, p0, Lradiant/AnimatedCovers;->album:Ljava/lang/String; + + :cond_38 + iget-object v1, p0, Lradiant/AnimatedCovers;->album:Ljava/lang/String; + + if-eqz v1, :cond_47 + + iget-object v1, p0, Lradiant/AnimatedCovers;->title:Ljava/lang/String; + + iget-object v2, p0, Lradiant/AnimatedCovers;->artist:Ljava/lang/String; + + iget-object v3, p0, Lradiant/AnimatedCovers;->album:Ljava/lang/String; + + invoke-static {v1, v2, v3}, Lradiant/AnimatedCovers;->lookup(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + :try_end_46 + .catchall {:try_start_27 .. :try_end_46} :catchall_58 + + goto :goto_48 + + :cond_47 + move-object v1, v0 + + :goto_48 + if-nez v1, :cond_7e + + :try_start_4a + iget-object v2, p0, Lradiant/AnimatedCovers;->title:Ljava/lang/String; + + iget-object v3, p0, Lradiant/AnimatedCovers;->artist:Ljava/lang/String; + + invoke-static {v2, v3, v0}, Lradiant/AnimatedCovers;->lookup(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; + + move-result-object v1 + :try_end_52 + .catchall {:try_start_4a .. :try_end_52} :catchall_53 + + goto :goto_7e + + :catchall_53 + move-exception v0 + + move-object v5, v1 + + move-object v1, v0 + + move-object v0, v5 + + goto :goto_59 + + :catchall_58 + move-exception v1 + + :goto_59 + const-string v2, "RLAnimatedCovers" + + new-instance v3, Ljava/lang/StringBuilder; + + invoke-direct {v3}, Ljava/lang/StringBuilder;->()V + + const-string v4, "lookup failed for " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + iget-object v4, p0, Lradiant/AnimatedCovers;->title:Ljava/lang/String; + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + const-string v4, ": " + + invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v3 + + invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; + + move-result-object v1 + + invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v1 + + invoke-static {v2, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I + + move-object v1, v0 + + :cond_7e + :goto_7e + sget-object v0, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + monitor-enter v0 + + :try_start_81 + sget-object v2, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + invoke-virtual {v2}, Ljava/util/LinkedHashMap;->size()I + + move-result v2 + + const/16 v3, 0xc8 + + if-lt v2, v3, :cond_a0 + + sget-object v2, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + invoke-virtual {v2}, Ljava/util/LinkedHashMap;->keySet()Ljava/util/Set; + + move-result-object v2 + + invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator; + + move-result-object v2 + + invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/lang/String; + + sget-object v3, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + invoke-virtual {v3, v2}, Ljava/util/LinkedHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; + + :cond_a0 + sget-object v2, Lradiant/AnimatedCovers;->cache:Ljava/util/LinkedHashMap; + + iget-object v3, p0, Lradiant/AnimatedCovers;->key:Ljava/lang/String; + + if-nez v1, :cond_a9 + + const-string v4, "" + + goto :goto_aa + + :cond_a9 + move-object v4, v1 + + :goto_aa + invoke-virtual {v2, v3, v4}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + monitor-exit v0 + :try_end_ae + .catchall {:try_start_81 .. :try_end_ae} :catchall_d5 + + const-string v0, "RLAnimatedCovers" + + new-instance v2, Ljava/lang/StringBuilder; + + invoke-direct {v2}, Ljava/lang/StringBuilder;->()V + + if-nez v1, :cond_ba + + const-string v3, "no animated cover for " + + goto :goto_bc + + :cond_ba + const-string v3, "animated cover for " + + :goto_bc + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + iget-object v3, p0, Lradiant/AnimatedCovers;->title:Ljava/lang/String; + + invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v2 + + invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object v2 + + invoke-static {v0, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + + iget-object v0, p0, Lradiant/AnimatedCovers;->key:Ljava/lang/String; + + iget v2, p0, Lradiant/AnimatedCovers;->albumId:I + + invoke-static {v0, v1, v2}, Lradiant/AnimatedCovers;->publish(Ljava/lang/String;Ljava/lang/String;I)V + + return-void + + :catchall_d5 + move-exception v1 + + :try_start_d6 + monitor-exit v0 + :try_end_d7 + .catchall {:try_start_d6 .. :try_end_d7} :catchall_d5 + + throw v1 +.end method diff --git a/patches/extension/radiant/HomeBackdrop.smali b/patches/extension/radiant/HomeBackdrop.smali index d8c93e3..793993f 100644 --- a/patches/extension/radiant/HomeBackdrop.smali +++ b/patches/extension/radiant/HomeBackdrop.smali @@ -362,7 +362,7 @@ const/4 v15, 0x0 # v15 = changed flags - invoke-static/range {v8 .. v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->a(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + invoke-static/range {v8 .. v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/e3;->a(ILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V :skip invoke-interface {v0}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V diff --git a/patches/extension/radiant/Kawarp.smali b/patches/extension/radiant/Kawarp.smali index 9066ea3..6a41ed9 100644 --- a/patches/extension/radiant/Kawarp.smali +++ b/patches/extension/radiant/Kawarp.smali @@ -2,10 +2,10 @@ .super Ljava/lang/Object; # interfaces -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; .implements Ljava/lang/Runnable; .implements Landroid/view/Choreographer$FrameCallback; -.implements Lb0/c; # MARKER: R8 Lb0/c; +.implements Lc0/c; # MARKER: R8 Lc0/c; # static fields @@ -31,7 +31,7 @@ .field private static volatile loadToken:I -.field private static volatile loader:Lcoil/f; # MARKER: R8 Lcoil/f; +.field private static volatile loader:Lcoil/e; # MARKER: R8 Lcoil/e; .field private static volatile requestedUuid:Ljava/lang/String; @@ -100,7 +100,7 @@ .method private static attach(Landroidx/compose/runtime/Composer;)V .registers 3 - sget-object v0, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; + sget-object v0, Lradiant/Kawarp;->loader:Lcoil/e; # MARKER: R8 Lcoil/e; if-eqz v0, :cond_5 @@ -129,7 +129,7 @@ move-result-object p0 - instance-of v0, p0, Lce0/b$a; # MARKER: R8 Lce0/b$a; + instance-of v0, p0, Lud0/b$a; # MARKER: R8 Lud0/b$a; if-nez v0, :cond_1d @@ -138,13 +138,13 @@ :cond_1d move-object v0, p0 - check-cast v0, Lce0/b$a; # MARKER: R8 Lce0/b$a; + check-cast v0, Lud0/b$a; # MARKER: R8 Lud0/b$a; - invoke-interface {v0}, Lce0/b$a;->a()Lce0/b; # MARKER: R8 Lce0/b$a; Lce0/b; a + invoke-interface {v0}, Lud0/b$a;->a()Lud0/b; # MARKER: R8 Lud0/b$a; Lud0/b; a move-result-object v0 - invoke-interface {v0}, Lce0/b;->a()Lxd0/e; # MARKER: R8 Lce0/b; Lxd0/e; a + invoke-interface {v0}, Lud0/b;->a()Lpd0/e; # MARKER: R8 Lud0/b; Lpd0/e; a move-result-object v0 @@ -159,9 +159,9 @@ check-cast v0, Lcom/tidal/android/image/coil/base/CoilImageLoader; - iget-object p0, v0, Lcom/tidal/android/image/coil/base/CoilImageLoader;->a:Lcoil/f; # MARKER: R8 Lcoil/f; a + iget-object p0, v0, Lcom/tidal/android/image/coil/base/CoilImageLoader;->a:Lcoil/e; # MARKER: R8 Lcoil/e; a - sput-object p0, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; + sput-object p0, Lradiant/Kawarp;->loader:Lcoil/e; # MARKER: R8 Lcoil/e; :try_end_35 .catchall {:try_start_5 .. :try_end_35} :catchall_36 @@ -174,7 +174,7 @@ return-void .end method -.method public static b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # MARKER: R8 Lam0/a; +.method public static b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # MARKER: R8 Lyl0/a; .registers 11 invoke-static {p3, p4, p5, p8, p9}, Lradiant/Kawarp;->render(ILjava/lang/String;ZLandroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)V @@ -471,7 +471,7 @@ sget-object p1, Lradiant/Kawarp;->DRAW:Lradiant/Kawarp; - invoke-static {p0, p1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawBehind(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, p1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawBehind(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 @@ -500,7 +500,7 @@ move-object v6, p4 - invoke-static/range {v0 .. v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->a(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/composables/p3; Lam0/a; a + invoke-static/range {v0 .. v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/e3;->a(ILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/composables/e3; Lyl0/a; a :goto_42 invoke-interface {v6}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V @@ -530,7 +530,7 @@ goto :goto_28 :cond_11 - sget-object v0, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; + sget-object v0, Lradiant/Kawarp;->loader:Lcoil/e; # MARKER: R8 Lcoil/e; if-nez v0, :cond_16 @@ -671,7 +671,7 @@ return-void .end method -.method public d(Landroid/graphics/drawable/Drawable;)V +.method public c(Landroid/graphics/drawable/Drawable;)V .registers 2 invoke-direct {p0}, Lradiant/Kawarp;->fail()V @@ -734,7 +734,7 @@ .registers 15 :try_start_0 - new-instance v0, Lxd0/g; # MARKER: R8 Lxd0/g; + new-instance v0, Lpd0/g; # MARKER: R8 Lpd0/g; sget-object v1, Lradiant/Kawarp;->appContext:Landroid/content/Context; @@ -762,11 +762,11 @@ const/4 v6, 0x0 - invoke-direct/range {v0 .. v8}, Lxd0/g;->(Landroid/content/Context;Lcom/tidal/android/image/core/b;Lcom/tidal/android/image/core/b$h$a;Lcom/tidal/android/image/core/b$h$a;ZLjava/util/List;Lxd0/f;Z)V # MARKER: R8 Lxd0/g; Lcom/tidal/android/image/core/b; Lcom/tidal/android/image/core/b$h$a; Lxd0/f; + invoke-direct/range {v0 .. v8}, Lpd0/g;->(Landroid/content/Context;Lcom/tidal/android/image/core/b;Lcom/tidal/android/image/core/b$h$a;Lcom/tidal/android/image/core/b$h$a;ZLjava/util/List;Lpd0/f;Z)V # MARKER: R8 Lpd0/g; Lcom/tidal/android/image/core/b; Lcom/tidal/android/image/core/b$h$a; Lpd0/f; const/4 v1, 0x0 - invoke-static {v0, v1}, Lcom/tidal/android/image/coil/c;->a(Lxd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h; # MARKER: R8 Lcom/tidal/android/image/coil/c; Lxd0/g; Lcoil/request/h; a + invoke-static {v0, v1}, Lcom/tidal/android/image/coil/c;->a(Lpd0/g;Landroidx/compose/ui/layout/ContentScale;)Lcoil/request/h; # MARKER: R8 Lcom/tidal/android/image/coil/c; Lpd0/g; Lcoil/request/h; a move-result-object v0 @@ -786,7 +786,7 @@ iget-object v6, v1, Lcoil/request/b;->d:Lkotlinx/coroutines/CoroutineDispatcher; # MARKER: R8 Lcoil/request/b; d - iget-object v7, v1, Lcoil/request/b;->e:Ld0/c$a; # MARKER: R8 Lcoil/request/b; Ld0/c$a; e + iget-object v7, v1, Lcoil/request/b;->e:Le0/c$a; # MARKER: R8 Lcoil/request/b; Le0/c$a; e iget-object v8, v1, Lcoil/request/b;->f:Lcoil/size/Precision; # MARKER: R8 Lcoil/request/b; f @@ -800,19 +800,19 @@ sget-object v13, Lcoil/request/CachePolicy;->DISABLED:Lcoil/request/CachePolicy; - invoke-direct/range {v2 .. v13}, Lcoil/request/b;->(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Ld0/c$a;Lcoil/size/Precision;Landroid/graphics/Bitmap$Config;ZLcoil/request/CachePolicy;Lcoil/request/CachePolicy;Lcoil/request/CachePolicy;)V # MARKER: R8 Lcoil/request/b; Ld0/c$a; + invoke-direct/range {v2 .. v13}, Lcoil/request/b;->(Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Lkotlinx/coroutines/CoroutineDispatcher;Le0/c$a;Lcoil/size/Precision;Landroid/graphics/Bitmap$Config;ZLcoil/request/CachePolicy;Lcoil/request/CachePolicy;Lcoil/request/CachePolicy;)V # MARKER: R8 Lcoil/request/b; Le0/c$a; iput-object v2, v0, Lcoil/request/h$a;->b:Lcoil/request/b; # MARKER: R8 Lcoil/request/h$a; Lcoil/request/b; b - iput-object p0, v0, Lcoil/request/h$a;->d:Lb0/c; # MARKER: R8 Lcoil/request/h$a; Lb0/c; d + iput-object p0, v0, Lcoil/request/h$a;->d:Lc0/c; # MARKER: R8 Lcoil/request/h$a; Lc0/c; d - sget-object v1, Lradiant/Kawarp;->loader:Lcoil/f; # MARKER: R8 Lcoil/f; + sget-object v1, Lradiant/Kawarp;->loader:Lcoil/e; # MARKER: R8 Lcoil/e; invoke-virtual {v0}, Lcoil/request/h$a;->a()Lcoil/request/h; # MARKER: R8 Lcoil/request/h$a; Lcoil/request/h; a move-result-object v0 - invoke-interface {v1, v0}, Lcoil/f;->b(Lcoil/request/h;)Lcoil/request/d; # MARKER: R8 Lcoil/f; Lcoil/request/h; Lcoil/request/d; b + invoke-interface {v1, v0}, Lcoil/e;->b(Lcoil/request/h;)Lcoil/request/d; # MARKER: R8 Lcoil/e; Lcoil/request/h; Lcoil/request/d; b :try_end_4d .catchall {:try_start_0 .. :try_end_4d} :catchall_4e diff --git a/patches/extension/radiant/MiniPlayerBackground.smali b/patches/extension/radiant/MiniPlayerBackground.smali index ecc933f..42e8ff9 100644 --- a/patches/extension/radiant/MiniPlayerBackground.smali +++ b/patches/extension/radiant/MiniPlayerBackground.smali @@ -48,7 +48,7 @@ const/4 v4, 0x1 - invoke-static {v0, v1, p2, v3, v4}, Landroidx/compose/runtime/SnapshotStateKt;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/h;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; # MARKER: R8 Lkotlin/coroutines/h; + invoke-static {v0, v1, p2, v3, v4}, Landroidx/compose/runtime/SnapshotStateKt;->collectAsState(Lkotlinx/coroutines/flow/StateFlow;Lkotlin/coroutines/g;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; # MARKER: R8 Lkotlin/coroutines/g; move-result-object v0 @@ -91,7 +91,7 @@ const/16 v7, 0x8 - invoke-static/range {v0 .. v7}, Landroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lam0/l;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; # MARKER: R8 Lam0/l; + invoke-static/range {v0 .. v7}, Landroidx/compose/animation/SingleValueAnimationKt;->animateColorAsState-euL9pac(JLandroidx/compose/animation/core/AnimationSpec;Ljava/lang/String;Lyl0/l;Landroidx/compose/runtime/Composer;II)Landroidx/compose/runtime/State; # MARKER: R8 Lyl0/l; move-result-object v0 diff --git a/patches/extension/radiant/MiniSeekerFloating.smali b/patches/extension/radiant/MiniSeekerFloating.smali index 44d1c98..c493e92 100644 --- a/patches/extension/radiant/MiniSeekerFloating.smali +++ b/patches/extension/radiant/MiniSeekerFloating.smali @@ -1,7 +1,7 @@ .class public final Lradiant/MiniSeekerFloating; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # static fields diff --git a/patches/extension/radiant/MiniSeekerLine.smali b/patches/extension/radiant/MiniSeekerLine.smali index f4b24b9..9cc12a4 100644 --- a/patches/extension/radiant/MiniSeekerLine.smali +++ b/patches/extension/radiant/MiniSeekerLine.smali @@ -5,7 +5,7 @@ # static fields .field public static progressState:Landroidx/compose/runtime/MutableFloatState; -.field public static volatile vm:Lgh/j; # MARKER: R8 Lgh/j; +.field public static volatile vm:Leh/j; # MARKER: R8 Leh/j; .field public static volatile sub:Lio/reactivex/disposables/Disposable; @@ -57,7 +57,7 @@ :start_block :try_start - sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cached vm MARKER: R8 Lgh/j; + sget-object v0, Lradiant/MiniSeekerLine;->vm:Leh/j; # cached vm MARKER: R8 Leh/j; if-nez v0, :got_vm # reuse if present @@ -69,28 +69,28 @@ move-result-object v0 # component - check-cast v0, Le5/z$n2; # narrow type MARKER: R8 Le5/z$n2; + check-cast v0, Le5/d0$t2; # narrow type MARKER: R8 Le5/d0$t2; - iget-object v0, v0, Le5/z$n2;->z0:Ldagger/internal/j; # playqueue provider MARKER: R8 Le5/z$n2; Ldagger/internal/j; z0 + iget-object v0, v0, Le5/d0$t2;->e1:Ldagger/internal/j; # playqueue provider MARKER: R8 Le5/d0$t2; Ldagger/internal/j; z0 - invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; # resolve MARKER: R8 Lql0/a; + invoke-interface {v0}, Lol0/a;->get()Ljava/lang/Object; # resolve MARKER: R8 Lol0/a; move-result-object v0 # playqueue - check-cast v0, Lcom/aspiro/wamp/playqueue/d1; # narrow type MARKER: R8 Lcom/aspiro/wamp/playqueue/d1; + check-cast v0, Lcom/aspiro/wamp/playqueue/v0; # narrow type MARKER: R8 Lcom/aspiro/wamp/playqueue/v0; - new-instance v1, Lgh/j; # build vm MARKER: R8 Lgh/j; + new-instance v1, Leh/j; # build vm MARKER: R8 Leh/j; - invoke-direct {v1, v0}, Lgh/j;->(Lcom/aspiro/wamp/playqueue/d1;)V # ctor MARKER: R8 Lgh/j; Lcom/aspiro/wamp/playqueue/d1; + invoke-direct {v1, v0}, Leh/j;->(Lcom/aspiro/wamp/playqueue/v0;)V # ctor MARKER: R8 Leh/j; Lcom/aspiro/wamp/playqueue/v0; - sput-object v1, Lradiant/MiniSeekerLine;->vm:Lgh/j; # cache MARKER: R8 Lgh/j; + sput-object v1, Lradiant/MiniSeekerLine;->vm:Leh/j; # cache MARKER: R8 Leh/j; :got_vm - sget-object v0, Lradiant/MiniSeekerLine;->vm:Lgh/j; # vm ref MARKER: R8 Lgh/j; + sget-object v0, Lradiant/MiniSeekerLine;->vm:Leh/j; # vm ref MARKER: R8 Leh/j; - invoke-virtual {v0}, Lgh/j;->a()V # activate emission MARKER: R8 Lgh/j; a + invoke-virtual {v0}, Leh/j;->a()V # activate emission MARKER: R8 Leh/j; a - iget-object v0, v0, Lgh/j;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject MARKER: R8 Lgh/j; d + iget-object v0, v0, Leh/j;->d:Lio/reactivex/subjects/BehaviorSubject; # position subject MARKER: R8 Leh/j; d invoke-static {}, Lio/reactivex/android/schedulers/AndroidSchedulers;->mainThread()Lio/reactivex/Scheduler; # main scheduler diff --git a/patches/extension/radiant/NoOp.smali b/patches/extension/radiant/NoOp.smali index 673edfa..25630f2 100644 --- a/patches/extension/radiant/NoOp.smali +++ b/patches/extension/radiant/NoOp.smali @@ -1,6 +1,6 @@ .class public final Lradiant/NoOp; .super Ljava/lang/Object; -.implements Lam0/a; # MARKER: R8 Lam0/a; +.implements Lyl0/a; # MARKER: R8 Lyl0/a; # static fields diff --git a/patches/extension/radiant/PlayerAction.smali b/patches/extension/radiant/PlayerAction.smali new file mode 100644 index 0000000..790ae05 --- /dev/null +++ b/patches/extension/radiant/PlayerAction.smali @@ -0,0 +1,43 @@ +.class public final Lradiant/PlayerAction; +.super Ljava/lang/Object; +.implements Lyl0/a; # MARKER: R8 Lyl0/a; + +# Click lambda that sends a player action + + +# instance fields +.field public final a:Lyl0/l; # MARKER: R8 Lyl0/l; + +.field public final b:Ljava/lang/Object; + + +# direct methods +.method public constructor (Ljava/lang/Object;Ljava/lang/Object;)V + .locals 0 + + invoke-direct {p0}, Ljava/lang/Object;->()V + + check-cast p1, Lyl0/l; # MARKER: R8 Lyl0/l; + + iput-object p1, p0, Lradiant/PlayerAction;->a:Lyl0/l; # MARKER: R8 Lyl0/l; + + iput-object p2, p0, Lradiant/PlayerAction;->b:Ljava/lang/Object; + + return-void +.end method + + +# virtual methods +.method public final invoke()Ljava/lang/Object; + .locals 2 + + iget-object v0, p0, Lradiant/PlayerAction;->a:Lyl0/l; # MARKER: R8 Lyl0/l; + + iget-object v1, p0, Lradiant/PlayerAction;->b:Ljava/lang/Object; + + invoke-interface {v0, v1}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; + + sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; + + return-object v0 +.end method diff --git a/patches/extension/radiant/QualityBadge.smali b/patches/extension/radiant/QualityBadge.smali index be49990..7df6ec2 100644 --- a/patches/extension/radiant/QualityBadge.smali +++ b/patches/extension/radiant/QualityBadge.smali @@ -85,15 +85,15 @@ return-object p0 .end method -.method public static style(ILq20/c2;)Lq20/c2; # MARKER: R8 Lq20/c2; +.method public static style(ILw10/c2;)Lw10/c2; # MARKER: R8 Lw10/c2; .registers 16 invoke-static {p0}, Lradiant/QualityBadge;->textArgb(I)I move-result v0 - new-instance v1, Lf20/a; # MARKER: R8 Lf20/a; - invoke-direct {v1, v0}, Lf20/a;->(I)V # MARKER: R8 Lf20/a; - new-instance v0, Lf20/d; # MARKER: R8 Lf20/d; + new-instance v1, Ll10/a; # MARKER: R8 Ll10/a; + invoke-direct {v1, v0}, Ll10/a;->(I)V # MARKER: R8 Ll10/a; + new-instance v0, Ll10/d; # MARKER: R8 Ll10/d; const/4 v2, 0x0 const/4 v3, 0x0 const/4 v4, 0x0 @@ -107,7 +107,7 @@ const/4 v12, 0x0 const/16 v13, 0xffe const/4 v14, 0x0 - invoke-direct/range {v0 .. v14}, Lf20/d;->(Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;Lf20/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V # MARKER: R8 Lf20/d; Lf20/a; + invoke-direct/range {v0 .. v14}, Ll10/d;->(Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;Ll10/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V # MARKER: R8 Ll10/d; Ll10/a; move-object v9, v0 move-object/from16 v0, p1 @@ -118,7 +118,7 @@ const/4 v5, 0x0 const/16 v6, 0x1d const/4 v7, 0x0 - invoke-static/range {v0 .. v7}, Lq20/c2;->g(Lq20/c2;Lq20/s4;Lf20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lq20/r4;ILjava/lang/Object;)Lq20/c2; # MARKER: R8 Lq20/c2; Lq20/s4; Lf20/d; Lq20/r4; g + invoke-static/range {v0 .. v7}, Lw10/c2;->g(Lw10/c2;Lw10/s4;Ll10/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Lw10/r4;ILjava/lang/Object;)Lw10/c2; # MARKER: R8 Lw10/c2; Lw10/s4; Ll10/d; Lw10/r4; g move-result-object p0 return-object p0 .end method \ No newline at end of file diff --git a/patches/extension/radiant/RLAPILyricsHook.smali b/patches/extension/radiant/RLAPILyricsHook.smali index 776d702..848b2d0 100644 --- a/patches/extension/radiant/RLAPILyricsHook.smali +++ b/patches/extension/radiant/RLAPILyricsHook.smali @@ -223,7 +223,7 @@ return-void :rl_new_track - iget-object v5, p0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P + iget-object v5, p0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->S:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P invoke-interface {v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; @@ -243,7 +243,7 @@ if-eq p0, v6, :store_keep_open - iget-object v7, v6, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P + iget-object v7, v6, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->S:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P invoke-interface {v7}, Lkotlinx/coroutines/flow/MutableStateFlow;->getValue()Ljava/lang/Object; diff --git a/patches/extension/radiant/RLAPILyricsWorker.smali b/patches/extension/radiant/RLAPILyricsWorker.smali index daa92ff..9571ff5 100644 --- a/patches/extension/radiant/RLAPILyricsWorker.smali +++ b/patches/extension/radiant/RLAPILyricsWorker.smali @@ -63,7 +63,7 @@ iget-object v1, p0, Lradiant/RLAPILyricsWorker;->vm:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel; - iget-object v2, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P + iget-object v2, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->S:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P sget-object v3, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; @@ -82,15 +82,15 @@ if-ne v0, v1, :not_current - iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->a:Lbi/e; # MARKER: R8 Lbi/e; a + iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->a:Lzh/e; # MARKER: R8 Lzh/e; a - invoke-interface {v1}, Lbi/e;->getCurrentItem()Lcom/aspiro/wamp/playqueue/u0; # MARKER: R8 Lbi/e; Lcom/aspiro/wamp/playqueue/u0; + invoke-interface {v1}, Lzh/e;->getCurrentItem()Lcom/aspiro/wamp/playqueue/q0; # MARKER: R8 Lzh/e; Lcom/aspiro/wamp/playqueue/q0; move-result-object v1 if-eqz v1, :not_current - invoke-interface {v1}, Lcom/aspiro/wamp/playqueue/u0;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; # MARKER: R8 Lcom/aspiro/wamp/playqueue/u0; + invoke-interface {v1}, Lcom/aspiro/wamp/playqueue/q0;->getMediaItem()Lcom/aspiro/wamp/model/MediaItem; # MARKER: R8 Lcom/aspiro/wamp/playqueue/q0; move-result-object v1 @@ -855,9 +855,9 @@ iget-object v4, p0, Lradiant/RLAPILyricsWorker;->vm:Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel; - iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->O:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 O + iget-object v5, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->R:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 O - invoke-static {v3}, Lvn0/a;->c(Ljava/lang/Iterable;)Lvn0/b; # MARKER: R8 Lvn0/a; Lvn0/b; c + invoke-static {v3}, Ltn0/a;->c(Ljava/lang/Iterable;)Ltn0/b; # MARKER: R8 Ltn0/a; Ltn0/b; c move-result-object v6 @@ -874,7 +874,7 @@ const/4 v10, 0x0 - invoke-direct {v8, v7, v6, v9, v10}, Lcom/tidal/android/feature/playerscreen/ui/g$c;->(Ljava/lang/String;Lvn0/b;IZ)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/g$c; Lvn0/b; + invoke-direct {v8, v7, v6, v9, v10}, Lcom/tidal/android/feature/playerscreen/ui/g$c;->(Ljava/lang/String;Ltn0/b;IZ)V # MARKER: R8 Lcom/tidal/android/feature/playerscreen/ui/g$c; Ltn0/b; const-string v6, "publishing g$c -> K=true (O=true if sticky) N=g$c" @@ -886,7 +886,7 @@ sput-boolean v6, Lradiant/RLAPILyricsHook;->isRlState:Z - iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->K:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 K + iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->N:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 K sget-object v7, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean; @@ -902,7 +902,7 @@ :open_lyrics - iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P + iget-object v6, v4, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->S:Lkotlinx/coroutines/flow/MutableStateFlow; # MARKER: R8 P invoke-interface {v6, v7}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V @@ -921,17 +921,23 @@ .method public run()V .locals 2 + invoke-static {p0}, Lradiant/SparkleIcons;->rlBegin(Ljava/lang/Object;)V # Spinner while fetching + :try_start invoke-direct {p0}, Lradiant/RLAPILyricsWorker;->runImpl()V :try_end .catchall {:try_start .. :try_end} :catch_all + invoke-static {p0}, Lradiant/SparkleIcons;->rlEnd(Ljava/lang/Object;)V + return-void :catch_all move-exception v0 + invoke-static {p0}, Lradiant/SparkleIcons;->rlEnd(Ljava/lang/Object;)V + invoke-virtual {v0}, Ljava/lang/Throwable;->toString()Ljava/lang/String; move-result-object v1 diff --git a/patches/extension/radiant/RoundOutline.smali b/patches/extension/radiant/RoundOutline.smali new file mode 100644 index 0000000..968f96e --- /dev/null +++ b/patches/extension/radiant/RoundOutline.smali @@ -0,0 +1,44 @@ +.class public final Lradiant/RoundOutline; +.super Landroid/view/ViewOutlineProvider; + + +# instance fields +.field private final radius:F + + +# direct methods +.method public constructor (F)V + .registers 2 + + invoke-direct {p0}, Landroid/view/ViewOutlineProvider;->()V + + iput p1, p0, Lradiant/RoundOutline;->radius:F + + return-void +.end method + + +# virtual methods +.method public getOutline(Landroid/view/View;Landroid/graphics/Outline;)V + .registers 9 + + invoke-virtual {p1}, Landroid/view/View;->getWidth()I + + move-result v3 + + invoke-virtual {p1}, Landroid/view/View;->getHeight()I + + move-result v4 + + iget v5, p0, Lradiant/RoundOutline;->radius:F + + const/4 v1, 0x0 + + const/4 v2, 0x0 + + move-object v0, p2 + + invoke-virtual/range {v0 .. v5}, Landroid/graphics/Outline;->setRoundRect(IIIIF)V + + return-void +.end method diff --git a/patches/extension/radiant/SeekerConsumer.smali b/patches/extension/radiant/SeekerConsumer.smali index d2caf5d..4544537 100644 --- a/patches/extension/radiant/SeekerConsumer.smali +++ b/patches/extension/radiant/SeekerConsumer.smali @@ -20,13 +20,13 @@ if-eqz p1, :ret # null guard - instance-of v0, p1, Lgh/b; # type guard MARKER: R8 Lgh/b; + instance-of v0, p1, Leh/b; # type guard MARKER: R8 Leh/b; if-eqz v0, :ret # skip if wrong type - check-cast p1, Lgh/b; # narrow type MARKER: R8 Lgh/b; + check-cast p1, Leh/b; # narrow type MARKER: R8 Leh/b; - iget v0, p1, Lgh/b;->b:F # raw progress MARKER: R8 Lgh/b; b + iget v0, p1, Leh/b;->b:F # raw progress MARKER: R8 Leh/b; b invoke-static {v0}, Ljava/lang/Float;->isNaN(F)Z # nan check diff --git a/patches/extension/radiant/SparkleButton.smali b/patches/extension/radiant/SparkleButton.smali index a6ba964..874f26c 100644 --- a/patches/extension/radiant/SparkleButton.smali +++ b/patches/extension/radiant/SparkleButton.smali @@ -4,7 +4,7 @@ # direct methods -.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V # MARKER: R8 Lam0/a; +.method public static final a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lyl0/a;)V # MARKER: R8 Lyl0/a; .locals 21 .annotation build Landroidx/compose/runtime/Composable; .end annotation @@ -98,7 +98,7 @@ const/4 v4, 0x6 - invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/z;->t(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet; # MARKER: R8 Lcom/squareup/ui/market/core/theme/z; Lcom/squareup/ui/market/core/theme/k$a; t + invoke-static {v2, v11, v4}, Lcom/squareup/ui/market/core/theme/d0;->t(Lcom/squareup/ui/market/core/theme/k$a;Landroidx/compose/runtime/Composer;I)Lcom/squareup/ui/market/core/theme/MarketStylesheet; # MARKER: R8 Lcom/squareup/ui/market/core/theme/d0; Lcom/squareup/ui/market/core/theme/k$a; t move-result-object v15 @@ -131,7 +131,7 @@ const/16 v18, 0x0 - invoke-static/range {v15 .. v20}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->P(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lq20/u1; # MARKER: R8 Lq20/u1; P + invoke-static/range {v15 .. v20}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->P(Lcom/squareup/ui/market/core/theme/MarketStylesheet;Lcom/squareup/ui/market/core/components/properties/IconButton$Size;Lcom/squareup/ui/market/core/components/properties/IconButton$Rank;Lcom/squareup/ui/market/core/components/properties/IconButton$Variant;ILjava/lang/Object;)Lw10/u1; # MARKER: R8 Lw10/u1; P move-result-object v4 @@ -140,7 +140,7 @@ :cond_5 move-object v9, v4 - check-cast v9, Lq20/u1; # MARKER: R8 Lq20/u1; + check-cast v9, Lw10/u1; # MARKER: R8 Lw10/u1; sget v2, Lcom/tidal/android/feature/playerscreen/ui/R$string;->lyrics:I @@ -160,19 +160,32 @@ and-int/lit8 v12, v4, 0xe - const/16 v13, 0xf8 + const/16 v13, 0xe8 # Pass enabled ourselves const/4 v4, 0x0 + sget v5, Lradiant/SparkleIcons;->currentMode:I # Sparkle mode from PlayerScreen + + iput v5, v10, Lradiant/SparkleContent;->m:I + + if-nez v5, :rl_disabled # Grey out while loading or no lyrics + + const/4 v5, 0x1 # enabled + + goto :rl_enabled_set + + :rl_disabled const/4 v5, 0x0 + :rl_enabled_set + const/4 v6, 0x0 const/4 v7, 0x0 const/4 v8, 0x0 - invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->b(Lam0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lam0/a;Ljava/lang/String;Lq20/u1;Lam0/p;Landroidx/compose/runtime/Composer;II)V # MARKER: R8 Lam0/a; Lcom/squareup/ui/market/components/n; Lq20/u1; Lam0/p; b + invoke-static/range {v1 .. v13}, Lcom/squareup/ui/market/components/MarketIconButtonKt;->c(Lyl0/a;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/interaction/MutableInteractionSource;ZLcom/squareup/ui/market/components/n;Lyl0/a;Ljava/lang/String;Lw10/u1;Lyl0/p;Landroidx/compose/runtime/Composer;II)V # MARKER: R8 Lyl0/a; Lcom/squareup/ui/market/components/n; Lw10/u1; Lyl0/p; b invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z diff --git a/patches/extension/radiant/SparkleContent.smali b/patches/extension/radiant/SparkleContent.smali index e8c84b7..f470089 100644 --- a/patches/extension/radiant/SparkleContent.smali +++ b/patches/extension/radiant/SparkleContent.smali @@ -3,7 +3,11 @@ .source "SourceFile" # interfaces -.implements Lam0/p; # MARKER: R8 Lam0/p; +.implements Lyl0/p; # MARKER: R8 Lyl0/p; + + +# instance fields +.field public m:I # Sparkle mode # virtual methods @@ -35,7 +39,7 @@ invoke-static {v0, p2, v1, v2}, Landroidx/compose/runtime/ComposerKt;->traceEventStart(IIILjava/lang/String;)V :cond_0 - const p2, 0x7f080522 + sget p2, Lcom/aspiro/wamp/R$drawable;->ic_sparkle:I # By name, ids change every build const/4 v0, 0x0 @@ -52,6 +56,12 @@ invoke-static {}, Landroidx/compose/runtime/ComposerKt;->traceEventEnd()V :cond_1 + iget v0, p0, Lradiant/SparkleContent;->m:I + + invoke-static {p2, v0, p1}, Lradiant/SparkleIcons;->forMode(Landroidx/compose/ui/graphics/painter/Painter;ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/painter/Painter; + + move-result-object p2 + invoke-interface {p1}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V return-object p2 diff --git a/patches/extension/radiant/SparkleIcons.smali b/patches/extension/radiant/SparkleIcons.smali new file mode 100644 index 0000000..9c4da88 --- /dev/null +++ b/patches/extension/radiant/SparkleIcons.smali @@ -0,0 +1,1107 @@ +.class public final Lradiant/SparkleIcons; +.super Landroidx/compose/ui/graphics/painter/Painter; + +# interfaces +.implements Landroid/view/Choreographer$FrameCallback; +.implements Ljava/lang/Runnable; + + +# static fields +.field private static final ARC_SWEEP:F = 300.80283f + +.field private static final LOADING_TIMEOUT_MS:J = 0xea60L + +.field static final MODE_LOADING:I = 0x1 + +.field static final MODE_NONE:I = 0x2 + +.field static final MODE_SPARKLE:I = 0x0 + +.field private static final NONE_GRACE_MS:J = 0x1388L + +.field private static final NOTE_SCALE:F = 0.75f + +.field private static final POSTER:Lradiant/SparkleIcons; + +.field private static final RING_R:F = 0.355f + +.field private static final RING_STROKE:F = 0.089999996f + +.field private static final SPIN_MS:J = 0x384L + +.field private static final TAG:Ljava/lang/String; = "RLSparkle" + +.field private static final TIMEOUT:Lradiant/SparkleIcons; + +.field public static currentMode:I + +.field private static frameScheduled:Z + +.field private static lastBranch:I + +.field private static lastMedia:Ljava/lang/Object; + +.field private static lastSpinDrawMs:J + +.field private static latestRunning:Z + +.field private static latestWorker:Ljava/lang/Object; + +.field private static loadingSinceMs:J + +.field private static final lock:Ljava/lang/Object; + +.field private static volatile newFetch:Z + +.field private static noLyrics:Lradiant/SparkleIcons; + +.field private static noneSinceMs:J + +.field private static postedAtMs:J + +.field static final rlLoading:Landroidx/compose/runtime/MutableState; + +.field private static spinner:Lradiant/SparkleIcons; + +.field static final tick:Landroidx/compose/runtime/MutableState; + +.field private static timeoutPosted:Z + +.field static final timeoutTick:Landroidx/compose/runtime/MutableState; + + +# instance fields +.field private final clear:Landroid/graphics/Paint; + +.field private final inner:Landroidx/compose/ui/graphics/painter/Painter; + +.field private final mode:I + +.field private final oval:Landroid/graphics/RectF; + +.field private final paint:Landroid/graphics/Paint; + +.field private final sizeRef:Landroidx/compose/ui/graphics/painter/Painter; + + +# direct methods +.method static constructor ()V + .registers 6 + + const/4 v0, 0x0 + + sput v0, Lradiant/SparkleIcons;->currentMode:I + + sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean; + + const/4 v2, 0x0 + + const/4 v3, 0x2 + + invoke-static {v1, v2, v3, v2}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v1 + + sput-object v1, Lradiant/SparkleIcons;->rlLoading:Landroidx/compose/runtime/MutableState; + + const-wide/16 v4, 0x0 + + invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object v1 + + invoke-static {v1, v2, v3, v2}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v1 + + sput-object v1, Lradiant/SparkleIcons;->tick:Landroidx/compose/runtime/MutableState; + + new-instance v1, Lradiant/SparkleIcons; + + invoke-direct {v1, v0, v2, v2}, Lradiant/SparkleIcons;->(ILandroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/graphics/painter/Painter;)V + + sput-object v1, Lradiant/SparkleIcons;->POSTER:Lradiant/SparkleIcons; + + new-instance v1, Ljava/lang/Object; + + invoke-direct {v1}, Ljava/lang/Object;->()V + + sput-object v1, Lradiant/SparkleIcons;->lock:Ljava/lang/Object; + + invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v0 + + invoke-static {v0, v2, v3, v2}, Landroidx/compose/runtime/SnapshotStateKt;->mutableStateOf$default(Ljava/lang/Object;Landroidx/compose/runtime/SnapshotMutationPolicy;ILjava/lang/Object;)Landroidx/compose/runtime/MutableState; + + move-result-object v0 + + sput-object v0, Lradiant/SparkleIcons;->timeoutTick:Landroidx/compose/runtime/MutableState; + + const/4 v0, -0x1 + + sput v0, Lradiant/SparkleIcons;->lastBranch:I + + const-wide v3, 0x7fffffffffffffffL + + sput-wide v3, Lradiant/SparkleIcons;->postedAtMs:J + + new-instance v1, Lradiant/SparkleIcons; + + invoke-direct {v1, v0, v2, v2}, Lradiant/SparkleIcons;->(ILandroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/graphics/painter/Painter;)V + + sput-object v1, Lradiant/SparkleIcons;->TIMEOUT:Lradiant/SparkleIcons; + + return-void +.end method + +.method private constructor (ILandroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/graphics/painter/Painter;)V + .registers 6 + + invoke-direct {p0}, Landroidx/compose/ui/graphics/painter/Painter;->()V + + new-instance v0, Landroid/graphics/Paint; + + const/4 v1, 0x1 + + invoke-direct {v0, v1}, Landroid/graphics/Paint;->(I)V + + iput-object v0, p0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + new-instance v0, Landroid/graphics/Paint; + + invoke-direct {v0, v1}, Landroid/graphics/Paint;->(I)V + + iput-object v0, p0, Lradiant/SparkleIcons;->clear:Landroid/graphics/Paint; + + new-instance v0, Landroid/graphics/RectF; + + invoke-direct {v0}, Landroid/graphics/RectF;->()V + + iput-object v0, p0, Lradiant/SparkleIcons;->oval:Landroid/graphics/RectF; + + iput p1, p0, Lradiant/SparkleIcons;->mode:I + + iput-object p2, p0, Lradiant/SparkleIcons;->inner:Landroidx/compose/ui/graphics/painter/Painter; + + iput-object p3, p0, Lradiant/SparkleIcons;->sizeRef:Landroidx/compose/ui/graphics/painter/Painter; + + iget-object p1, p0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + const/4 p2, -0x1 + + invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setColor(I)V + + iget-object p1, p0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + sget-object p2, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; + + invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V + + iget-object p1, p0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + sget-object p2, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap; + + invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V + + iget-object p1, p0, Lradiant/SparkleIcons;->clear:Landroid/graphics/Paint; + + sget-object p2, Landroid/graphics/Paint$Style;->STROKE:Landroid/graphics/Paint$Style; + + invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V + + iget-object p1, p0, Lradiant/SparkleIcons;->clear:Landroid/graphics/Paint; + + sget-object p2, Landroid/graphics/Paint$Cap;->ROUND:Landroid/graphics/Paint$Cap; + + invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStrokeCap(Landroid/graphics/Paint$Cap;)V + + iget-object p1, p0, Lradiant/SparkleIcons;->clear:Landroid/graphics/Paint; + + new-instance p2, Landroid/graphics/PorterDuffXfermode; + + sget-object p3, Landroid/graphics/PorterDuff$Mode;->CLEAR:Landroid/graphics/PorterDuff$Mode; + + invoke-direct {p2, p3}, Landroid/graphics/PorterDuffXfermode;->(Landroid/graphics/PorterDuff$Mode;)V + + invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setXfermode(Landroid/graphics/Xfermode;)Landroid/graphics/Xfermode; + + return-void +.end method + +.method public static forMode(Landroidx/compose/ui/graphics/painter/Painter;ILandroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/painter/Painter; + .registers 6 + + const v0, 0x52415300 + + add-int/2addr v0, p1 + + invoke-interface {p2, v0}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V + + const/4 v0, 0x1 + + if-ne p1, v0, :cond_1d + + if-eqz p0, :cond_1d + + sget-object p1, Lradiant/SparkleIcons;->spinner:Lradiant/SparkleIcons; + + if-eqz p1, :cond_14 + + iget-object v1, p1, Lradiant/SparkleIcons;->inner:Landroidx/compose/ui/graphics/painter/Painter; + + if-eq v1, p0, :cond_1b + + :cond_14 + new-instance p1, Lradiant/SparkleIcons; + + invoke-direct {p1, v0, p0, p0}, Lradiant/SparkleIcons;->(ILandroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/graphics/painter/Painter;)V + + sput-object p1, Lradiant/SparkleIcons;->spinner:Lradiant/SparkleIcons; + + :cond_1b + move-object p0, p1 + + goto :goto_3d + + :cond_1d + const/4 v0, 0x2 + + if-ne p1, v0, :cond_3d + + if-eqz p0, :cond_3d + + sget p1, Lcom/aspiro/wamp/R$drawable;->ic_music_note:I + + const/4 v1, 0x0 + + invoke-static {p1, p2, v1}, Landroidx/compose/ui/res/PainterResources_androidKt;->painterResource(ILandroidx/compose/runtime/Composer;I)Landroidx/compose/ui/graphics/painter/Painter; + + move-result-object p1 + + sget-object v1, Lradiant/SparkleIcons;->noLyrics:Lradiant/SparkleIcons; + + if-eqz v1, :cond_35 + + iget-object v2, v1, Lradiant/SparkleIcons;->inner:Landroidx/compose/ui/graphics/painter/Painter; + + if-ne v2, p1, :cond_35 + + iget-object v2, v1, Lradiant/SparkleIcons;->sizeRef:Landroidx/compose/ui/graphics/painter/Painter; + + if-eq v2, p0, :cond_3c + + :cond_35 + new-instance v1, Lradiant/SparkleIcons; + + invoke-direct {v1, v0, p1, p0}, Lradiant/SparkleIcons;->(ILandroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/ui/graphics/painter/Painter;)V + + sput-object v1, Lradiant/SparkleIcons;->noLyrics:Lradiant/SparkleIcons; + + :cond_3c + move-object p0, v1 + + :cond_3d + :goto_3d + invoke-interface {p2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V + + return-object p0 +.end method + +.method public static modeFor(Ljava/lang/Object;ZLjava/lang/Object;)I + .registers 12 + + sget-object v0, Lradiant/SparkleIcons;->timeoutTick:Landroidx/compose/runtime/MutableState; + + invoke-interface {v0}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + const-wide/16 v2, 0x0 + + sget-object v4, Lradiant/SparkleIcons;->lastMedia:Ljava/lang/Object; + + if-nez p2, :cond_12 + + if-eqz v4, :cond_1f + + goto :goto_18 + + :cond_12 + invoke-virtual {p2, v4}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z + + move-result v4 + + if-nez v4, :cond_1f + + :goto_18 + sput-object p2, Lradiant/SparkleIcons;->lastMedia:Ljava/lang/Object; + + sput-wide v2, Lradiant/SparkleIcons;->loadingSinceMs:J + + const/4 p2, -0x1 + + sput p2, Lradiant/SparkleIcons;->lastBranch:I + + :cond_1f + sget-object p2, Lradiant/SparkleIcons;->rlLoading:Landroidx/compose/runtime/MutableState; + + invoke-interface {p2}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object p2 + + check-cast p2, Ljava/lang/Boolean; + + invoke-virtual {p2}, Ljava/lang/Boolean;->booleanValue()Z + + move-result p2 + + if-nez p1, :cond_76 + + instance-of v4, p0, Lcom/tidal/android/feature/playerscreen/ui/g$c; + + if-nez v4, :cond_76 + + instance-of v4, p0, Lcom/tidal/android/feature/playerscreen/ui/g$d; + + if-eqz v4, :cond_36 + + goto :goto_76 + + :cond_36 + const/4 v4, 0x1 + + const/4 v5, 0x2 + + if-nez p2, :cond_5c + + instance-of v6, p0, Lcom/tidal/android/feature/playerscreen/ui/g$b; + + if-eqz v6, :cond_3f + + goto :goto_5c + + :cond_3f + sget v6, Lradiant/SparkleIcons;->lastBranch:I + + if-eq v6, v5, :cond_45 + + sput-wide v0, Lradiant/SparkleIcons;->noneSinceMs:J + + :cond_45 + sget-wide v6, Lradiant/SparkleIcons;->noneSinceMs:J + + sub-long/2addr v0, v6 + + const-wide/16 v6, 0x1388 + + cmp-long v0, v0, v6 + + if-gez v0, :cond_55 + + sget-wide v0, Lradiant/SparkleIcons;->noneSinceMs:J + + add-long/2addr v0, v6 + + invoke-static {v0, v1}, Lradiant/SparkleIcons;->scheduleRecompose(J)V + + goto :goto_56 + + :cond_55 + move v4, v5 + + :goto_56 + sput-wide v2, Lradiant/SparkleIcons;->loadingSinceMs:J + + move v8, v5 + + move v5, v4 + + move v4, v8 + + goto :goto_7a + + :cond_5c + :goto_5c + sget-wide v6, Lradiant/SparkleIcons;->loadingSinceMs:J + + cmp-long v2, v6, v2 + + if-nez v2, :cond_64 + + sput-wide v0, Lradiant/SparkleIcons;->loadingSinceMs:J + + :cond_64 + sget-wide v2, Lradiant/SparkleIcons;->loadingSinceMs:J + + sub-long/2addr v0, v2 + + const-wide/32 v2, 0xea60 + + cmp-long v0, v0, v2 + + if-ltz v0, :cond_6f + + goto :goto_7a + + :cond_6f + sget-wide v0, Lradiant/SparkleIcons;->loadingSinceMs:J + + add-long/2addr v0, v2 + + invoke-static {v0, v1}, Lradiant/SparkleIcons;->scheduleRecompose(J)V + + goto :goto_79 + + :cond_76 + :goto_76 + sput-wide v2, Lradiant/SparkleIcons;->loadingSinceMs:J + + const/4 v4, 0x0 + + :goto_79 + move v5, v4 + + :goto_7a + sput v4, Lradiant/SparkleIcons;->lastBranch:I + + sget v0, Lradiant/SparkleIcons;->currentMode:I + + if-eq v5, v0, :cond_d5 + + new-instance v0, Ljava/lang/StringBuilder; + + invoke-direct {v0}, Ljava/lang/StringBuilder;->()V + + const-string v1, "mode " + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + sget v1, Lradiant/SparkleIcons;->currentMode:I + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, " -> " + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + invoke-virtual {v0, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; + + move-result-object v0 + + const-string v1, " (lyricsState=" + + invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object v0 + + if-nez p0, :cond_a6 + + const-string p0, "null" + + goto :goto_ae + + :cond_a6 + invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + + move-result-object p0 + + invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String; + + move-result-object p0 + + :goto_ae + invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + const-string v0, " hasLyrics=" + + invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; + + move-result-object p0 + + const-string p1, " rlLoading=" + + invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-virtual {p0, p2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; + + move-result-object p0 + + const-string p1, ")" + + invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; + + move-result-object p0 + + invoke-virtual {p0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; + + move-result-object p0 + + const-string p1, "RLSparkle" + + invoke-static {p1, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I + + :cond_d5 + sput v5, Lradiant/SparkleIcons;->currentMode:I + + return v5 +.end method + +.method public static rlBegin(Ljava/lang/Object;)V + .registers 2 + + sget-object v0, Lradiant/SparkleIcons;->lock:Ljava/lang/Object; + + monitor-enter v0 + + :try_start_3 + sput-object p0, Lradiant/SparkleIcons;->latestWorker:Ljava/lang/Object; + + const/4 p0, 0x1 + + sput-boolean p0, Lradiant/SparkleIcons;->latestRunning:Z + + monitor-exit v0 + :try_end_9 + .catchall {:try_start_3 .. :try_end_9} :catchall_1a + + sput-boolean p0, Lradiant/SparkleIcons;->newFetch:Z + + new-instance p0, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v0 + + invoke-direct {p0, v0}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + sget-object v0, Lradiant/SparkleIcons;->POSTER:Lradiant/SparkleIcons; + + invoke-virtual {p0, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z + + return-void + + :catchall_1a + move-exception p0 + + :try_start_1b + monitor-exit v0 + :try_end_1c + .catchall {:try_start_1b .. :try_end_1c} :catchall_1a + + throw p0 +.end method + +.method public static rlEnd(Ljava/lang/Object;)V + .registers 3 + + sget-object v0, Lradiant/SparkleIcons;->lock:Ljava/lang/Object; + + monitor-enter v0 + + :try_start_3 + sget-object v1, Lradiant/SparkleIcons;->latestWorker:Ljava/lang/Object; + + if-ne p0, v1, :cond_a + + const/4 p0, 0x0 + + sput-boolean p0, Lradiant/SparkleIcons;->latestRunning:Z + + :cond_a + monitor-exit v0 + :try_end_b + .catchall {:try_start_3 .. :try_end_b} :catchall_1a + + new-instance p0, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v0 + + invoke-direct {p0, v0}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + sget-object v0, Lradiant/SparkleIcons;->POSTER:Lradiant/SparkleIcons; + + invoke-virtual {p0, v0}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z + + return-void + + :catchall_1a + move-exception p0 + + :try_start_1b + monitor-exit v0 + :try_end_1c + .catchall {:try_start_1b .. :try_end_1c} :catchall_1a + + throw p0 +.end method + +.method private static scheduleRecompose(J)V + .registers 4 + + sget-boolean v0, Lradiant/SparkleIcons;->timeoutPosted:Z + + if-eqz v0, :cond_b + + sget-wide v0, Lradiant/SparkleIcons;->postedAtMs:J + + cmp-long v0, p0, v0 + + if-ltz v0, :cond_b + + return-void + + :cond_b + const/4 v0, 0x1 + + sput-boolean v0, Lradiant/SparkleIcons;->timeoutPosted:Z + + sput-wide p0, Lradiant/SparkleIcons;->postedAtMs:J + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v0 + + sub-long/2addr p0, v0 + + const-wide/16 v0, 0x0 + + invoke-static {v0, v1, p0, p1}, Ljava/lang/Math;->max(JJ)J + + move-result-wide p0 + + const-wide/16 v0, 0x32 + + add-long/2addr p0, v0 + + new-instance v0, Landroid/os/Handler; + + invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper; + + move-result-object v1 + + invoke-direct {v0, v1}, Landroid/os/Handler;->(Landroid/os/Looper;)V + + sget-object v1, Lradiant/SparkleIcons;->TIMEOUT:Lradiant/SparkleIcons; + + invoke-virtual {v0, v1, p0, p1}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z + + return-void +.end method + + +# virtual methods +.method public doFrame(J)V + .registers 7 + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide p1 + + sget-wide v0, Lradiant/SparkleIcons;->lastSpinDrawMs:J + + sub-long v0, p1, v0 + + const-wide/16 v2, 0x1f4 + + cmp-long v0, v0, v2 + + if-gez v0, :cond_21 + + sget-object v0, Lradiant/SparkleIcons;->tick:Landroidx/compose/runtime/MutableState; + + invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + + move-result-object p1 + + invoke-interface {v0, p1}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; + + move-result-object p1 + + sget-object p2, Lradiant/SparkleIcons;->POSTER:Lradiant/SparkleIcons; + + invoke-virtual {p1, p2}, Landroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V + + goto :goto_24 + + :cond_21 + const/4 p1, 0x0 + + sput-boolean p1, Lradiant/SparkleIcons;->frameScheduled:Z + + :goto_24 + return-void +.end method + +.method public getIntrinsicSize-NH-jbRc()J + .registers 3 + + iget-object v0, p0, Lradiant/SparkleIcons;->sizeRef:Landroidx/compose/ui/graphics/painter/Painter; + + invoke-virtual {v0}, Landroidx/compose/ui/graphics/painter/Painter;->getIntrinsicSize-NH-jbRc()J + + move-result-wide v0 + + return-wide v0 +.end method + +.method public onDraw(Landroidx/compose/ui/graphics/drawscope/DrawScope;)V + .registers 18 + + move-object/from16 v0, p0 + + invoke-interface/range {p1 .. p1}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getSize-NH-jbRc()J + + move-result-wide v3 + + invoke-static {v3, v4}, Landroidx/compose/ui/geometry/Size;->getWidth-impl(J)F + + move-result v8 + + invoke-static {v3, v4}, Landroidx/compose/ui/geometry/Size;->getHeight-impl(J)F + + move-result v9 + + const/4 v1, 0x0 + + cmpg-float v2, v8, v1 + + if-lez v2, :cond_ca + + cmpg-float v1, v9, v1 + + if-gtz v1, :cond_19 + + goto/16 :goto_ca + + :cond_19 + invoke-interface/range {p1 .. p1}, Landroidx/compose/ui/graphics/drawscope/DrawScope;->getDrawContext()Landroidx/compose/ui/graphics/drawscope/DrawContext; + + move-result-object v1 + + invoke-interface {v1}, Landroidx/compose/ui/graphics/drawscope/DrawContext;->getCanvas()Landroidx/compose/ui/graphics/Canvas; + + move-result-object v1 + + invoke-static {v1}, Landroidx/compose/ui/graphics/AndroidCanvas_androidKt;->getNativeCanvas(Landroidx/compose/ui/graphics/Canvas;)Landroid/graphics/Canvas; + + move-result-object v10 + + invoke-static {v8, v9}, Ljava/lang/Math;->min(FF)F + + move-result v11 + + iget v1, v0, Lradiant/SparkleIcons;->mode:I + + const/4 v2, 0x1 + + const/high16 v12, 0x40000000 # 2.0f + + if-ne v1, v2, :cond_7e + + sget-object v1, Lradiant/SparkleIcons;->tick:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J + + move-result-wide v3 + + sput-wide v3, Lradiant/SparkleIcons;->lastSpinDrawMs:J + + sget-boolean v1, Lradiant/SparkleIcons;->frameScheduled:Z + + if-nez v1, :cond_4a + + sput-boolean v2, Lradiant/SparkleIcons;->frameScheduled:Z + + invoke-static {}, Landroid/view/Choreographer;->getInstance()Landroid/view/Choreographer; + + move-result-object v1 + + sget-object v2, Lradiant/SparkleIcons;->POSTER:Lradiant/SparkleIcons; + + invoke-virtual {v1, v2}, Landroid/view/Choreographer;->postFrameCallback(Landroid/view/Choreographer$FrameCallback;)V + + :cond_4a + const v1, 0x3eb5c28f # 0.355f + + mul-float/2addr v1, v11 + + iget-object v2, v0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + const v5, 0x3db851eb # 0.089999996f + + mul-float/2addr v11, v5 + + invoke-virtual {v2, v11}, Landroid/graphics/Paint;->setStrokeWidth(F)V + + iget-object v2, v0, Lradiant/SparkleIcons;->oval:Landroid/graphics/RectF; + + div-float/2addr v8, v12 + + sub-float v5, v8, v1 + + div-float/2addr v9, v12 + + sub-float v6, v9, v1 + + add-float/2addr v8, v1 + + add-float/2addr v9, v1 + + invoke-virtual {v2, v5, v6, v8, v9}, Landroid/graphics/RectF;->set(FFFF)V + + const-wide/16 v1, 0x384 + + rem-long/2addr v3, v1 + + long-to-float v1, v3 + + const/high16 v2, 0x44610000 # 900.0f + + div-float/2addr v1, v2 + + const/high16 v2, 0x43b40000 # 360.0f + + mul-float/2addr v1, v2 + + iget-object v11, v0, Lradiant/SparkleIcons;->oval:Landroid/graphics/RectF; + + const/high16 v2, 0x42b40000 # 90.0f + + sub-float v12, v1, v2 + + const/4 v14, 0x0 + + iget-object v15, v0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + const v13, 0x439666c3 + + invoke-virtual/range {v10 .. v15}, Landroid/graphics/Canvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V + + return-void + + :cond_7e + const/4 v7, 0x0 + + move-object v5, v10 + + const/4 v10, 0x0 + + const/4 v6, 0x0 + + invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->saveLayer(FFFFLandroid/graphics/Paint;)I + + move-result v7 + + move-object v10, v5 + + invoke-virtual {v10}, Landroid/graphics/Canvas;->save()I + + div-float/2addr v8, v12 + + div-float/2addr v9, v12 + + const/high16 v1, 0x3f400000 # 0.75f + + invoke-virtual {v10, v1, v1, v8, v9}, Landroid/graphics/Canvas;->scale(FFFF)V + + iget-object v1, v0, Lradiant/SparkleIcons;->inner:Landroidx/compose/ui/graphics/painter/Painter; + + const/high16 v5, 0x3f800000 # 1.0f + + const/4 v6, 0x0 + + move-object/from16 v2, p1 + + invoke-virtual/range {v1 .. v6}, Landroidx/compose/ui/graphics/painter/Painter;->draw-x_KDEd0(Landroidx/compose/ui/graphics/drawscope/DrawScope;JFLandroidx/compose/ui/graphics/ColorFilter;)V + + invoke-virtual {v10}, Landroid/graphics/Canvas;->restore()V + + const v1, 0x3d75c28f # 0.06f + + mul-float/2addr v1, v11 + + const v2, 0x3e4ccccd # 0.2f + + mul-float/2addr v2, v11 + + const v3, 0x3f4ccccd # 0.8f + + mul-float v13, v11, v3 + + iget-object v3, v0, Lradiant/SparkleIcons;->clear:Landroid/graphics/Paint; + + const v4, 0x40266666 # 2.6f + + mul-float/2addr v4, v1 + + invoke-virtual {v3, v4}, Landroid/graphics/Paint;->setStrokeWidth(F)V + + iget-object v15, v0, Lradiant/SparkleIcons;->clear:Landroid/graphics/Paint; + + move v12, v2 + + move v14, v13 + + move v11, v2 + + invoke-virtual/range {v10 .. v15}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V + + iget-object v2, v0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + invoke-virtual {v2, v1}, Landroid/graphics/Paint;->setStrokeWidth(F)V + + iget-object v15, v0, Lradiant/SparkleIcons;->paint:Landroid/graphics/Paint; + + move v12, v11 + + invoke-virtual/range {v10 .. v15}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V + + invoke-virtual {v10, v7}, Landroid/graphics/Canvas;->restoreToCount(I)V + + :cond_ca + :goto_ca + return-void +.end method + +.method public run()V + .registers 5 + + iget v0, p0, Lradiant/SparkleIcons;->mode:I + + const/4 v1, -0x1 + + const/4 v2, 0x0 + + if-ne v0, v1, :cond_27 + + sput-boolean v2, Lradiant/SparkleIcons;->timeoutPosted:Z + + const-wide v0, 0x7fffffffffffffffL + + sput-wide v0, Lradiant/SparkleIcons;->postedAtMs:J + + sget-object v0, Lradiant/SparkleIcons;->timeoutTick:Landroidx/compose/runtime/MutableState; + + sget-object v1, Lradiant/SparkleIcons;->timeoutTick:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v1 + + check-cast v1, Ljava/lang/Integer; + + invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I + + move-result v1 + + add-int/lit8 v1, v1, 0x1 + + invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v1 + + invoke-interface {v0, v1}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + return-void + + :cond_27 + sget-object v0, Lradiant/SparkleIcons;->lock:Ljava/lang/Object; + + monitor-enter v0 + + :try_start_2a + sget-boolean v1, Lradiant/SparkleIcons;->latestRunning:Z + + monitor-exit v0 + :try_end_2d + .catchall {:try_start_2a .. :try_end_2d} :catchall_64 + + sget-boolean v0, Lradiant/SparkleIcons;->newFetch:Z + + if-eqz v0, :cond_4e + + sput-boolean v2, Lradiant/SparkleIcons;->newFetch:Z + + const-wide/16 v2, 0x0 + + sput-wide v2, Lradiant/SparkleIcons;->loadingSinceMs:J + + sget-object v0, Lradiant/SparkleIcons;->timeoutTick:Landroidx/compose/runtime/MutableState; + + sget-object v2, Lradiant/SparkleIcons;->timeoutTick:Landroidx/compose/runtime/MutableState; + + invoke-interface {v2}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v2 + + check-cast v2, Ljava/lang/Integer; + + invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I + + move-result v2 + + add-int/lit8 v2, v2, 0x1 + + invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; + + move-result-object v2 + + invoke-interface {v0, v2}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + :cond_4e + invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean; + + move-result-object v0 + + sget-object v1, Lradiant/SparkleIcons;->rlLoading:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1}, Landroidx/compose/runtime/MutableState;->getValue()Ljava/lang/Object; + + move-result-object v1 + + invoke-virtual {v0, v1}, Ljava/lang/Boolean;->equals(Ljava/lang/Object;)Z + + move-result v1 + + if-nez v1, :cond_63 + + sget-object v1, Lradiant/SparkleIcons;->rlLoading:Landroidx/compose/runtime/MutableState; + + invoke-interface {v1, v0}, Landroidx/compose/runtime/MutableState;->setValue(Ljava/lang/Object;)V + + :cond_63 + return-void + + :catchall_64 + move-exception v1 + + :try_start_65 + monitor-exit v0 + :try_end_66 + .catchall {:try_start_65 .. :try_end_66} :catchall_64 + + throw v1 +.end method diff --git a/patches/extension/radiant/SpvFactory.smali b/patches/extension/radiant/SpvFactory.smali index d58fc91..f257628 100644 --- a/patches/extension/radiant/SpvFactory.smali +++ b/patches/extension/radiant/SpvFactory.smali @@ -1,6 +1,6 @@ .class public final Lradiant/SpvFactory; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # static fields diff --git a/patches/extension/radiant/SylLayout.smali b/patches/extension/radiant/SylLayout.smali index 550cd29..ad8ad60 100644 --- a/patches/extension/radiant/SylLayout.smali +++ b/patches/extension/radiant/SylLayout.smali @@ -2,7 +2,7 @@ .super Ljava/lang/Object; # interfaces -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # Remembers where each line's glyphs landed @@ -31,7 +31,7 @@ # One reusable callback per line -.method public static cb(I)Lam0/l; # MARKER: R8 Lam0/l; +.method public static cb(I)Lyl0/l; # MARKER: R8 Lyl0/l; .locals 5 if-gez p0, :have_idx diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali index c90829b..c3322bc 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali index 908604e..90769c2 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$Gesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations .annotation system Ldalvik/annotation/EnclosingClass; @@ -14,7 +14,7 @@ # instance fields -.field public final a:Lam0/l; # MARKER: R8 Lam0/l; +.field public final a:Lyl0/l; # MARKER: R8 Lyl0/l; # Y at ACTION_DOWN .field public b:F @@ -43,12 +43,12 @@ # direct methods -.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lam0/l; +.method public constructor (Lyl0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lyl0/l; .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; @@ -90,9 +90,9 @@ iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {v0, v1, p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V # MARKER: R8 Lam0/l; + invoke-static {v0, v1, p1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lyl0/l;F)V # MARKER: R8 Lyl0/l; return-void .end method @@ -100,11 +100,11 @@ .method private openPlayer()V .locals 2 - iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$b; a - invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v0, v1}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; return-void .end method @@ -467,9 +467,9 @@ move-result v0 - iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {v1, v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z # MARKER: R8 Lam0/l; + invoke-static {v1, v0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->completeSimpleSwipe(Lyl0/l;F)Z # MARKER: R8 Lyl0/l; invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V @@ -489,9 +489,9 @@ iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->f:Landroidx/compose/material3/SheetState; - iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {v0, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; + invoke-static {v0, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lyl0/l;)V # MARKER: R8 Lyl0/l; goto :cancel_reset diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali index 003fb44..963024d 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures$RootGesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations @@ -15,18 +15,18 @@ # instance fields -.field public final a:Lam0/l; # MARKER: R8 Lam0/l; +.field public final a:Lyl0/l; # MARKER: R8 Lyl0/l; .field public final b:Landroidx/compose/material3/SheetState; # direct methods -.method public constructor (Lam0/l;Landroidx/compose/material3/SheetState;)V # MARKER: R8 Lam0/l; +.method public constructor (Lyl0/l;Landroidx/compose/material3/SheetState;)V # MARKER: R8 Lyl0/l; .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->b:Landroidx/compose/material3/SheetState; @@ -100,9 +100,9 @@ move-result v1 - iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {v2, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->completeSimpleSwipe(Lam0/l;F)Z # MARKER: R8 Lam0/l; + invoke-static {v2, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->completeSimpleSwipe(Lyl0/l;F)Z # MARKER: R8 Lyl0/l; invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V @@ -143,9 +143,9 @@ move-result v1 - iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {v0, v2, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V # MARKER: R8 Lam0/l; + invoke-static {v0, v2, v1}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->finishDrag(Landroidx/compose/material3/SheetState;Lyl0/l;F)V # MARKER: R8 Lyl0/l; invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V @@ -153,9 +153,9 @@ # ACTION_CANCEL :cancel - iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v2, p0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {v0, v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; + invoke-static {v0, v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->cancelDrag(Landroidx/compose/material3/SheetState;Lyl0/l;)V # MARKER: R8 Lyl0/l; invoke-static {}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->animateSwipeFeedbackReset()V diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali index 51ca860..b53031c 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerGestures.smali @@ -23,7 +23,7 @@ .field private static g:Landroidx/compose/material3/SheetState; # Material3 settle lambda -.field private static h:Lam0/l; # MARKER: R8 Lam0/l; +.field private static h:Lyl0/l; # MARKER: R8 Lyl0/l; # Latest MotionEvent eventTime for drag updates .field private static i:J @@ -51,7 +51,7 @@ .field private static r:Z # AppScaffold context -.field private static s:Lam0/l; # MARKER: R8 Lam0/l; +.field private static s:Lyl0/l; # MARKER: R8 Lyl0/l; .field private static t:Landroidx/compose/material3/SheetState; @@ -321,7 +321,7 @@ sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lam0/l; # MARKER: R8 Lam0/l; + sput-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lyl0/l; # MARKER: R8 Lyl0/l; sput v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->d:F @@ -437,7 +437,7 @@ return-void .end method -.method public static cancelDrag(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; +.method public static cancelDrag(Landroidx/compose/material3/SheetState;Lyl0/l;)V # MARKER: R8 Lyl0/l; .locals 1 invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z @@ -450,13 +450,13 @@ sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$a; a - invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {p1, p0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done return-void .end method -.method public static finishDrag(Landroidx/compose/material3/SheetState;Lam0/l;F)V # MARKER: R8 Lam0/l; +.method public static finishDrag(Landroidx/compose/material3/SheetState;Lyl0/l;F)V # MARKER: R8 Lyl0/l; .locals 6 invoke-static {p0}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->isDragging(Landroidx/compose/material3/SheetState;)Z @@ -469,7 +469,7 @@ if-ne v0, p0, :fallback_snap - sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lam0/l; # MARKER: R8 Lam0/l; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v0, :fallback_snap @@ -485,7 +485,7 @@ move-result-object p0 - invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v0, p0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; goto/16 :done @@ -589,7 +589,7 @@ sget-object p0, Lcom/tidal/android/feature/appscaffold/ui/b$a;->a:Lcom/tidal/android/feature/appscaffold/ui/b$a; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$a; a - invoke-interface {p1, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {p1, p0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done return-void @@ -748,10 +748,10 @@ return-void .end method -.method public static configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lam0/l; +.method public static configure(Lyl0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lyl0/l; .locals 0 - sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->s:Lam0/l; # MARKER: R8 Lam0/l; + sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->s:Lyl0/l; # MARKER: R8 Lyl0/l; sput-object p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->t:Landroidx/compose/material3/SheetState; @@ -798,7 +798,7 @@ sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerGestures$FeedbackLayer; - invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 @@ -848,14 +848,14 @@ return p0 .end method -.method public static modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; +.method public static modifier(Landroidx/compose/ui/Modifier;Lyl0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; .locals 1 new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture; - invoke-direct {v0, p1, p2, p3}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lam0/l; + invoke-direct {v0, p1, p2, p3}, Lradiant/gestures/miniplayer/MiniPlayerGestures$Gesture;->(Lyl0/l;Landroidx/compose/material3/SheetState;Z)V # MARKER: R8 Lyl0/l; - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 @@ -865,7 +865,7 @@ .method public static trackAreaModifier(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; .locals 3 - sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->s:Lam0/l; # MARKER: R8 Lam0/l; + sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->s:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v0, :done @@ -875,7 +875,7 @@ sget-boolean v2, Lradiant/gestures/miniplayer/MiniPlayerGestures;->u:Z - invoke-static {p0, v0, v1, v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0, v1, v2}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->modifier(Landroidx/compose/ui/Modifier;Lyl0/l;Landroidx/compose/material3/SheetState;Z)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 @@ -988,7 +988,7 @@ return-void .end method -.method public static completeSimpleSwipe(Lam0/l;F)Z # MARKER: R8 Lam0/l; +.method public static completeSimpleSwipe(Lyl0/l;F)Z # MARKER: R8 Lyl0/l; .locals 4 sget-boolean v0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->u:Z @@ -1035,7 +1035,7 @@ sget-object v0, Lcom/tidal/android/feature/appscaffold/ui/b$b;->a:Lcom/tidal/android/feature/appscaffold/ui/b$b; # MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/b$b; a - invoke-interface {p0, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {p0, v0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; const/4 v0, 0x1 @@ -1307,26 +1307,26 @@ return p0 .end method -.method public static rootModifier(Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; +.method public static rootModifier(Landroidx/compose/ui/Modifier;Lyl0/l;Landroidx/compose/material3/SheetState;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; .locals 1 new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture; - invoke-direct {v0, p1, p2}, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->(Lam0/l;Landroidx/compose/material3/SheetState;)V # MARKER: R8 Lam0/l; + invoke-direct {v0, p1, p2}, Lradiant/gestures/miniplayer/MiniPlayerGestures$RootGesture;->(Lyl0/l;Landroidx/compose/material3/SheetState;)V # MARKER: R8 Lyl0/l; - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 return-object p0 .end method -.method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # MARKER: R8 Lam0/l; +.method public static setSettleCallback(Landroidx/compose/material3/SheetState;Lyl0/l;)V # MARKER: R8 Lyl0/l; .locals 0 sput-object p0, Lradiant/gestures/miniplayer/MiniPlayerGestures;->g:Landroidx/compose/material3/SheetState; - sput-object p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lam0/l; # MARKER: R8 Lam0/l; + sput-object p1, Lradiant/gestures/miniplayer/MiniPlayerGestures;->h:Lyl0/l; # MARKER: R8 Lyl0/l; return-void .end method diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali index 2d6d8ef..9da980d 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations @@ -15,16 +15,16 @@ # instance fields -.field public final a:Lam0/l; # MARKER: R8 Lam0/l; +.field public final a:Lyl0/l; # MARKER: R8 Lyl0/l; # direct methods -.method public constructor (Lam0/l;)V # MARKER: R8 Lam0/l; +.method public constructor (Lyl0/l;)V # MARKER: R8 Lyl0/l; .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; return-void .end method @@ -32,11 +32,11 @@ .method private nextTrack()V .locals 2 - iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/r$a;->a:Lcom/tidal/android/feature/appscaffold/ui/r$a; # Tidal's built-in next track mini-player event MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$a; a - invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v0, v1}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; return-void .end method @@ -44,11 +44,11 @@ .method private previousTrack()V .locals 2 - iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v0, p0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->a:Lyl0/l; # MARKER: R8 Lyl0/l; sget-object v1, Lcom/tidal/android/feature/appscaffold/ui/r$c;->a:Lcom/tidal/android/feature/appscaffold/ui/r$c; # Our synthetic previous track event MARKER: R8 Lcom/tidal/android/feature/appscaffold/ui/r$c; a - invoke-interface {v0, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v0, v1}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; return-void .end method diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali index 2abd989..50eaa4f 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali index f01832e..760e930 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations diff --git a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali index 85bafbc..a9a3a60 100644 --- a/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali +++ b/patches/extension/radiant/gestures/miniplayer/MiniPlayerTrackGestures.smali @@ -419,7 +419,7 @@ sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$OffsetLayer; - invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0}, Landroidx/compose/ui/graphics/GraphicsLayerModifierKt;->graphicsLayer(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 @@ -431,7 +431,7 @@ sget-object v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw;->INSTANCE:Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$TextDraw; # text clip on right only - invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 @@ -590,14 +590,14 @@ return-void .end method -.method public static trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; +.method public static trackModifier(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; .locals 1 new-instance v0, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture; - invoke-direct {v0, p1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->(Lam0/l;)V # MARKER: R8 Lam0/l; + invoke-direct {v0, p1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures$Gesture;->(Lyl0/l;)V # MARKER: R8 Lyl0/l; - invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v0}, Landroidx/compose/ui/input/pointer/PointerInteropFilter_androidKt;->motionEventSpy(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 diff --git a/patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali b/patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali index 72f0fb6..79435fa 100644 --- a/patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/AlbumItemQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lu5/b$a$a; # MARKER: R8 Lu5/b$a$a; +.field private final callback:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; .field private context:Landroid/content/Context; @@ -17,22 +17,22 @@ # direct methods -.method public constructor (Lu5/b$a;)V # MARKER: R8 Lu5/b$a; +.method public constructor (Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;)V # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; .locals 2 invoke-direct {p0}, Ljava/lang/Object;->()V - iget-object v0, p1, Lu5/b$a;->a:Lu5/b$a$a; # MARKER: R8 Lu5/b$a; Lu5/b$a$a; a + iget-object v0, p1, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->a:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; a - iput-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->callback:Lu5/b$a$a; # MARKER: R8 Lu5/b$a$a; + iput-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->callback:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; - iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c + iget-object v0, p1, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->c:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; c - iget v1, v0, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r + iget v1, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->s:I # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; r iput v1, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->mediaItemId:I - iget-object v0, v0, Lu5/b$a$b;->s:Ljava/lang/String; # MARKER: R8 Lu5/b$a$b; s + iget-object v0, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->t:Ljava/lang/String; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; s iput-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->moduleId:Ljava/lang/String; @@ -44,7 +44,7 @@ .method public invoke(I)Ljava/lang/Object; .locals 10 - iget-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->callback:Lu5/b$a$a; # MARKER: R8 Lu5/b$a$a; + iget-object v0, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->callback:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; iget v1, p0, Lradiant/gestures/queue/AlbumItemQueueAction;->mediaItemId:I @@ -60,7 +60,7 @@ if-nez v3, :active_queue - invoke-interface {v0, v1, v2}, Lu5/b$a$a;->g(ILjava/lang/String;)V # MARKER: R8 Lu5/b$a$a; g + invoke-interface {v0, v1, v2}, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a;->g(ILjava/lang/String;)V # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; g goto :done @@ -69,11 +69,11 @@ if-eqz v3, :done - instance-of v4, v0, Lu5/g; # MARKER: R8 Lu5/g; + instance-of v4, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n; if-eqz v4, :done - check-cast v0, Lu5/g; # MARKER: R8 Lu5/g; + check-cast v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n; invoke-virtual {v0, v2}, Lk5/f;->l(Ljava/lang/String;)Lcom/aspiro/wamp/dynamicpages/data/model/Module; # MARKER: R8 Lk5/f; l @@ -124,7 +124,7 @@ check-cast v7, Lcom/aspiro/wamp/model/Track; - iget-object v8, v0, Lu5/g;->h:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lu5/g; h + iget-object v8, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n;->h:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n; h invoke-interface {v8, v7}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; @@ -162,7 +162,7 @@ if-eqz v6, :done - iget-object v8, v0, Lu5/g;->j:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lu5/g; j + iget-object v8, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n;->j:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/n; j invoke-static {v6, v8}, Lcom/aspiro/wamp/playqueue/source/model/b;->c(Lcom/aspiro/wamp/model/Album;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/AlbumSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; c diff --git a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali index a6c969f..3b65b66 100644 --- a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali +++ b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueue.smali @@ -39,17 +39,17 @@ if-lez v4, :done - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + invoke-virtual {p0, v1}, Lq50/c;->c(Ljava/lang/String;)Li50/j; # MARKER: R8 Lq50/c; Li50/j; c move-result-object v4 - instance-of v5, v4, Lc60/d; # MARKER: R8 Lc60/d; + instance-of v5, v4, Li50/d; # MARKER: R8 Li50/d; if-eqz v5, :done - check-cast v4, Lc60/d; # MARKER: R8 Lc60/d; + check-cast v4, Li50/d; # MARKER: R8 Li50/d; - iget-object v5, v4, Lc60/d;->b:Ljava/lang/String; # MARKER: R8 Lc60/d; b + iget-object v5, v4, Li50/d;->b:Ljava/lang/String; # MARKER: R8 Li50/d; b invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -57,7 +57,7 @@ if-eqz v1, :done - iget-object v1, v4, Lc60/d;->f:Ljava/util/ArrayList; # MARKER: R8 Lc60/d; f + iget-object v1, v4, Li50/d;->f:Ljava/util/ArrayList; # MARKER: R8 Li50/d; f if-eqz v1, :done @@ -76,21 +76,21 @@ move-result-object v5 - instance-of v6, v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + instance-of v6, v5, Li50/u$b; # MARKER: R8 Li50/u$b; if-eqz v6, :find_track - check-cast v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + check-cast v5, Li50/u$b; # MARKER: R8 Li50/u$b; - iget-object v5, v5, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + iget-object v5, v5, Li50/u$b;->a:Ln30/o; # MARKER: R8 Li50/u$b; Ln30/o; a - instance-of v6, v5, Lh40/p; # MARKER: R8 Lh40/p; + instance-of v6, v5, Ln30/p; # MARKER: R8 Ln30/p; if-eqz v6, :find_track - check-cast v5, Lh40/p; # MARKER: R8 Lh40/p; + check-cast v5, Ln30/p; # MARKER: R8 Ln30/p; - iget-wide v6, v5, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + iget-wide v6, v5, Ln30/p;->a:J # MARKER: R8 Ln30/p; a cmp-long v6, v6, v2 @@ -112,19 +112,19 @@ if-eqz v1, :done - invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + invoke-static {v5}, Lae0/i;->c(Ln30/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lae0/i; Ln30/p; a move-result-object v7 if-eqz v7, :done - iget-object v2, v4, Lc60/d;->a:Ljava/lang/String; # MARKER: R8 Lc60/d; a + iget-object v2, v4, Li50/d;->a:Ljava/lang/String; # MARKER: R8 Li50/d; a if-eqz v2, :done new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget v3, v4, Lc60/d;->e:I # MARKER: R8 Lc60/d; e + iget v3, v4, Li50/d;->e:I # MARKER: R8 Li50/d; e invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; @@ -138,9 +138,9 @@ move-result-object v2 - iget-object v3, v4, Lc60/d;->c:Ljava/lang/String; # MARKER: R8 Lc60/d; c + iget-object v3, v4, Li50/d;->c:Ljava/lang/String; # MARKER: R8 Li50/d; c - iget-object v10, v4, Lc60/d;->g:Ljava/lang/String; # MARKER: R8 Lc60/d; g + iget-object v10, v4, Li50/d;->g:Ljava/lang/String; # MARKER: R8 Li50/d; g invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; # MARKER: R8 a diff --git a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali index 292e7b6..a60e19a 100644 --- a/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/ArtistTrackCreditsQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -19,18 +19,18 @@ # direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V # MARKER: R8 Lam0/l; Lm40/e$e; +.method public constructor (Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e$e;)V # MARKER: R8 Lyl0/l; Ls30/e$e; .locals 2 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->pageId:Ljava/lang/String; iput-object p3, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; - iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + iget-wide v0, p4, Ls30/e$e;->a:J # MARKER: R8 Ls30/e$e; a iput-wide v0, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->trackId:J @@ -60,7 +60,7 @@ iget-object v4, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->moduleUuid:Ljava/lang/String; - invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;->(JLjava/lang/String;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; + invoke-direct {v0, v3, v4, v1, v2}, Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a;->(Ljava/lang/String;Ljava/lang/String;J)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/b$a; goto :emit @@ -82,9 +82,9 @@ invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V :emit - iget-object v7, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v7, p0, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v7, v0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali b/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali index 830f9ec..a506557 100644 --- a/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/CompactGridMediaQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -21,24 +21,24 @@ # direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V # MARKER: R8 Lam0/l; Lm40/e; +.method public constructor (Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e;)V # MARKER: R8 Lyl0/l; Ls30/e; .locals 3 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->pageId:Ljava/lang/String; iput-object p3, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->moduleUuid:Ljava/lang/String; - instance-of v0, p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + instance-of v0, p4, Ls30/e$a; # MARKER: R8 Ls30/e$a; if-eqz v0, :mix - check-cast p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + check-cast p4, Ls30/e$a; # MARKER: R8 Ls30/e$a; - iget-wide v0, p4, Lm40/e$a;->a:J # MARKER: R8 Lm40/e$a; a + iget-wide v0, p4, Ls30/e$a;->a:J # MARKER: R8 Ls30/e$a; a invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; @@ -49,39 +49,39 @@ goto :store :mix - instance-of v0, p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + instance-of v0, p4, Ls30/e$c; # MARKER: R8 Ls30/e$c; if-eqz v0, :playlist - check-cast p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + check-cast p4, Ls30/e$c; # MARKER: R8 Ls30/e$c; - iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$c; a + iget-object v0, p4, Ls30/e$c;->a:Ljava/lang/String; # MARKER: R8 Ls30/e$c; a const/4 v1, 0x2 goto :store :playlist - instance-of v0, p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + instance-of v0, p4, Ls30/e$d; # MARKER: R8 Ls30/e$d; if-eqz v0, :track - check-cast p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + check-cast p4, Ls30/e$d; # MARKER: R8 Ls30/e$d; - iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$d; a + iget-object v0, p4, Ls30/e$d;->a:Ljava/lang/String; # MARKER: R8 Ls30/e$d; a const/4 v1, 0x3 goto :store :track - instance-of v0, p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + instance-of v0, p4, Ls30/e$e; # MARKER: R8 Ls30/e$e; if-eqz v0, :unsupported - check-cast p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + check-cast p4, Ls30/e$e; # MARKER: R8 Ls30/e$e; - iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + iget-wide v0, p4, Ls30/e$e;->a:J # MARKER: R8 Ls30/e$e; a invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; @@ -104,49 +104,49 @@ return-void .end method -.method public static isEligible(Lm40/e;)Z # MARKER: R8 Lm40/e; +.method public static isEligible(Ls30/e;)Z # MARKER: R8 Ls30/e; .locals 1 - instance-of v0, p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + instance-of v0, p0, Ls30/e$a; # MARKER: R8 Ls30/e$a; if-eqz v0, :mix - check-cast p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + check-cast p0, Ls30/e$a; # MARKER: R8 Ls30/e$a; - iget-boolean p0, p0, Lm40/e$a;->e:Z # MARKER: R8 Lm40/e$a; e + iget-boolean p0, p0, Ls30/e$a;->e:Z # MARKER: R8 Ls30/e$a; e return p0 :mix - instance-of v0, p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + instance-of v0, p0, Ls30/e$c; # MARKER: R8 Ls30/e$c; if-eqz v0, :playlist - check-cast p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + check-cast p0, Ls30/e$c; # MARKER: R8 Ls30/e$c; - iget-boolean p0, p0, Lm40/e$c;->h:Z # MARKER: R8 Lm40/e$c; h + iget-boolean p0, p0, Ls30/e$c;->h:Z # MARKER: R8 Ls30/e$c; h return p0 :playlist - instance-of v0, p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + instance-of v0, p0, Ls30/e$d; # MARKER: R8 Ls30/e$d; if-eqz v0, :track - check-cast p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + check-cast p0, Ls30/e$d; # MARKER: R8 Ls30/e$d; - iget-boolean p0, p0, Lm40/e$d;->g:Z # MARKER: R8 Lm40/e$d; g + iget-boolean p0, p0, Ls30/e$d;->g:Z # MARKER: R8 Ls30/e$d; g return p0 :track - instance-of v0, p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + instance-of v0, p0, Ls30/e$e; # MARKER: R8 Ls30/e$e; if-eqz v0, :invalid - check-cast p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + check-cast p0, Ls30/e$e; # MARKER: R8 Ls30/e$e; - iget-boolean p0, p0, Lm40/e$e;->j:Z # MARKER: R8 Lm40/e$e; j + iget-boolean p0, p0, Ls30/e$e;->j:Z # MARKER: R8 Ls30/e$e; j return p0 @@ -161,7 +161,7 @@ .method public invoke(I)Ljava/lang/Object; .locals 8 - iget-object v7, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v7, p0, Lradiant/gestures/queue/CompactGridMediaQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v7, :done @@ -209,7 +209,7 @@ move-object v1, v0 :emit - invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v7, v1}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali b/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali index c39b17d..d307241 100644 --- a/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSearchQueue.smali @@ -56,9 +56,9 @@ move-result-object v1 - check-cast v1, Lmb0/e; # MARKER: R8 Lmb0/e; + check-cast v1, Leb0/e; # MARKER: R8 Leb0/e; - invoke-static {v1}, Lmb0/f;->a(Lmb0/e;)Ljava/lang/String; # MARKER: R8 Lmb0/f; Lmb0/e; a + invoke-static {v1}, Lcom/squareup/experiments/x;->c(Leb0/e;)Ljava/lang/String; # MARKER: R8 Lmb0/f; Leb0/e; a move-result-object v9 @@ -68,19 +68,19 @@ if-eqz v9, :find_row - instance-of v9, v1, Lmb0/a; # MARKER: R8 Lmb0/a; + instance-of v9, v1, Leb0/a; # MARKER: R8 Leb0/a; if-eqz v9, :find_row - check-cast v1, Lmb0/a; # MARKER: R8 Lmb0/a; + check-cast v1, Leb0/a; # MARKER: R8 Leb0/a; - iget-object v3, v1, Lmb0/a;->a:Lh40/n; # MARKER: R8 Lmb0/a; Lh40/n; a + iget-object v3, v1, Leb0/a;->a:Ln30/o; # MARKER: R8 Leb0/a; Ln30/o; a const/4 v9, 0x1 if-ne v4, v9, :check_album - instance-of v9, v3, Lh40/p; # MARKER: R8 Lh40/p; + instance-of v9, v3, Ln30/p; # MARKER: R8 Ln30/p; if-eqz v9, :find_row @@ -91,7 +91,7 @@ if-ne v4, v9, :check_playlist - instance-of v9, v3, Lh40/a; # MARKER: R8 Lh40/a; + instance-of v9, v3, Ln30/a; # MARKER: R8 Ln30/a; if-eqz v9, :find_row @@ -102,29 +102,29 @@ if-ne v4, v9, :check_mix - instance-of v9, v3, Lh40/j; # MARKER: R8 Lh40/j; + instance-of v9, v3, Ln30/k; # MARKER: R8 Ln30/k; if-eqz v9, :find_row goto :recover_dependencies :check_mix - instance-of v9, v3, Lh40/i; # MARKER: R8 Lh40/i; + instance-of v9, v3, Ln30/j; # MARKER: R8 Ln30/j; if-eqz v9, :find_row :recover_dependencies iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->d:Lcom/tidal/android/feature/search/ui/e; # MARKER: R8 Lcom/tidal/android/feature/search/ui/e; d - instance-of v0, v9, Lv9/e; # MARKER: R8 Lv9/e; + instance-of v0, v9, Lu9/d; # MARKER: R8 Lu9/d; if-eqz v0, :done - check-cast v9, Lv9/e; # MARKER: R8 Lv9/e; + check-cast v9, Lu9/d; # MARKER: R8 Lu9/d; - iget-object v5, v9, Lv9/e;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lv9/e; b + iget-object v5, v9, Lu9/d;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lu9/d; b - iget-object v9, v9, Lv9/e;->a:Lcom/aspiro/wamp/core/k; # MARKER: R8 Lv9/e; Lcom/aspiro/wamp/core/k; a + iget-object v9, v9, Lu9/d;->a:Lcom/aspiro/wamp/core/l; # MARKER: R8 Lu9/d; Lcom/aspiro/wamp/core/l; a const/4 v6, 0x0 @@ -138,13 +138,13 @@ :recover_menu - instance-of v0, v9, Lh9/p1; # MARKER: R8 Lh9/p1; + instance-of v0, v9, Lg9/u1; # MARKER: R8 Lg9/u1; if-eqz v0, :done - check-cast v9, Lh9/p1; # MARKER: R8 Lh9/p1; + check-cast v9, Lg9/u1; # MARKER: R8 Lg9/u1; - iget-object v9, v9, Lh9/p1;->b:Lx40/a; # MARKER: R8 Lh9/p1; Lx40/a; b + iget-object v9, v9, Lg9/u1;->b:Ld40/a; # MARKER: R8 Lg9/u1; Ld40/a; b instance-of v0, v9, Lh4/a; # MARKER: R8 Lh4/a; @@ -166,7 +166,7 @@ if-ne v4, v0, :album - check-cast v3, Lh40/p; # MARKER: R8 Lh40/p; + check-cast v3, Ln30/p; # MARKER: R8 Ln30/p; iget v0, p1, Lradiant/gestures/queue/ComposeSearchQueueEvent;->action:I @@ -181,7 +181,7 @@ if-eqz v0, :play_track :queue_track - invoke-static {v3}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + invoke-static {v3}, Lae0/i;->c(Ln30/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lae0/i; Ln30/p; a move-result-object v9 @@ -209,7 +209,7 @@ move-result-object v1 :track_navigation_ready - invoke-static {v2, v4, v1}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + invoke-static {v1, v2, v4}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Lcom/tidal/android/navigation/NavigationInfo;Ljava/lang/String;Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o move-result-object v4 @@ -257,9 +257,9 @@ :play_query_ready iget-object v9, p0, Lcom/tidal/android/feature/search/ui/SearchScreenViewModel;->f:Lcom/tidal/android/feature/search/ui/f; # MARKER: R8 Lcom/tidal/android/feature/search/ui/f; f - iget-wide v0, v3, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + iget-wide v0, v3, Ln30/p;->a:J # MARKER: R8 Ln30/p; a - invoke-interface {v9, v0, v1, v3, v5}, Lcom/tidal/android/feature/search/ui/f;->a(JLh40/p;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/feature/search/ui/f; Lh40/p; a + invoke-interface {v9, v0, v1, v3, v5}, Lcom/tidal/android/feature/search/ui/f;->a(JLn30/p;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/feature/search/ui/f; Ln30/p; a goto :done @@ -268,9 +268,9 @@ if-ne v4, v0, :playlist - check-cast v3, Lh40/a; # MARKER: R8 Lh40/a; + check-cast v3, Ln30/a; # MARKER: R8 Ln30/a; - invoke-static {v3}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lie0/a; Lh40/a; a + invoke-static {v3}, Lae0/a;->b(Ln30/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lae0/a; Ln30/a; a move-result-object v9 @@ -303,9 +303,9 @@ if-ne v4, v0, :mix - check-cast v3, Lh40/j; # MARKER: R8 Lh40/j; + check-cast v3, Ln30/k; # MARKER: R8 Ln30/k; - invoke-static {v3}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + invoke-static {v3}, Lae0/h;->a(Ln30/k;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lae0/h; Ln30/k; a move-result-object v9 @@ -334,9 +334,9 @@ goto :done :mix - check-cast v3, Lh40/i; # MARKER: R8 Lh40/i; + check-cast v3, Ln30/j; # MARKER: R8 Ln30/j; - invoke-static {v3}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lie0/g; Lh40/i; b + invoke-static {v3}, Lae0/g;->b(Ln30/j;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lae0/g; Ln30/j; b move-result-object v9 diff --git a/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali b/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali index 28ab7f7..5487df5 100644 --- a/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSearchQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -17,20 +17,20 @@ # direct methods -.method public constructor (Lam0/l;Lpb0/b;)V # MARKER: R8 Lam0/l; Lpb0/b; +.method public constructor (Lyl0/l;Lhb0/b;)V # MARKER: R8 Lyl0/l; Lhb0/b; .locals 1 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-static {p2}, Lradiant/gestures/queue/ComposeSearchQueueAction;->key(Lpb0/b;)Ljava/lang/String; # MARKER: R8 Lpb0/b; + invoke-static {p2}, Lradiant/gestures/queue/ComposeSearchQueueAction;->key(Lhb0/b;)Ljava/lang/String; # MARKER: R8 Lhb0/b; move-result-object v0 iput-object v0, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->id:Ljava/lang/String; - invoke-static {p2}, Lradiant/gestures/queue/ComposeSearchQueueAction;->type(Lpb0/b;)I # MARKER: R8 Lpb0/b; + invoke-static {p2}, Lradiant/gestures/queue/ComposeSearchQueueAction;->type(Lhb0/b;)I # MARKER: R8 Lhb0/b; move-result p1 @@ -39,16 +39,16 @@ return-void .end method -.method public static key(Lpb0/b;)Ljava/lang/String; # MARKER: R8 Lpb0/b; +.method public static key(Lhb0/b;)Ljava/lang/String; # MARKER: R8 Lhb0/b; .locals 2 - instance-of v0, p0, Lpb0/b$i; # MARKER: R8 Lpb0/b$i; + instance-of v0, p0, Lhb0/b$i; # MARKER: R8 Lhb0/b$i; if-eqz v0, :album - check-cast p0, Lpb0/b$i; # MARKER: R8 Lpb0/b$i; + check-cast p0, Lhb0/b$i; # MARKER: R8 Lhb0/b$i; - iget-wide v0, p0, Lpb0/b$i;->a:J # MARKER: R8 Lpb0/b$i; a + iget-wide v0, p0, Lhb0/b$i;->a:J # MARKER: R8 Lhb0/b$i; a invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; @@ -57,13 +57,13 @@ return-object p0 :album - instance-of v0, p0, Lpb0/b$a; # MARKER: R8 Lpb0/b$a; + instance-of v0, p0, Lhb0/b$a; # MARKER: R8 Lhb0/b$a; if-eqz v0, :playlist - check-cast p0, Lpb0/b$a; # MARKER: R8 Lpb0/b$a; + check-cast p0, Lhb0/b$a; # MARKER: R8 Lhb0/b$a; - iget-wide v0, p0, Lpb0/b$a;->a:J # MARKER: R8 Lpb0/b$a; a + iget-wide v0, p0, Lhb0/b$a;->a:J # MARKER: R8 Lhb0/b$a; a invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; @@ -72,24 +72,24 @@ return-object p0 :playlist - instance-of v0, p0, Lpb0/b$f; # MARKER: R8 Lpb0/b$f; + instance-of v0, p0, Lhb0/b$f; # MARKER: R8 Lhb0/b$f; if-eqz v0, :mix - check-cast p0, Lpb0/b$f; # MARKER: R8 Lpb0/b$f; + check-cast p0, Lhb0/b$f; # MARKER: R8 Lhb0/b$f; - iget-object p0, p0, Lpb0/b$f;->a:Ljava/lang/String; # MARKER: R8 Lpb0/b$f; a + iget-object p0, p0, Lhb0/b$f;->a:Ljava/lang/String; # MARKER: R8 Lhb0/b$f; a return-object p0 :mix - instance-of v0, p0, Lpb0/b$e; # MARKER: R8 Lpb0/b$e; + instance-of v0, p0, Lhb0/b$e; # MARKER: R8 Lhb0/b$e; if-eqz v0, :invalid - check-cast p0, Lpb0/b$e; # MARKER: R8 Lpb0/b$e; + check-cast p0, Lhb0/b$e; # MARKER: R8 Lhb0/b$e; - iget-object p0, p0, Lpb0/b$e;->a:Ljava/lang/String; # MARKER: R8 Lpb0/b$e; a + iget-object p0, p0, Lhb0/b$e;->a:Ljava/lang/String; # MARKER: R8 Lhb0/b$e; a return-object p0 @@ -134,10 +134,10 @@ return-object v0 .end method -.method private static type(Lpb0/b;)I # MARKER: R8 Lpb0/b; +.method private static type(Lhb0/b;)I # MARKER: R8 Lhb0/b; .locals 1 - instance-of v0, p0, Lpb0/b$i; # MARKER: R8 Lpb0/b$i; + instance-of v0, p0, Lhb0/b$i; # MARKER: R8 Lhb0/b$i; if-eqz v0, :album @@ -146,7 +146,7 @@ return p0 :album - instance-of v0, p0, Lpb0/b$a; # MARKER: R8 Lpb0/b$a; + instance-of v0, p0, Lhb0/b$a; # MARKER: R8 Lhb0/b$a; if-eqz v0, :playlist @@ -155,7 +155,7 @@ return p0 :playlist - instance-of v0, p0, Lpb0/b$f; # MARKER: R8 Lpb0/b$f; + instance-of v0, p0, Lhb0/b$f; # MARKER: R8 Lhb0/b$f; if-eqz v0, :mix @@ -164,7 +164,7 @@ return p0 :mix - instance-of p0, p0, Lpb0/b$e; # MARKER: R8 Lpb0/b$e; + instance-of p0, p0, Lhb0/b$e; # MARKER: R8 Lhb0/b$e; if-eqz p0, :invalid @@ -183,7 +183,7 @@ .method public invoke(I)Ljava/lang/Object; .locals 4 - iget-object v0, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v0, p0, Lradiant/gestures/queue/ComposeSearchQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v0, :done @@ -203,7 +203,7 @@ invoke-direct {p0, v1, v2, v3, p1}, Lradiant/gestures/queue/ComposeSearchQueueEvent;->(Landroid/content/Context;Ljava/lang/String;II)V - invoke-interface {v0, p0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v0, p0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali index f452d52..7ec48ee 100644 --- a/patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeAction.smali @@ -3,7 +3,7 @@ .source "ComposeSwipeAction.smali" # interfaces -.implements Lam0/a; # MARKER: R8 Lam0/a; +.implements Lyl0/a; # MARKER: R8 Lyl0/a; # virtual methods diff --git a/patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali index 4b208d6..4c548f3 100644 --- a/patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Draw.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/queue/ComposeSwipeState$Draw; .super Ljava/lang/Object; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; # annotations diff --git a/patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali index c7cfd6e..5ad8886 100644 --- a/patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState$Gesture.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/queue/ComposeSwipeState$Gesture; .super Landroidx/compose/ui/input/pointer/PointerInputFilter; -.implements Lam0/l; # MARKER: R8 Lam0/l; +.implements Lyl0/l; # MARKER: R8 Lyl0/l; .implements Landroidx/compose/ui/input/pointer/PointerInputModifier; diff --git a/patches/extension/radiant/gestures/queue/ComposeSwipeState.smali b/patches/extension/radiant/gestures/queue/ComposeSwipeState.smali index b771996..7adceea 100644 --- a/patches/extension/radiant/gestures/queue/ComposeSwipeState.smali +++ b/patches/extension/radiant/gestures/queue/ComposeSwipeState.smali @@ -126,7 +126,7 @@ iget-object v1, v2, Lradiant/gestures/queue/ComposeSwipeState;->draw:Lradiant/gestures/queue/ComposeSwipeState$Draw; - invoke-static {p0, v1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lam0/l; + invoke-static {p0, v1}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # MARKER: R8 Lyl0/l; move-result-object p0 diff --git a/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali b/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali index e275a6f..110dd43 100644 --- a/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali +++ b/patches/extension/radiant/gestures/queue/ComposeTapGuard.smali @@ -1,6 +1,6 @@ .class public final Lradiant/gestures/queue/ComposeTapGuard; .super Ljava/lang/Object; -.implements Lam0/a; # MARKER: R8 Lam0/a; +.implements Lyl0/a; # MARKER: R8 Lyl0/a; # static fields @@ -8,16 +8,16 @@ # instance fields -.field private final delegate:Lam0/a; # MARKER: R8 Lam0/a; +.field private final delegate:Lyl0/a; # MARKER: R8 Lyl0/a; # direct methods -.method public constructor (Lam0/a;)V # MARKER: R8 Lam0/a; +.method public constructor (Lyl0/a;)V # MARKER: R8 Lyl0/a; .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/ComposeTapGuard;->delegate:Lam0/a; # MARKER: R8 Lam0/a; + iput-object p1, p0, Lradiant/gestures/queue/ComposeTapGuard;->delegate:Lyl0/a; # MARKER: R8 Lyl0/a; return-void .end method @@ -61,12 +61,12 @@ return-void .end method -.method public static wrap(Lam0/a;)Lam0/a; # MARKER: R8 Lam0/a; +.method public static wrap(Lyl0/a;)Lyl0/a; # MARKER: R8 Lyl0/a; .locals 1 new-instance v0, Lradiant/gestures/queue/ComposeTapGuard; - invoke-direct {v0, p0}, Lradiant/gestures/queue/ComposeTapGuard;->(Lam0/a;)V # MARKER: R8 Lam0/a; + invoke-direct {v0, p0}, Lradiant/gestures/queue/ComposeTapGuard;->(Lyl0/a;)V # MARKER: R8 Lyl0/a; return-object v0 .end method @@ -87,9 +87,9 @@ return-object v0 :dispatch - iget-object v0, p0, Lradiant/gestures/queue/ComposeTapGuard;->delegate:Lam0/a; # MARKER: R8 Lam0/a; + iget-object v0, p0, Lradiant/gestures/queue/ComposeTapGuard;->delegate:Lyl0/a; # MARKER: R8 Lyl0/a; - invoke-interface {v0}, Lam0/a;->invoke()Ljava/lang/Object; # MARKER: R8 Lam0/a; + invoke-interface {v0}, Lyl0/a;->invoke()Ljava/lang/Object; # MARKER: R8 Lyl0/a; move-result-object v0 diff --git a/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali b/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali index f6f540d..515fafe 100644 --- a/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali +++ b/patches/extension/radiant/gestures/queue/DynamicMediaQueue.smali @@ -43,17 +43,17 @@ if-gt v3, v4, :done - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + invoke-virtual {p0, v1}, Lq50/c;->c(Ljava/lang/String;)Li50/j; # MARKER: R8 Lq50/c; Li50/j; c move-result-object v4 - instance-of v5, v4, Lc60/f; # MARKER: R8 Lc60/f; + instance-of v5, v4, Li50/f; # MARKER: R8 Li50/f; if-eqz v5, :done - check-cast v4, Lc60/f; # MARKER: R8 Lc60/f; + check-cast v4, Li50/f; # MARKER: R8 Li50/f; - iget-object v5, v4, Lc60/f;->b:Ljava/lang/String; # MARKER: R8 Lc60/f; b + iget-object v5, v4, Li50/f;->b:Ljava/lang/String; # MARKER: R8 Li50/f; b invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -61,7 +61,7 @@ if-eqz v1, :done - iget-object v1, v4, Lc60/f;->g:Ljava/util/ArrayList; # MARKER: R8 Lc60/f; g + iget-object v1, v4, Li50/f;->g:Ljava/util/ArrayList; # MARKER: R8 Li50/f; g invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; @@ -78,13 +78,13 @@ move-result-object v6 - instance-of v5, v6, Lc60/r; # MARKER: R8 Lc60/r; + instance-of v5, v6, Li50/u; # MARKER: R8 Li50/u; if-eqz v5, :find_media - check-cast v6, Lc60/r; # MARKER: R8 Lc60/r; + check-cast v6, Li50/u; # MARKER: R8 Li50/u; - invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; # MARKER: R8 Lc60/s; Lc60/r; a + invoke-static {v6}, Li50/v;->a(Li50/u;)Ljava/lang/String; # MARKER: R8 Li50/v; Li50/u; a move-result-object v5 @@ -94,19 +94,19 @@ if-eqz v5, :find_media - instance-of v5, v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + instance-of v5, v6, Li50/u$b; # MARKER: R8 Li50/u$b; if-eqz v5, :done - check-cast v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + check-cast v6, Li50/u$b; # MARKER: R8 Li50/u$b; - iget-object v7, v6, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + iget-object v7, v6, Li50/u$b;->a:Ln30/o; # MARKER: R8 Li50/u$b; Ln30/o; a const/4 v5, 0x1 if-ne v3, v5, :check_mix - instance-of v5, v7, Lh40/a; # MARKER: R8 Lh40/a; + instance-of v5, v7, Ln30/a; # MARKER: R8 Ln30/a; if-eqz v5, :done @@ -117,7 +117,7 @@ if-ne v3, v5, :check_playlist - instance-of v5, v7, Lh40/i; # MARKER: R8 Lh40/i; + instance-of v5, v7, Ln30/j; # MARKER: R8 Ln30/j; if-eqz v5, :done @@ -128,14 +128,14 @@ if-ne v3, v5, :check_track - instance-of v5, v7, Lh40/j; # MARKER: R8 Lh40/j; + instance-of v5, v7, Ln30/k; # MARKER: R8 Ln30/k; if-eqz v5, :done goto :dependencies :check_track - instance-of v5, v7, Lh40/p; # MARKER: R8 Lh40/p; + instance-of v5, v7, Ln30/p; # MARKER: R8 Ln30/p; if-eqz v5, :done @@ -156,9 +156,9 @@ new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget-object v11, v4, Lc60/f;->a:Ljava/lang/String; # MARKER: R8 Lc60/f; a + iget-object v11, v4, Li50/f;->a:Ljava/lang/String; # MARKER: R8 Li50/f; a - iget v12, v4, Lc60/f;->d:I # MARKER: R8 Lc60/f; d + iget v12, v4, Li50/f;->d:I # MARKER: R8 Li50/f; d invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; @@ -170,9 +170,9 @@ if-ne v3, v0, :mix - check-cast v7, Lh40/a; # MARKER: R8 Lh40/a; + check-cast v7, Ln30/a; # MARKER: R8 Ln30/a; - invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lie0/a; Lh40/a; a + invoke-static {v7}, Lae0/a;->b(Ln30/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lae0/a; Ln30/a; a move-result-object v12 @@ -211,9 +211,9 @@ if-ne v3, v0, :playlist - check-cast v7, Lh40/i; # MARKER: R8 Lh40/i; + check-cast v7, Ln30/j; # MARKER: R8 Ln30/j; - invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lie0/g; Lh40/i; b + invoke-static {v7}, Lae0/g;->b(Ln30/j;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lae0/g; Ln30/j; b move-result-object v12 @@ -252,9 +252,9 @@ if-ne v3, v0, :track - check-cast v7, Lh40/j; # MARKER: R8 Lh40/j; + check-cast v7, Ln30/k; # MARKER: R8 Ln30/k; - invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + invoke-static {v7}, Lae0/h;->a(Ln30/k;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lae0/h; Ln30/k; a move-result-object v12 @@ -283,9 +283,9 @@ goto :done :track - check-cast v7, Lh40/p; # MARKER: R8 Lh40/p; + check-cast v7, Ln30/p; # MARKER: R8 Ln30/p; - invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + invoke-static {v7}, Lae0/i;->c(Ln30/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lae0/i; Ln30/p; a move-result-object v12 @@ -298,9 +298,9 @@ move-result-object v6 :navigation_ready - iget-object v0, v4, Lc60/f;->e:Ljava/lang/String; # MARKER: R8 Lc60/f; e + iget-object v0, v4, Li50/f;->e:Ljava/lang/String; # MARKER: R8 Li50/f; e - invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + invoke-static {v6, v2, v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Lcom/tidal/android/navigation/NavigationInfo;Ljava/lang/String;Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o move-result-object v11 @@ -367,17 +367,17 @@ if-eqz v2, :done - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + invoke-virtual {p0, v1}, Lq50/c;->c(Ljava/lang/String;)Li50/j; # MARKER: R8 Lq50/c; Li50/j; c move-result-object v3 - instance-of v4, v3, Lc60/v; # MARKER: R8 Lc60/v; + instance-of v4, v3, Li50/y; # MARKER: R8 Li50/y; if-eqz v4, :done - check-cast v3, Lc60/v; # MARKER: R8 Lc60/v; + check-cast v3, Li50/y; # MARKER: R8 Li50/y; - iget-object v4, v3, Lc60/v;->b:Ljava/lang/String; # MARKER: R8 Lc60/v; b + iget-object v4, v3, Li50/y;->b:Ljava/lang/String; # MARKER: R8 Li50/y; b invoke-virtual {v1, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -385,7 +385,7 @@ if-eqz v1, :done - iget-object v1, v3, Lc60/v;->f:Ljava/util/ArrayList; # MARKER: R8 Lc60/v; f + iget-object v1, v3, Li50/y;->f:Ljava/util/ArrayList; # MARKER: R8 Li50/y; f invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; @@ -402,13 +402,13 @@ move-result-object v4 - instance-of v5, v4, Lc60/r; # MARKER: R8 Lc60/r; + instance-of v5, v4, Li50/u; # MARKER: R8 Li50/u; if-eqz v5, :find_playlist - check-cast v4, Lc60/r; # MARKER: R8 Lc60/r; + check-cast v4, Li50/u; # MARKER: R8 Li50/u; - invoke-static {v4}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; # MARKER: R8 Lc60/s; Lc60/r; a + invoke-static {v4}, Li50/v;->a(Li50/u;)Ljava/lang/String; # MARKER: R8 Li50/v; Li50/u; a move-result-object v5 @@ -418,19 +418,19 @@ if-eqz v5, :find_playlist - instance-of v5, v4, Lc60/r$b; # MARKER: R8 Lc60/r$b; + instance-of v5, v4, Li50/u$b; # MARKER: R8 Li50/u$b; if-eqz v5, :done - check-cast v4, Lc60/r$b; # MARKER: R8 Lc60/r$b; + check-cast v4, Li50/u$b; # MARKER: R8 Li50/u$b; - iget-object v4, v4, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + iget-object v4, v4, Li50/u$b;->a:Ln30/o; # MARKER: R8 Li50/u$b; Ln30/o; a - instance-of v5, v4, Lh40/j; # MARKER: R8 Lh40/j; + instance-of v5, v4, Ln30/k; # MARKER: R8 Ln30/k; if-eqz v5, :done - check-cast v4, Lh40/j; # MARKER: R8 Lh40/j; + check-cast v4, Ln30/k; # MARKER: R8 Ln30/k; iget-object v5, p0, Lcom/tidal/android/dynamicpages/ui/modules/publicplaylistlist/PublicPlaylistListModuleManager;->f:Lcom/tidal/android/dynamicpages/ui/b; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/b; f @@ -448,9 +448,9 @@ new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget-object v9, v3, Lc60/v;->a:Ljava/lang/String; # MARKER: R8 Lc60/v; a + iget-object v9, v3, Li50/y;->a:Ljava/lang/String; # MARKER: R8 Li50/y; a - iget v10, v3, Lc60/v;->e:I # MARKER: R8 Lc60/v; e + iget v10, v3, Li50/y;->e:I # MARKER: R8 Li50/y; e invoke-static {v10}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; @@ -458,7 +458,7 @@ invoke-direct {v8, v0, v9, v10}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V - invoke-static {v4}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + invoke-static {v4}, Lae0/h;->a(Ln30/k;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lae0/h; Ln30/k; a move-result-object v4 @@ -527,17 +527,17 @@ if-gt v3, v4, :done - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + invoke-virtual {p0, v1}, Lq50/c;->c(Ljava/lang/String;)Li50/j; # MARKER: R8 Lq50/c; Li50/j; c move-result-object v4 - instance-of v5, v4, Lc60/c0; # MARKER: R8 Lc60/c0; + instance-of v5, v4, Li50/f0; # MARKER: R8 Li50/f0; if-eqz v5, :done - check-cast v4, Lc60/c0; # MARKER: R8 Lc60/c0; + check-cast v4, Li50/f0; # MARKER: R8 Li50/f0; - iget-object v5, v4, Lc60/c0;->b:Ljava/lang/String; # MARKER: R8 Lc60/c0; b + iget-object v5, v4, Li50/f0;->b:Ljava/lang/String; # MARKER: R8 Li50/f0; b invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -545,7 +545,7 @@ if-eqz v1, :done - iget-object v1, v4, Lc60/c0;->g:Ljava/util/ArrayList; # MARKER: R8 Lc60/c0; g + iget-object v1, v4, Li50/f0;->g:Ljava/util/ArrayList; # MARKER: R8 Li50/f0; g invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; @@ -562,13 +562,13 @@ move-result-object v6 - instance-of v5, v6, Lc60/r; # MARKER: R8 Lc60/r; + instance-of v5, v6, Li50/u; # MARKER: R8 Li50/u; if-eqz v5, :find_media - check-cast v6, Lc60/r; # MARKER: R8 Lc60/r; + check-cast v6, Li50/u; # MARKER: R8 Li50/u; - invoke-static {v6}, Lc60/s;->a(Lc60/r;)Ljava/lang/String; # MARKER: R8 Lc60/s; Lc60/r; a + invoke-static {v6}, Li50/v;->a(Li50/u;)Ljava/lang/String; # MARKER: R8 Li50/v; Li50/u; a move-result-object v5 @@ -578,19 +578,19 @@ if-eqz v5, :find_media - instance-of v5, v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + instance-of v5, v6, Li50/u$b; # MARKER: R8 Li50/u$b; if-eqz v5, :done - check-cast v6, Lc60/r$b; # MARKER: R8 Lc60/r$b; + check-cast v6, Li50/u$b; # MARKER: R8 Li50/u$b; - iget-object v7, v6, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + iget-object v7, v6, Li50/u$b;->a:Ln30/o; # MARKER: R8 Li50/u$b; Ln30/o; a const/4 v5, 0x1 if-ne v3, v5, :check_mix - instance-of v5, v7, Lh40/a; # MARKER: R8 Lh40/a; + instance-of v5, v7, Ln30/a; # MARKER: R8 Ln30/a; if-eqz v5, :done @@ -601,7 +601,7 @@ if-ne v3, v5, :check_playlist - instance-of v5, v7, Lh40/i; # MARKER: R8 Lh40/i; + instance-of v5, v7, Ln30/j; # MARKER: R8 Ln30/j; if-eqz v5, :done @@ -612,14 +612,14 @@ if-ne v3, v5, :check_track - instance-of v5, v7, Lh40/j; # MARKER: R8 Lh40/j; + instance-of v5, v7, Ln30/k; # MARKER: R8 Ln30/k; if-eqz v5, :done goto :dependencies :check_track - instance-of v5, v7, Lh40/p; # MARKER: R8 Lh40/p; + instance-of v5, v7, Ln30/p; # MARKER: R8 Ln30/p; if-eqz v5, :done @@ -640,9 +640,9 @@ new-instance v10, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget-object v11, v4, Lc60/c0;->a:Ljava/lang/String; # MARKER: R8 Lc60/c0; a + iget-object v11, v4, Li50/f0;->a:Ljava/lang/String; # MARKER: R8 Li50/f0; a - iget v12, v4, Lc60/c0;->f:I # MARKER: R8 Lc60/c0; f + iget v12, v4, Li50/f0;->f:I # MARKER: R8 Li50/f0; f invoke-static {v12}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; @@ -654,9 +654,9 @@ if-ne v3, v0, :mix - check-cast v7, Lh40/a; # MARKER: R8 Lh40/a; + check-cast v7, Ln30/a; # MARKER: R8 Ln30/a; - invoke-static {v7}, Lie0/a;->a(Lh40/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lie0/a; Lh40/a; a + invoke-static {v7}, Lae0/a;->b(Ln30/a;)Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lae0/a; Ln30/a; a move-result-object v12 @@ -695,9 +695,9 @@ if-ne v3, v0, :playlist - check-cast v7, Lh40/i; # MARKER: R8 Lh40/i; + check-cast v7, Ln30/j; # MARKER: R8 Ln30/j; - invoke-static {v7}, Lie0/g;->b(Lh40/i;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lie0/g; Lh40/i; b + invoke-static {v7}, Lae0/g;->b(Ln30/j;)Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lae0/g; Ln30/j; b move-result-object v12 @@ -736,9 +736,9 @@ if-ne v3, v0, :track - check-cast v7, Lh40/j; # MARKER: R8 Lh40/j; + check-cast v7, Ln30/k; # MARKER: R8 Ln30/k; - invoke-static {v7}, Lie0/h;->a(Lh40/j;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lie0/h; Lh40/j; a + invoke-static {v7}, Lae0/h;->a(Ln30/k;)Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lae0/h; Ln30/k; a move-result-object v12 @@ -767,9 +767,9 @@ goto :done :track - check-cast v7, Lh40/p; # MARKER: R8 Lh40/p; + check-cast v7, Ln30/p; # MARKER: R8 Ln30/p; - invoke-static {v7}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + invoke-static {v7}, Lae0/i;->c(Ln30/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lae0/i; Ln30/p; a move-result-object v12 @@ -782,9 +782,9 @@ move-result-object v6 :navigation_ready - iget-object v0, v4, Lc60/c0;->c:Ljava/lang/String; # MARKER: R8 Lc60/c0; c + iget-object v0, v4, Li50/f0;->c:Ljava/lang/String; # MARKER: R8 Li50/f0; c - invoke-static {v2, v0, v6}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + invoke-static {v6, v2, v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Lcom/tidal/android/navigation/NavigationInfo;Ljava/lang/String;Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o move-result-object v11 @@ -819,15 +819,15 @@ .method private static menu(Lcom/tidal/android/dynamicpages/ui/c;)Lh4/a; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lh4/a; .locals 2 - iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/c;->a:Lcom/aspiro/wamp/core/k; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lcom/aspiro/wamp/core/k; a + iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/c;->a:Lcom/aspiro/wamp/core/l; # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/c; Lcom/aspiro/wamp/core/l; a - instance-of v1, v0, Lh9/p1; # MARKER: R8 Lh9/p1; + instance-of v1, v0, Lg9/u1; # MARKER: R8 Lg9/u1; if-eqz v1, :invalid - check-cast v0, Lh9/p1; # MARKER: R8 Lh9/p1; + check-cast v0, Lg9/u1; # MARKER: R8 Lg9/u1; - iget-object v0, v0, Lh9/p1;->b:Lx40/a; # MARKER: R8 Lh9/p1; Lx40/a; b + iget-object v0, v0, Lg9/u1;->b:Ld40/a; # MARKER: R8 Lg9/u1; Ld40/a; b instance-of v1, v0, Lh4/a; # MARKER: R8 Lh4/a; diff --git a/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali b/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali index 486135e..661e280 100644 --- a/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali +++ b/patches/extension/radiant/gestures/queue/DynamicTrackQueue.smali @@ -39,17 +39,17 @@ if-lez v4, :done - invoke-virtual {p0, v1}, Li60/c;->c(Ljava/lang/String;)Lc60/h; # MARKER: R8 Li60/c; Lc60/h; c + invoke-virtual {p0, v1}, Lq50/c;->c(Ljava/lang/String;)Li50/j; # MARKER: R8 Lq50/c; Li50/j; c move-result-object v4 - instance-of v5, v4, Lc60/b0; # MARKER: R8 Lc60/b0; + instance-of v5, v4, Li50/e0; # MARKER: R8 Li50/e0; if-eqz v5, :done - check-cast v4, Lc60/b0; # MARKER: R8 Lc60/b0; + check-cast v4, Li50/e0; # MARKER: R8 Li50/e0; - iget-object v5, v4, Lc60/b0;->b:Ljava/lang/String; # MARKER: R8 Lc60/b0; b + iget-object v5, v4, Li50/e0;->b:Ljava/lang/String; # MARKER: R8 Li50/e0; b invoke-virtual {v1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -57,7 +57,7 @@ if-eqz v1, :done - iget-object v1, v4, Lc60/b0;->f:Ljava/util/ArrayList; # MARKER: R8 Lc60/b0; f + iget-object v1, v4, Li50/e0;->f:Ljava/util/ArrayList; # MARKER: R8 Li50/e0; f if-eqz v1, :done @@ -76,21 +76,21 @@ move-result-object v5 - instance-of v6, v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + instance-of v6, v5, Li50/u$b; # MARKER: R8 Li50/u$b; if-eqz v6, :find_track - check-cast v5, Lc60/r$b; # MARKER: R8 Lc60/r$b; + check-cast v5, Li50/u$b; # MARKER: R8 Li50/u$b; - iget-object v5, v5, Lc60/r$b;->a:Lh40/n; # MARKER: R8 Lc60/r$b; Lh40/n; a + iget-object v5, v5, Li50/u$b;->a:Ln30/o; # MARKER: R8 Li50/u$b; Ln30/o; a - instance-of v6, v5, Lh40/p; # MARKER: R8 Lh40/p; + instance-of v6, v5, Ln30/p; # MARKER: R8 Ln30/p; if-eqz v6, :find_track - check-cast v5, Lh40/p; # MARKER: R8 Lh40/p; + check-cast v5, Ln30/p; # MARKER: R8 Ln30/p; - iget-wide v6, v5, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + iget-wide v6, v5, Ln30/p;->a:J # MARKER: R8 Ln30/p; a cmp-long v6, v6, v2 @@ -112,13 +112,13 @@ if-eqz v1, :done - invoke-static {v5}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + invoke-static {v5}, Lae0/i;->c(Ln30/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lae0/i; Ln30/p; a move-result-object v7 if-eqz v7, :done - iget-object v2, v4, Lc60/b0;->a:Ljava/lang/String; # MARKER: R8 Lc60/b0; a + iget-object v2, v4, Li50/e0;->a:Ljava/lang/String; # MARKER: R8 Li50/e0; a if-eqz v2, :done @@ -130,7 +130,7 @@ new-instance v8, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; - iget v3, v4, Lc60/b0;->e:I # MARKER: R8 Lc60/b0; e + iget v3, v4, Li50/e0;->e:I # MARKER: R8 Li50/e0; e invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; @@ -144,11 +144,11 @@ move-result-object v2 - iget-object v3, v4, Lc60/b0;->c:Ljava/lang/String; # MARKER: R8 Lc60/b0; c + iget-object v3, v4, Li50/e0;->c:Ljava/lang/String; # MARKER: R8 Li50/e0; c if-eqz v3, :done - iget-object v10, v4, Lc60/b0;->g:Ljava/lang/String; # MARKER: R8 Lc60/b0; g + iget-object v10, v4, Li50/e0;->g:Ljava/lang/String; # MARKER: R8 Li50/e0; g invoke-static {v10}, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$a;->a(Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType; # MARKER: R8 a diff --git a/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali b/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali index b8c7838..7e6040a 100644 --- a/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/DynamicTrackQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -19,18 +19,18 @@ # direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V # MARKER: R8 Lam0/l; Lm40/e$e; +.method public constructor (Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e$e;)V # MARKER: R8 Lyl0/l; Ls30/e$e; .locals 2 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->pageId:Ljava/lang/String; iput-object p3, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; - iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + iget-wide v0, p4, Ls30/e$e;->a:J # MARKER: R8 Ls30/e$e; a iput-wide v0, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->trackId:J @@ -60,7 +60,7 @@ iget-object v4, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->moduleUuid:Ljava/lang/String; - invoke-direct {v0, v1, v2, v3, v4}, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a;->(JLjava/lang/String;Ljava/lang/String;)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; + invoke-direct {v0, v3, v4, v1, v2}, Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a;->(Ljava/lang/String;Ljava/lang/String;J)V # MARKER: R8 Lcom/tidal/android/dynamicpages/ui/modules/tracklist/b$a; goto :emit @@ -82,9 +82,9 @@ invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/DynamicTrackQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;JI)V :emit - iget-object v7, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v7, p0, Lradiant/gestures/queue/DynamicTrackQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-interface {v7, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v7, v0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali b/patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali index ef801ae..18f549a 100644 --- a/patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali +++ b/patches/extension/radiant/gestures/queue/DynamicTrackResolver.smali @@ -11,18 +11,18 @@ # direct methods -.method private currentAlbumRow(Lradiant/gestures/queue/QueueRequest;)Lu5/b$a; # MARKER: R8 Lu5/b$a; +.method private currentAlbumRow(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; .locals 9 if-eqz p1, :invalid iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - instance-of v1, v0, Lu5/b$a; # MARKER: R8 Lu5/b$a; + instance-of v1, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; if-eqz v1, :invalid - check-cast v0, Lu5/b$a; # MARKER: R8 Lu5/b$a; + check-cast v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; iget-object v1, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; @@ -68,37 +68,37 @@ move-result-object v2 - instance-of v3, v2, Lu5/b$a; # MARKER: R8 Lu5/b$a; + instance-of v3, v2, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; if-eqz v3, :invalid - check-cast v2, Lu5/b$a; # MARKER: R8 Lu5/b$a; + check-cast v2, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; - iget-object v3, v0, Lu5/b$a;->a:Lu5/b$a$a; # MARKER: R8 Lu5/b$a; Lu5/b$a$a; a + iget-object v3, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->a:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; a - iget-object v4, v2, Lu5/b$a;->a:Lu5/b$a$a; # MARKER: R8 Lu5/b$a; Lu5/b$a$a; a + iget-object v4, v2, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->a:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$a; a if-ne v3, v4, :invalid - iget-wide v3, v0, Lu5/b$a;->b:J # MARKER: R8 Lu5/b$a; b + iget-wide v3, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->b:J # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; b - iget-wide v5, v2, Lu5/b$a;->b:J # MARKER: R8 Lu5/b$a; b + iget-wide v5, v2, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->b:J # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; b cmp-long v7, v3, v5 if-nez v7, :invalid - iget-object v3, v0, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c + iget-object v3, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->c:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; c - iget-object v4, v2, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c + iget-object v4, v2, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->c:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; c if-eqz v3, :invalid if-eqz v4, :invalid - iget v5, v3, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r + iget v5, v3, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->s:I # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; r - iget v6, v4, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r + iget v6, v4, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->s:I # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; r iget v7, p1, Lradiant/gestures/queue/QueueRequest;->id:I @@ -106,9 +106,9 @@ if-ne v6, v7, :invalid - iget-object v5, v3, Lu5/b$a$b;->s:Ljava/lang/String; # MARKER: R8 Lu5/b$a$b; s + iget-object v5, v3, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->t:Ljava/lang/String; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; s - iget-object v6, v4, Lu5/b$a$b;->s:Ljava/lang/String; # MARKER: R8 Lu5/b$a$b; s + iget-object v6, v4, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->t:Ljava/lang/String; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; s if-eq v5, v6, :module_valid @@ -121,7 +121,7 @@ if-eqz v5, :invalid :module_valid - iget-object v5, v4, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; # MARKER: R8 Lu5/b$a$b; g + iget-object v5, v4, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; g invoke-interface {v5}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z @@ -129,7 +129,7 @@ if-eqz v5, :invalid - iget-boolean v5, v4, Lu5/b$a$b;->p:Z # MARKER: R8 Lu5/b$a$b; p + iget-boolean v5, v4, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->q:Z # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; p if-nez v5, :invalid @@ -155,18 +155,18 @@ return-void .end method -.method private currentRow(Lradiant/gestures/queue/QueueRequest;)Lo6/b; # MARKER: R8 Lo6/b; +.method private currentRow(Lradiant/gestures/queue/QueueRequest;)Ln6/b; # MARKER: R8 Ln6/b; .locals 8 if-eqz p1, :invalid iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - instance-of v1, v0, Lo6/b; # MARKER: R8 Lo6/b; + instance-of v1, v0, Ln6/b; # MARKER: R8 Ln6/b; if-eqz v1, :invalid - check-cast v0, Lo6/b; # MARKER: R8 Lo6/b; + check-cast v0, Ln6/b; # MARKER: R8 Ln6/b; iget-object v1, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; @@ -212,37 +212,37 @@ move-result-object v2 - instance-of v3, v2, Lo6/b; # MARKER: R8 Lo6/b; + instance-of v3, v2, Ln6/b; # MARKER: R8 Ln6/b; if-eqz v3, :invalid - check-cast v2, Lo6/b; # MARKER: R8 Lo6/b; + check-cast v2, Ln6/b; # MARKER: R8 Ln6/b; - iget-object v3, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a + iget-object v3, v0, Ln6/b;->a:Ln6/g; # MARKER: R8 Ln6/b; Ln6/g; a - iget-object v4, v2, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a + iget-object v4, v2, Ln6/b;->a:Ln6/g; # MARKER: R8 Ln6/b; Ln6/g; a if-ne v3, v4, :invalid - iget-wide v3, v0, Lo6/b;->b:J # MARKER: R8 Lo6/b; b + iget-wide v3, v0, Ln6/b;->b:J # MARKER: R8 Ln6/b; b - iget-wide v5, v2, Lo6/b;->b:J # MARKER: R8 Lo6/b; b + iget-wide v5, v2, Ln6/b;->b:J # MARKER: R8 Ln6/b; b cmp-long v7, v3, v5 if-nez v7, :invalid - iget-object v3, v0, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c + iget-object v3, v0, Ln6/b;->c:Ln6/b$a; # MARKER: R8 Ln6/b; Ln6/b$a; c - iget-object v4, v2, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c + iget-object v4, v2, Ln6/b;->c:Ln6/b$a; # MARKER: R8 Ln6/b; Ln6/b$a; c if-eqz v3, :invalid if-eqz v4, :invalid - iget v5, v3, Lo6/b$a;->d:I # MARKER: R8 Lo6/b$a; d + iget v5, v3, Ln6/b$a;->d:I # MARKER: R8 Ln6/b$a; d - iget v6, v4, Lo6/b$a;->d:I # MARKER: R8 Lo6/b$a; d + iget v6, v4, Ln6/b$a;->d:I # MARKER: R8 Ln6/b$a; d iget v7, p1, Lradiant/gestures/queue/QueueRequest;->id:I @@ -250,15 +250,15 @@ if-ne v6, v7, :invalid - iget v5, v3, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o + iget v5, v3, Ln6/b$a;->o:I # MARKER: R8 Ln6/b$a; o - iget v6, v4, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o + iget v6, v4, Ln6/b$a;->o:I # MARKER: R8 Ln6/b$a; o if-ne v5, v6, :invalid - iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q + iget-object v5, v3, Ln6/b$a;->q:Ljava/lang/String; # MARKER: R8 Ln6/b$a; q - iget-object v6, v4, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q + iget-object v6, v4, Ln6/b$a;->q:Ljava/lang/String; # MARKER: R8 Ln6/b$a; q if-eq v5, v6, :valid @@ -282,19 +282,19 @@ .method private currentTrack(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/model/Track; .locals 7 - invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentRow(Lradiant/gestures/queue/QueueRequest;)Lo6/b; # MARKER: R8 Lo6/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentRow(Lradiant/gestures/queue/QueueRequest;)Ln6/b; # MARKER: R8 Ln6/b; move-result-object v0 if-eqz v0, :invalid - iget-object v1, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a + iget-object v1, v0, Ln6/b;->a:Ln6/g; # MARKER: R8 Ln6/b; Ln6/g; a - iget-object v2, v0, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c + iget-object v2, v0, Ln6/b;->c:Ln6/b$a; # MARKER: R8 Ln6/b; Ln6/b$a; c - iget-object v3, v1, Lo6/i;->p:Ljava/util/LinkedHashMap; # MARKER: R8 Lo6/i; p + iget-object v3, v1, Ln6/g;->p:Ljava/util/LinkedHashMap; # MARKER: R8 Ln6/g; p - iget-object v4, v2, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q + iget-object v4, v2, Ln6/b$a;->q:Ljava/lang/String; # MARKER: R8 Ln6/b$a; q invoke-virtual {v3, v4}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; @@ -310,7 +310,7 @@ move-result-object v3 - iget v4, v2, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o + iget v4, v2, Ln6/b$a;->o:I # MARKER: R8 Ln6/b$a; o if-gez v4, :check_size @@ -344,7 +344,7 @@ if-ne v4, v5, :invalid - iget-object v1, v1, Lo6/i;->g:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lo6/i; g + iget-object v1, v1, Ln6/g;->g:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Ln6/g; g invoke-interface {v1, v3}, Lcom/aspiro/wamp/model/AvailabilityInteractor;->getAvailability(Lcom/aspiro/wamp/model/MediaItem;)Lcom/aspiro/wamp/model/Availability$MediaItem; @@ -418,17 +418,17 @@ move-result-object p1 - instance-of v0, p1, Lu5/b$a; # MARKER: R8 Lu5/b$a; + instance-of v0, p1, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; if-eqz v0, :invalid - check-cast p1, Lu5/b$a; # MARKER: R8 Lu5/b$a; + check-cast p1, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; - iget-object v0, p1, Lu5/b$a;->c:Lu5/b$a$b; # MARKER: R8 Lu5/b$a; Lu5/b$a$b; c + iget-object v0, p1, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;->c:Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; c if-eqz v0, :invalid - iget-object v1, v0, Lu5/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; # MARKER: R8 Lu5/b$a$b; g + iget-object v1, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->g:Lcom/aspiro/wamp/model/Availability; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; g invoke-interface {v1}, Lcom/aspiro/wamp/model/Availability;->isAvailable()Z @@ -436,11 +436,11 @@ if-eqz v1, :invalid - iget-boolean v1, v0, Lu5/b$a$b;->p:Z # MARKER: R8 Lu5/b$a$b; p + iget-boolean v1, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->q:Z # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; p if-nez v1, :invalid - iget v0, v0, Lu5/b$a$b;->r:I # MARKER: R8 Lu5/b$a$b; r + iget v0, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b;->s:I # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a$b; r new-instance v1, Lradiant/gestures/queue/QueueRequest; @@ -478,11 +478,11 @@ iget-object v0, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - instance-of v1, v0, Lu5/b$a; # MARKER: R8 Lu5/b$a; + instance-of v1, v0, Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; if-eqz v1, :dynamic_track - invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentAlbumRow(Lradiant/gestures/queue/QueueRequest;)Lu5/b$a; # MARKER: R8 Lu5/b$a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentAlbumRow(Lradiant/gestures/queue/QueueRequest;)Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; move-result-object v0 @@ -490,7 +490,7 @@ new-instance v1, Lradiant/gestures/queue/AlbumItemQueueAction; - invoke-direct {v1, v0}, Lradiant/gestures/queue/AlbumItemQueueAction;->(Lu5/b$a;)V # MARKER: R8 Lu5/b$a; + invoke-direct {v1, v0}, Lradiant/gestures/queue/AlbumItemQueueAction;->(Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a;)V # MARKER: R8 Lcom/aspiro/wamp/dynamicpages/modules/albumitemcollection/b$a; iget-object v2, p0, Lradiant/gestures/queue/DynamicTrackResolver;->recycler:Ljava/lang/ref/WeakReference; @@ -513,7 +513,7 @@ return-void :dynamic_track - invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentRow(Lradiant/gestures/queue/QueueRequest;)Lo6/b; # MARKER: R8 Lo6/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/DynamicTrackResolver;->currentRow(Lradiant/gestures/queue/QueueRequest;)Ln6/b; # MARKER: R8 Ln6/b; move-result-object v0 @@ -535,30 +535,30 @@ if-nez v2, :append - iget-object v2, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a + iget-object v2, v0, Ln6/b;->a:Ln6/g; # MARKER: R8 Ln6/b; Ln6/g; a - iget-object v3, v0, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c + iget-object v3, v0, Ln6/b;->c:Ln6/b$a; # MARKER: R8 Ln6/b; Ln6/b$a; c - iget v4, v3, Lo6/b$a;->o:I # MARKER: R8 Lo6/b$a; o + iget v4, v3, Ln6/b$a;->o:I # MARKER: R8 Ln6/b$a; o - iget-object v5, v3, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q + iget-object v5, v3, Ln6/b$a;->q:Ljava/lang/String; # MARKER: R8 Ln6/b$a; q - invoke-virtual {v2, v4, v5}, Lo6/i;->e(ILjava/lang/String;)V # MARKER: R8 Lo6/i; e + invoke-virtual {v2, v4, v5}, Ln6/g;->e(ILjava/lang/String;)V # MARKER: R8 Ln6/g; e goto :done :append - iget-object v0, v0, Lo6/b;->a:Lo6/i; # MARKER: R8 Lo6/b; Lo6/i; a + iget-object v0, v0, Ln6/b;->a:Ln6/g; # MARKER: R8 Ln6/b; Ln6/g; a - iget-object v2, v0, Lo6/i;->p:Ljava/util/LinkedHashMap; # MARKER: R8 Lo6/i; p + iget-object v2, v0, Ln6/g;->p:Ljava/util/LinkedHashMap; # MARKER: R8 Ln6/g; p iget-object v3, p1, Lradiant/gestures/queue/QueueRequest;->media:Ljava/lang/Object; - check-cast v3, Lo6/b; # MARKER: R8 Lo6/b; + check-cast v3, Ln6/b; # MARKER: R8 Ln6/b; - iget-object v3, v3, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c + iget-object v3, v3, Ln6/b;->c:Ln6/b$a; # MARKER: R8 Ln6/b; Ln6/b$a; c - iget-object v3, v3, Lo6/b$a;->q:Ljava/lang/String; # MARKER: R8 Lo6/b$a; q + iget-object v3, v3, Ln6/b$a;->q:Ljava/lang/String; # MARKER: R8 Ln6/b$a; q invoke-virtual {v2, v3}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; @@ -598,7 +598,7 @@ move-result-object v5 - iget-object v6, v0, Lo6/i;->m:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lo6/i; m + iget-object v6, v0, Ln6/g;->m:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ln6/g; m invoke-virtual {v2}, Lcom/aspiro/wamp/dynamicpages/data/model/Module;->getSelfLink()Ljava/lang/String; @@ -655,7 +655,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Lv6/e$a; # MARKER: R8 Lv6/e$a; + instance-of v0, p2, Lu6/e$a; # MARKER: R8 Lu6/e$a; if-eqz v0, :dynamic_holder @@ -666,7 +666,7 @@ return-object p1 :dynamic_holder - instance-of v0, p2, Lp7/a$a; # MARKER: R8 Lp7/a$a; + instance-of v0, p2, Lo7/a$a; # MARKER: R8 Lo7/a$a; if-eqz v0, :invalid @@ -721,17 +721,17 @@ move-result-object p1 - instance-of v0, p1, Lo6/b; # MARKER: R8 Lo6/b; + instance-of v0, p1, Ln6/b; # MARKER: R8 Ln6/b; if-eqz v0, :invalid - check-cast p1, Lo6/b; # MARKER: R8 Lo6/b; + check-cast p1, Ln6/b; # MARKER: R8 Ln6/b; - iget-object v0, p1, Lo6/b;->c:Lo6/b$a; # MARKER: R8 Lo6/b; Lo6/b$a; c + iget-object v0, p1, Ln6/b;->c:Ln6/b$a; # MARKER: R8 Ln6/b; Ln6/b$a; c if-eqz v0, :invalid - iget v0, v0, Lo6/b$a;->d:I # MARKER: R8 Lo6/b$a; d + iget v0, v0, Ln6/b$a;->d:I # MARKER: R8 Ln6/b$a; d new-instance v1, Lradiant/gestures/queue/QueueRequest; diff --git a/patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali b/patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali index 3ed03c6..f322972 100644 --- a/patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali +++ b/patches/extension/radiant/gestures/queue/FavoriteTracksResolver.smali @@ -74,7 +74,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of p1, p2, Ln8/d; # MARKER: R8 Ln8/d; + instance-of p1, p2, Lm8/d; # MARKER: R8 Lm8/d; if-eqz p1, :invalid @@ -89,9 +89,9 @@ goto :invalid :has_position - check-cast p2, Ln8/d; # MARKER: R8 Ln8/d; + check-cast p2, Lm8/d; # MARKER: R8 Lm8/d; - iget-object p2, p2, Ln8/d;->f:Lcom/aspiro/wamp/model/MediaItem; # MARKER: R8 Ln8/d; f + iget-object p2, p2, Lm8/d;->f:Lcom/aspiro/wamp/model/MediaItem; # MARKER: R8 Lm8/d; f instance-of v0, p2, Lcom/aspiro/wamp/model/FavoriteTrack; diff --git a/patches/extension/radiant/gestures/queue/FeedResolver.smali b/patches/extension/radiant/gestures/queue/FeedResolver.smali index 7b349eb..c7dd2fb 100644 --- a/patches/extension/radiant/gestures/queue/FeedResolver.smali +++ b/patches/extension/radiant/gestures/queue/FeedResolver.smali @@ -46,7 +46,7 @@ if-eqz v0, :invalid - iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/FeedView;->d:Lv70/b; # MARKER: R8 Lv70/b; d + iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/FeedView;->d:Lg70/b; # MARKER: R8 Lg70/b; d instance-of v1, v0, Lcom/tidal/android/feature/feed/ui/c; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; @@ -54,11 +54,11 @@ check-cast v0, Lcom/tidal/android/feature/feed/ui/c; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; - iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/c;->c:Lz70/a; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; Lz70/a; c + iget-object v0, v0, Lcom/tidal/android/feature/feed/ui/c;->c:Lk70/a; # MARKER: R8 Lcom/tidal/android/feature/feed/ui/c; Lk70/a; c if-eqz v0, :invalid - iget-object v0, v0, Lz70/a;->c:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lz70/a; c + iget-object v0, v0, Lk70/a;->c:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lk70/a; c return-object v0 @@ -99,13 +99,13 @@ move-result-object v2 - instance-of v3, v2, La50/b; # MARKER: R8 La50/b; + instance-of v3, v2, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v3, :invalid - check-cast v2, La50/b; # MARKER: R8 La50/b; + check-cast v2, Lg40/b; # MARKER: R8 Lg40/b; - iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + iget-object v2, v2, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I @@ -133,7 +133,7 @@ if-eqz v4, :invalid - instance-of v3, v2, Lb80/a; # MARKER: R8 Lb80/a; + instance-of v3, v2, Lm70/a; # MARKER: R8 Lm70/a; if-eqz v3, :mix @@ -141,15 +141,15 @@ if-eqz v3, :invalid - check-cast v2, Lb80/a; # MARKER: R8 Lb80/a; + check-cast v2, Lm70/a; # MARKER: R8 Lm70/a; - iget-boolean v3, v2, Lb80/a;->c:Z # MARKER: R8 Lb80/a; c + iget-boolean v3, v2, Lm70/a;->c:Z # MARKER: R8 Lm70/a; c if-eqz v3, :invalid check-cast v8, Lcom/aspiro/wamp/model/Album; - iget-object v5, v2, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lb80/a; a + iget-object v5, v2, Lm70/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lm70/a; a invoke-virtual {v8}, Lcom/aspiro/wamp/model/Album;->getId()I @@ -178,7 +178,7 @@ return-object v2 :mix - instance-of v3, v2, Lb80/c; # MARKER: R8 Lb80/c; + instance-of v3, v2, Lm70/c; # MARKER: R8 Lm70/c; if-eqz v3, :playlist @@ -186,11 +186,11 @@ if-eqz v3, :invalid - check-cast v2, Lb80/c; # MARKER: R8 Lb80/c; + check-cast v2, Lm70/c; # MARKER: R8 Lm70/c; check-cast v8, Lcom/aspiro/wamp/mix/model/Mix; - iget-object v5, v2, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lb80/c; a + iget-object v5, v2, Lm70/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lm70/c; a invoke-virtual {v8}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; @@ -227,7 +227,7 @@ return-object v2 :playlist - instance-of v3, v2, Lb80/d; # MARKER: R8 Lb80/d; + instance-of v3, v2, Lm70/d; # MARKER: R8 Lm70/d; if-eqz v3, :invalid @@ -235,11 +235,11 @@ if-eqz v3, :invalid - check-cast v2, Lb80/d; # MARKER: R8 Lb80/d; + check-cast v2, Lm70/d; # MARKER: R8 Lm70/d; check-cast v8, Lcom/aspiro/wamp/model/Playlist; - iget-object v5, v2, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lb80/d; a + iget-object v5, v2, Lm70/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lm70/d; a invoke-virtual {v8}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; @@ -349,45 +349,45 @@ if-eqz v3, :done - iget-object v2, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->c:La80/c; # MARKER: R8 La80/c; c + iget-object v2, v1, Lcom/tidal/android/feature/feed/ui/FeedView;->c:Ll70/c; # MARKER: R8 Ll70/c; c if-eqz v2, :done - instance-of v4, v0, Lb80/a; # MARKER: R8 Lb80/a; + instance-of v4, v0, Lm70/a; # MARKER: R8 Lm70/a; if-eqz v4, :mix - check-cast v0, Lb80/a; # MARKER: R8 Lb80/a; + check-cast v0, Lm70/a; # MARKER: R8 Lm70/a; - iget-object v7, v0, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lb80/a; a + iget-object v7, v0, Lm70/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lm70/a; a - iget v8, v0, Lb80/a;->g:I # MARKER: R8 Lb80/a; g + iget v8, v0, Lm70/a;->g:I # MARKER: R8 Lm70/a; g const/4 v4, 0x1 goto :metadata :mix - instance-of v4, v0, Lb80/c; # MARKER: R8 Lb80/c; + instance-of v4, v0, Lm70/c; # MARKER: R8 Lm70/c; if-eqz v4, :playlist - check-cast v0, Lb80/c; # MARKER: R8 Lb80/c; + check-cast v0, Lm70/c; # MARKER: R8 Lm70/c; - iget-object v7, v0, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lb80/c; a + iget-object v7, v0, Lm70/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lm70/c; a - iget v8, v0, Lb80/c;->c:I # MARKER: R8 Lb80/c; c + iget v8, v0, Lm70/c;->c:I # MARKER: R8 Lm70/c; c const/4 v4, 0x2 goto :metadata :playlist - check-cast v0, Lb80/d; # MARKER: R8 Lb80/d; + check-cast v0, Lm70/d; # MARKER: R8 Lm70/d; - iget-object v7, v0, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lb80/d; a + iget-object v7, v0, Lm70/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lm70/d; a - iget v8, v0, Lb80/d;->c:I # MARKER: R8 Lb80/d; c + iget v8, v0, Lm70/d;->c:I # MARKER: R8 Lm70/d; c const/4 v4, 0x3 @@ -396,13 +396,13 @@ move-result-object v8 - iget-object v0, v2, La80/c;->a:Ljava/lang/String; # MARKER: R8 La80/c; a + iget-object v0, v2, Ll70/c;->a:Ljava/lang/String; # MARKER: R8 Ll70/c; a new-instance p1, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; invoke-direct {p1, v0, v8}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;Ljava/lang/String;)V - iget-object v5, v2, La80/c;->e:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 La80/c; e + iget-object v5, v2, Ll70/c;->e:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ll70/c; e const/4 v0, 0x3 @@ -433,7 +433,7 @@ goto :done :collection - iget-object v6, v2, La80/c;->b:Lx40/a; # MARKER: R8 La80/c; Lx40/a; b + iget-object v6, v2, Ll70/c;->b:Ld40/a; # MARKER: R8 Ll70/c; Ld40/a; b instance-of v0, v6, Lh4/a; # MARKER: R8 Lh4/a; @@ -524,7 +524,7 @@ if-ne v0, p1, :invalid - instance-of v0, p2, Lw70/c$a; # MARKER: R8 Lw70/c$a; + instance-of v0, p2, Lh70/c$a; # MARKER: R8 Lh70/c$a; if-eqz v0, :mix_holder @@ -534,7 +534,7 @@ :mix_holder - instance-of v0, p2, Lw70/h$a; # MARKER: R8 Lw70/h$a; + instance-of v0, p2, Lh70/h$a; # MARKER: R8 Lh70/h$a; if-eqz v0, :playlist_holder @@ -544,7 +544,7 @@ :playlist_holder - instance-of v0, p2, Lw70/k$a; # MARKER: R8 Lw70/k$a; + instance-of v0, p2, Lh70/l$a; # MARKER: R8 Lh70/l$a; if-eqz v0, :invalid @@ -564,13 +564,13 @@ move-result-object p1 - instance-of v0, p1, La50/b; # MARKER: R8 La50/b; + instance-of v0, p1, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v0, :invalid - check-cast p1, La50/b; # MARKER: R8 La50/b; + check-cast p1, Lg40/b; # MARKER: R8 Lg40/b; - iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + iget-object p1, p1, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b invoke-virtual {p1}, Ljava/util/ArrayList;->size()I @@ -585,7 +585,7 @@ move-result-object p1 - instance-of v0, p1, Lb80/a; # MARKER: R8 Lb80/a; + instance-of v0, p1, Lm70/a; # MARKER: R8 Lm70/a; if-eqz v0, :mix @@ -593,9 +593,9 @@ if-ne v5, v0, :invalid - check-cast p1, Lb80/a; # MARKER: R8 Lb80/a; + check-cast p1, Lm70/a; # MARKER: R8 Lm70/a; - iget-object v1, p1, Lb80/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lb80/a; a + iget-object v1, p1, Lm70/a;->a:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lm70/a; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I @@ -604,7 +604,7 @@ goto :request :mix - instance-of v0, p1, Lb80/c; # MARKER: R8 Lb80/c; + instance-of v0, p1, Lm70/c; # MARKER: R8 Lm70/c; if-eqz v0, :playlist @@ -612,9 +612,9 @@ if-ne v5, v0, :invalid - check-cast p1, Lb80/c; # MARKER: R8 Lb80/c; + check-cast p1, Lm70/c; # MARKER: R8 Lm70/c; - iget-object v1, p1, Lb80/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lb80/c; a + iget-object v1, p1, Lm70/c;->a:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lm70/c; a invoke-virtual {v1}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; @@ -627,7 +627,7 @@ goto :request :playlist - instance-of v0, p1, Lb80/d; # MARKER: R8 Lb80/d; + instance-of v0, p1, Lm70/d; # MARKER: R8 Lm70/d; if-eqz v0, :invalid @@ -635,9 +635,9 @@ if-ne v5, v0, :invalid - check-cast p1, Lb80/d; # MARKER: R8 Lb80/d; + check-cast p1, Lm70/d; # MARKER: R8 Lm70/d; - iget-object v1, p1, Lb80/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lb80/d; a + iget-object v1, p1, Lm70/d;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lm70/d; a invoke-virtual {v1}, Lcom/aspiro/wamp/model/Playlist;->getUuid()Ljava/lang/String; diff --git a/patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali b/patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali index 1aa7857..888dfa8 100644 --- a/patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali +++ b/patches/extension/radiant/gestures/queue/MyAlbumsResolver.smali @@ -25,7 +25,7 @@ return-void .end method -.method private current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lxc/a; # MARKER: R8 Lxc/a; .locals 7 if-eqz p1, :invalid @@ -40,11 +40,11 @@ if-eqz v0, :invalid - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->h:Lad/f; # MARKER: R8 Lad/f; h + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->h:Lyc/f; # MARKER: R8 Lyc/f; h if-eqz v1, :invalid - invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->N()La50/d; # MARKER: R8 La50/d; N + invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->N()Lg40/d; # MARKER: R8 Lg40/d; N move-result-object v0 @@ -72,17 +72,17 @@ move-result-object v0 - instance-of v1, v0, Lzc/a; # MARKER: R8 Lzc/a; + instance-of v1, v0, Lxc/a; # MARKER: R8 Lxc/a; if-eqz v1, :invalid - check-cast v0, Lzc/a; # MARKER: R8 Lzc/a; + check-cast v0, Lxc/a; # MARKER: R8 Lxc/a; - iget-boolean v1, v0, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k + iget-boolean v1, v0, Lxc/a;->k:Z # MARKER: R8 Lxc/a; k if-eqz v1, :invalid - iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b + iget-object v1, v0, Lxc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lxc/a; b invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I @@ -124,7 +124,7 @@ iget v6, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/gestures/queue/MyAlbumsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/MyAlbumsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lxc/a; # MARKER: R8 Lxc/a; move-result-object p1 @@ -140,11 +140,11 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->c:Lfd/c; # MARKER: R8 Lfd/c; c + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView;->c:Ldd/c; # MARKER: R8 Ldd/c; c if-eqz v1, :done - iget-object v2, v1, Lfd/c;->a:Lx40/a; # MARKER: R8 Lfd/c; Lx40/a; a + iget-object v2, v1, Ldd/c;->a:Ld40/a; # MARKER: R8 Ldd/c; Ld40/a; a instance-of v3, v2, Lh4/a; # MARKER: R8 Lh4/a; @@ -156,11 +156,11 @@ move-result-object v3 - iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b + iget-object v4, p1, Lxc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lxc/a; b - iget-object v5, v1, Lfd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lfd/c; d + iget-object v5, v1, Ldd/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Ldd/c; d - iget-object p0, v1, Lfd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lfd/c; c + iget-object p0, v1, Ldd/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ldd/c; c const/4 v1, 0x3 @@ -202,7 +202,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 6 - instance-of v0, p2, Lbd/d$a; # MARKER: R8 Lbd/d$a; + instance-of v0, p2, Lzc/d$a; # MARKER: R8 Lzc/d$a; if-eqz v0, :invalid @@ -221,11 +221,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; # MARKER: R8 La50/d; + instance-of v0, p1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v0, :invalid - check-cast p1, La50/d; # MARKER: R8 La50/d; + check-cast p1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -244,17 +244,17 @@ move-result-object p1 - instance-of v0, p1, Lzc/a; # MARKER: R8 Lzc/a; + instance-of v0, p1, Lxc/a; # MARKER: R8 Lxc/a; if-eqz v0, :invalid - check-cast p1, Lzc/a; # MARKER: R8 Lzc/a; + check-cast p1, Lxc/a; # MARKER: R8 Lxc/a; - iget-boolean v0, p1, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k + iget-boolean v0, p1, Lxc/a;->k:Z # MARKER: R8 Lxc/a; k if-eqz v0, :invalid - iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b + iget-object v0, p1, Lxc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lxc/a; b invoke-virtual {v0}, Lcom/aspiro/wamp/model/Album;->getId()I diff --git a/patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali b/patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali index 595d58e..b72b888 100644 --- a/patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali +++ b/patches/extension/radiant/gestures/queue/MyMixesAndRadioResolver.smali @@ -25,7 +25,7 @@ return-void .end method -.method private current(Lradiant/gestures/queue/QueueRequest;)Lve/a; # MARKER: R8 Lve/a; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lte/a; # MARKER: R8 Lte/a; .locals 6 if-eqz p1, :invalid @@ -48,11 +48,11 @@ if-eqz v1, :invalid - iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; # MARKER: R8 Lpe/f; c + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lne/f; # MARKER: R8 Lne/f; c if-eqz v2, :invalid - invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->N()La50/d; # MARKER: R8 La50/d; N + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->N()Lg40/d; # MARKER: R8 Lg40/d; N move-result-object v1 @@ -80,17 +80,17 @@ move-result-object v1 - instance-of v2, v1, Lve/a; # MARKER: R8 Lve/a; + instance-of v2, v1, Lte/a; # MARKER: R8 Lte/a; if-eqz v2, :invalid - check-cast v1, Lve/a; # MARKER: R8 Lve/a; + check-cast v1, Lte/a; # MARKER: R8 Lte/a; - iget-boolean v2, v1, Lve/a;->f:Z # MARKER: R8 Lve/a; f + iget-boolean v2, v1, Lte/a;->f:Z # MARKER: R8 Lte/a; f if-eqz v2, :invalid - iget-object v2, v1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lve/a; c + iget-object v2, v1, Lte/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lte/a; c if-eqz v2, :invalid @@ -98,7 +98,7 @@ move-result-object v0 - iget-object v3, v1, Lve/a;->a:Ljava/lang/String; # MARKER: R8 Lve/a; a + iget-object v3, v1, Lte/a;->a:Ljava/lang/String; # MARKER: R8 Lte/a; a invoke-virtual {v3, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -156,7 +156,7 @@ iget v7, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/gestures/queue/MyMixesAndRadioResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lve/a; # MARKER: R8 Lve/a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/MyMixesAndRadioResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lte/a; # MARKER: R8 Lte/a; move-result-object p1 @@ -172,11 +172,11 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lpe/f; # MARKER: R8 Lpe/f; c + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView;->c:Lne/f; # MARKER: R8 Lne/f; c if-eqz v1, :done - iget-object v2, v1, Lpe/f;->a:Lx40/a; # MARKER: R8 Lpe/f; Lx40/a; a + iget-object v2, v1, Lne/f;->a:Ld40/a; # MARKER: R8 Lne/f; Ld40/a; a instance-of v3, v2, Lh4/a; # MARKER: R8 Lh4/a; @@ -188,7 +188,7 @@ move-result-object v3 - iget-object v4, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lve/a; c + iget-object v4, p1, Lte/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lte/a; c new-instance v5, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; @@ -196,7 +196,7 @@ invoke-direct {v5, v6}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object p0, v1, Lpe/f;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lpe/f; b + iget-object p0, v1, Lne/f;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lne/f; b const/4 v1, 0x3 @@ -238,7 +238,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Lqe/c$a; # MARKER: R8 Lqe/c$a; + instance-of v0, p2, Loe/d$a; # MARKER: R8 Loe/d$a; if-eqz v0, :invalid @@ -257,11 +257,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; # MARKER: R8 La50/d; + instance-of v0, p1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v0, :invalid - check-cast p1, La50/d; # MARKER: R8 La50/d; + check-cast p1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -285,21 +285,21 @@ move-result-object p1 - instance-of v0, p1, Lve/a; # MARKER: R8 Lve/a; + instance-of v0, p1, Lte/a; # MARKER: R8 Lte/a; if-eqz v0, :invalid - check-cast p1, Lve/a; # MARKER: R8 Lve/a; + check-cast p1, Lte/a; # MARKER: R8 Lte/a; - iget-boolean v0, p1, Lve/a;->f:Z # MARKER: R8 Lve/a; f + iget-boolean v0, p1, Lte/a;->f:Z # MARKER: R8 Lte/a; f if-eqz v0, :invalid - iget-object v0, p1, Lve/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lve/a; c + iget-object v0, p1, Lte/a;->c:Lcom/aspiro/wamp/mix/model/Mix; # MARKER: R8 Lte/a; c if-eqz v0, :invalid - iget-object v1, p1, Lve/a;->a:Ljava/lang/String; # MARKER: R8 Lve/a; a + iget-object v1, p1, Lte/a;->a:Ljava/lang/String; # MARKER: R8 Lte/a; a invoke-virtual {v0}, Lcom/aspiro/wamp/mix/model/Mix;->getId()Ljava/lang/String; diff --git a/patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali b/patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali index 87ebde8..b0235f8 100644 --- a/patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali +++ b/patches/extension/radiant/gestures/queue/MyPlaylistsResolver.smali @@ -25,7 +25,7 @@ return-void .end method -.method private current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; +.method private current(Lradiant/gestures/queue/QueueRequest;)Laf/b; # MARKER: R8 Laf/b; .locals 6 if-eqz p1, :invalid @@ -52,7 +52,7 @@ if-eqz v2, :invalid - invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->N()La50/d; # MARKER: R8 La50/d; N + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->N()Lg40/d; # MARKER: R8 Lg40/d; N move-result-object v1 @@ -80,23 +80,23 @@ move-result-object v1 - instance-of v2, v1, Lcf/b; # MARKER: R8 Lcf/b; + instance-of v2, v1, Laf/b; # MARKER: R8 Laf/b; if-eqz v2, :invalid - check-cast v1, Lcf/b; # MARKER: R8 Lcf/b; + check-cast v1, Laf/b; # MARKER: R8 Laf/b; - iget-boolean v2, v1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h + iget-boolean v2, v1, Laf/b;->h:Z # MARKER: R8 Laf/b; h if-eqz v2, :invalid - iget-boolean v2, v1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f + iget-boolean v2, v1, Laf/b;->f:Z # MARKER: R8 Laf/b; f if-eqz v2, :check_playlist const-string v2, "NOT_READY" - iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g + iget-object v3, v1, Laf/b;->g:Ljava/lang/String; # MARKER: R8 Laf/b; g invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -105,7 +105,7 @@ if-nez v2, :invalid :check_playlist - iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a + iget-object v2, v1, Laf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Laf/b; a invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -159,7 +159,7 @@ iget v5, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/gestures/queue/MyPlaylistsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/MyPlaylistsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Laf/b; # MARKER: R8 Laf/b; move-result-object p1 @@ -175,7 +175,7 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->d:Lhf/c; # MARKER: R8 Lhf/c; d + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView;->d:Lff/c; # MARKER: R8 Lff/c; d if-eqz v1, :done @@ -183,11 +183,11 @@ move-result-object v2 - iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a + iget-object v3, p1, Laf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Laf/b; a - iget-object v4, v1, Lhf/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lhf/c; e + iget-object v4, v1, Lff/c;->e:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lff/c; e - iget-object p0, v1, Lhf/c;->d:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lhf/c; d + iget-object p0, v1, Lff/c;->d:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lff/c; d const/4 v0, 0x3 @@ -216,7 +216,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Ldf/d$a; # MARKER: R8 Ldf/d$a; + instance-of v0, p2, Lbf/d$a; # MARKER: R8 Lbf/d$a; if-eqz v0, :invalid @@ -235,11 +235,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; # MARKER: R8 La50/d; + instance-of v0, p1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v0, :invalid - check-cast p1, La50/d; # MARKER: R8 La50/d; + check-cast p1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -258,23 +258,23 @@ move-result-object p1 - instance-of v0, p1, Lcf/b; # MARKER: R8 Lcf/b; + instance-of v0, p1, Laf/b; # MARKER: R8 Laf/b; if-eqz v0, :invalid - check-cast p1, Lcf/b; # MARKER: R8 Lcf/b; + check-cast p1, Laf/b; # MARKER: R8 Laf/b; - iget-boolean v0, p1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h + iget-boolean v0, p1, Laf/b;->h:Z # MARKER: R8 Laf/b; h if-eqz v0, :invalid - iget-boolean v0, p1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f + iget-boolean v0, p1, Laf/b;->f:Z # MARKER: R8 Laf/b; f if-eqz v0, :check_playlist const-string v0, "NOT_READY" - iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g + iget-object v1, p1, Laf/b;->g:Ljava/lang/String; # MARKER: R8 Laf/b; g invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -283,7 +283,7 @@ if-nez v0, :invalid :check_playlist - iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a + iget-object v0, p1, Laf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Laf/b; a invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I diff --git a/patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali b/patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali index b683b25..b04c4a6 100644 --- a/patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali +++ b/patches/extension/radiant/gestures/queue/PlaylistItemsResolver.smali @@ -36,10 +36,10 @@ invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v2 - instance-of v3, v2, La50/b; # MARKER: R8 La50/b; + instance-of v3, v2, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v3, :invalid - check-cast v2, La50/b; # MARKER: R8 La50/b; - iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + check-cast v2, Lg40/b; # MARKER: R8 Lg40/b; + iget-object v2, v2, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I if-gez v3, :check_size @@ -176,10 +176,10 @@ invoke-virtual {v0}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v0 - instance-of v1, v0, La50/b; # MARKER: R8 La50/b; + instance-of v1, v0, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v1, :invalid - check-cast v0, La50/b; # MARKER: R8 La50/b; - iget-object v0, v0, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + check-cast v0, Lg40/b; # MARKER: R8 Lg40/b; + iget-object v0, v0, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b iget v1, p1, Lradiant/gestures/queue/QueueRequest;->position:I const/4 v2, 0x0 @@ -277,7 +277,7 @@ invoke-static {v3}, Ljava/lang/String;->valueOf(I)Ljava/lang/String; move-result-object v3 sget v4, Lcom/aspiro/wamp/R$string;->recommended_tracks:I - invoke-static {v4}, Lcom/aspiro/wamp/util/h0;->c(I)Ljava/lang/String; # MARKER: R8 Lcom/aspiro/wamp/util/h0; c + invoke-static {v4}, Lcom/aspiro/wamp/util/a0;->c(I)Ljava/lang/String; # MARKER: R8 Lcom/aspiro/wamp/util/a0; c move-result-object v4 iget-object v5, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->h:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 h sget-object v6, Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None;->INSTANCE:Lcom/aspiro/wamp/playqueue/source/model/ItemSource$NavigationType$None; @@ -290,7 +290,7 @@ :append_member iget-object v3, v2, Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;->c:Lcom/aspiro/wamp/playlist/ui/items/a; # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; c if-eqz v3, :done - invoke-interface {v3}, Lcom/aspiro/wamp/playlist/ui/items/a;->k()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel; # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; k + invoke-interface {v3}, Lcom/aspiro/wamp/playlist/ui/items/a;->l()Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel; # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; k move-result-object v3 invoke-virtual {v3}, Lcom/aspiro/wamp/playlist/viewmodel/PlaylistCollectionViewModel;->getPlaylist()Lcom/aspiro/wamp/model/Playlist; move-result-object v3 @@ -342,7 +342,7 @@ if-gez v0, :start_member goto :done :start_member - invoke-interface {v3, v0}, Lcom/aspiro/wamp/playlist/ui/items/a;->i(I)V # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; i + invoke-interface {v3, v0}, Lcom/aspiro/wamp/playlist/ui/items/a;->j(I)V # MARKER: R8 Lcom/aspiro/wamp/playlist/ui/items/a; i :done return-void @@ -365,10 +365,10 @@ :has_position invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object p1 - instance-of v1, p1, La50/b; # MARKER: R8 La50/b; + instance-of v1, p1, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v1, :invalid - check-cast p1, La50/b; # MARKER: R8 La50/b; - iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + check-cast p1, Lg40/b; # MARKER: R8 Lg40/b; + iget-object p1, p1, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b invoke-virtual {p1}, Ljava/util/ArrayList;->size()I move-result v1 if-lt v0, v1, :read_item @@ -378,21 +378,21 @@ invoke-virtual {p1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object; move-result-object p1 - instance-of v1, p2, Lij/q$a; # MARKER: R8 Lij/q$a; + instance-of v1, p2, Lgj/r$a; # MARKER: R8 Lgj/r$a; if-eqz v1, :podcast_holder instance-of v1, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/TrackViewModel; if-eqz v1, :invalid goto :create :podcast_holder - instance-of v1, p2, Lij/a0$a; # MARKER: R8 Lij/a0$a; + instance-of v1, p2, Lgj/b0$a; # MARKER: R8 Lgj/b0$a; if-eqz v1, :suggestion_holder instance-of v1, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/PodcastTrackViewModel; if-eqz v1, :invalid goto :create :suggestion_holder - instance-of p2, p2, Lij/j0$a; # MARKER: R8 Lij/j0$a; + instance-of p2, p2, Lgj/l0$a; # MARKER: R8 Lgj/l0$a; if-eqz p2, :invalid instance-of p2, p1, Lcom/aspiro/wamp/playlist/viewmodel/item/SuggestedTrackViewModel; if-eqz p2, :invalid diff --git a/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali b/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali index 9c46fc4..548694d 100644 --- a/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/PublicPlaylistQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -19,18 +19,18 @@ # direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V # MARKER: R8 Lam0/l; Lm40/e$d; +.method public constructor (Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e$d;)V # MARKER: R8 Lyl0/l; Ls30/e$d; .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->pageId:Ljava/lang/String; iput-object p3, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->moduleUuid:Ljava/lang/String; - iget-object p1, p4, Lm40/e$d;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$d; a + iget-object p1, p4, Ls30/e$d;->a:Ljava/lang/String; # MARKER: R8 Ls30/e$d; a iput-object p1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->itemId:Ljava/lang/String; @@ -42,7 +42,7 @@ .method public invoke(I)Ljava/lang/Object; .locals 7 - iget-object v0, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v0, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v0, :done @@ -66,9 +66,9 @@ invoke-direct/range {v0 .. v6}, Lradiant/gestures/queue/DynamicMediaQueueEvent;->(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;II)V - iget-object v1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v1, p0, Lradiant/gestures/queue/PublicPlaylistQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; - invoke-interface {v1, v0}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v1, v0}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/extension/radiant/gestures/queue/QueueExecutor.smali b/patches/extension/radiant/gestures/queue/QueueExecutor.smali index d345c94..bcf9e58 100644 --- a/patches/extension/radiant/gestures/queue/QueueExecutor.smali +++ b/patches/extension/radiant/gestures/queue/QueueExecutor.smali @@ -64,15 +64,15 @@ if-eqz v0, :done - iget-object v0, v0, Lo3/a;->l:Lcom/aspiro/wamp/module/album/AlbumProvider; # MARKER: R8 Lo3/a; l + iget-object v0, v0, Lo3/a;->m:Lcom/aspiro/wamp/module/album/AlbumProvider; # MARKER: R8 Lo3/a; l if-eqz v0, :done - new-instance v1, Lc3/h; # MARKER: R8 Lc3/h; + new-instance v1, Ld3/f; # MARKER: R8 Ld3/f; - invoke-direct {v1, p1, v0, p2, p3}, Lc3/h;->(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/module/album/AlbumProvider;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V # MARKER: R8 Lc3/h; + invoke-direct {v1, p1, v0, p2, p3}, Ld3/f;->(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/module/album/AlbumProvider;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)V # MARKER: R8 Ld3/f; - invoke-virtual {v1, p0}, Lc3/h;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lc3/h; b + invoke-virtual {v1, p0}, Ld3/f;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Ld3/f; b :done return-void @@ -103,17 +103,17 @@ if-eqz v0, :done - iget-object v0, v0, Lu3/a;->j:Lj3/k$a; # MARKER: R8 Lu3/a; Lj3/k$a; j + iget-object v0, v0, Lu3/a;->j:Lk3/m$a; # MARKER: R8 Lu3/a; Lk3/m$a; j if-eqz v0, :done - invoke-interface {v0, p1, p2, p3}, Lj3/k$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/k; # MARKER: R8 Lj3/k$a; Lj3/k; a + invoke-interface {v0, p1, p2, p3}, Lk3/m$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lk3/m; # MARKER: R8 Lk3/m$a; Lk3/m; a move-result-object v0 if-eqz v0, :done - invoke-virtual {v0, p0}, Lj3/k;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lj3/k; b + invoke-virtual {v0, p0}, Lk3/m;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lk3/m; b :done return-void @@ -180,17 +180,17 @@ move-result-object v1 - check-cast v1, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast v1, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; - invoke-virtual {v1}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playqueue/g1; r2 + invoke-virtual {v1}, Le5/d0$t2;->A2()Lcom/aspiro/wamp/playqueue/x0; # MARKER: R8 Le5/d0$t2; Lcom/aspiro/wamp/playqueue/x0; r2 move-result-object v2 - invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; # MARKER: R8 Lcom/aspiro/wamp/playqueue/g1; Lcom/aspiro/wamp/player/d; a + invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/x0;->a()Lcom/aspiro/wamp/player/c; # MARKER: R8 Lcom/aspiro/wamp/playqueue/x0; Lcom/aspiro/wamp/player/c; a move-result-object v2 - invoke-virtual {v2}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; # MARKER: R8 Lcom/aspiro/wamp/player/d; b + invoke-virtual {v2}, Lcom/aspiro/wamp/player/c;->b()Lcom/aspiro/wamp/model/MediaItemParent; # MARKER: R8 Lcom/aspiro/wamp/player/c; b move-result-object v2 @@ -229,20 +229,20 @@ move-result-object v2 - iget-object v2, v2, Lo3/a;->e:Lc3/i$a; # MARKER: R8 Lo3/a; Lc3/i$a; e + iget-object v2, v2, Lo3/a;->f:Ld3/g$a; # MARKER: R8 Lo3/a; Ld3/g$a; e - invoke-interface {v2, p1, p2, p3}, Lc3/i$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/i; # MARKER: R8 Lc3/i$a; Lc3/i; a + invoke-interface {v2, p1, p2, p3}, Ld3/g$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Ld3/g; # MARKER: R8 Ld3/g$a; Ld3/g; a move-result-object p1 check-cast p0, Landroidx/fragment/app/FragmentActivity; - invoke-virtual {p1, p0}, Lc3/i;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lc3/i; b + invoke-virtual {p1, p0}, Ld3/g;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Ld3/g; b goto :done :play - invoke-virtual {v1}, Le5/z$n2;->u3()Lcom/aspiro/wamp/playback/f; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playback/f; u3 + invoke-virtual {v1}, Le5/d0$t2;->F3()Lcom/aspiro/wamp/playback/e; # MARKER: R8 Le5/d0$t2; Lcom/aspiro/wamp/playback/e; u3 move-result-object p0 @@ -252,7 +252,7 @@ const/4 p2, 0x1 - invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/f;->a(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f; # MARKER: R8 Lcom/aspiro/wamp/playback/f; Lhu/akarnokd/rxjava/interop/f; a + invoke-virtual {p0, p1, p3, p2, v0}, Lcom/aspiro/wamp/playback/e;->a(ILcom/tidal/android/navigation/NavigationInfo;ZLjava/lang/String;)Lhu/akarnokd/rxjava/interop/f; # MARKER: R8 Lcom/aspiro/wamp/playback/e; Lhu/akarnokd/rxjava/interop/f; a move-result-object v0 @@ -271,17 +271,17 @@ move-result-object v0 - check-cast v0, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast v0, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; - invoke-virtual {v0}, Le5/z$n2;->r2()Lcom/aspiro/wamp/playqueue/g1; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playqueue/g1; r2 + invoke-virtual {v0}, Le5/d0$t2;->A2()Lcom/aspiro/wamp/playqueue/x0; # MARKER: R8 Le5/d0$t2; Lcom/aspiro/wamp/playqueue/x0; r2 move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; # MARKER: R8 Lcom/aspiro/wamp/playqueue/g1; Lcom/aspiro/wamp/player/d; a + invoke-virtual {v0}, Lcom/aspiro/wamp/playqueue/x0;->a()Lcom/aspiro/wamp/player/c; # MARKER: R8 Lcom/aspiro/wamp/playqueue/x0; Lcom/aspiro/wamp/player/c; a move-result-object v0 - invoke-virtual {v0}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; # MARKER: R8 Lcom/aspiro/wamp/player/d; b + invoke-virtual {v0}, Lcom/aspiro/wamp/player/c;->b()Lcom/aspiro/wamp/model/MediaItemParent; # MARKER: R8 Lcom/aspiro/wamp/player/c; b move-result-object v0 @@ -343,15 +343,15 @@ move-result-object v1 - iget-object v1, v1, Lu3/a;->e:Lj3/n$a; # MARKER: R8 Lu3/a; Lj3/n$a; e + iget-object v1, v1, Lu3/a;->e:Lk3/p$a; # MARKER: R8 Lu3/a; Lk3/p$a; e - invoke-interface {v1, p1, p2, p3}, Lj3/n$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/n; # MARKER: R8 Lj3/n$a; Lj3/n; a + invoke-interface {v1, p1, p2, p3}, Lk3/p$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lk3/p; # MARKER: R8 Lk3/p$a; Lk3/p; a move-result-object p1 check-cast p0, Landroidx/fragment/app/FragmentActivity; - invoke-virtual {p1, p0}, Lj3/n;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lj3/n; b + invoke-virtual {p1, p0}, Lk3/p;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lk3/p; b goto :done @@ -364,9 +364,9 @@ move-result-object p0 - check-cast p0, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast p0, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; - invoke-virtual {p0}, Le5/z$n2;->x3()Lcom/aspiro/wamp/playback/e0; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playback/e0; x3 + invoke-virtual {p0}, Le5/d0$t2;->I3()Lcom/aspiro/wamp/playback/e0; # MARKER: R8 Le5/d0$t2; Lcom/aspiro/wamp/playback/e0; x3 move-result-object p0 @@ -403,7 +403,7 @@ move-result-object v0 - check-cast v0, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast v0, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; invoke-static {}, Lradiant/gestures/queue/QueueExecutor;->hasActiveQueue()Z @@ -436,9 +436,9 @@ :has_activity - iget-object v1, v0, Le5/z$n2;->w8:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; w8 + iget-object v1, v0, Le5/d0$t2;->e9:Ldagger/internal/f; # MARKER: R8 Le5/d0$t2; Ldagger/internal/f; w8 - invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; + invoke-interface {v1}, Lol0/a;->get()Ljava/lang/Object; # MARKER: R8 Lol0/a; move-result-object v1 @@ -455,7 +455,7 @@ goto :done :play - invoke-virtual {v0}, Le5/z$n2;->y3()Lcom/aspiro/wamp/playback/k0; # MARKER: R8 Le5/z$n2; Lcom/aspiro/wamp/playback/k0; y3 + invoke-virtual {v0}, Le5/d0$t2;->J3()Lcom/aspiro/wamp/playback/k0; # MARKER: R8 Le5/d0$t2; Lcom/aspiro/wamp/playback/k0; y3 move-result-object p0 @@ -492,13 +492,13 @@ move-result-object v1 - iget-object v1, v1, Lo3/a;->d:Lc3/l$a; # MARKER: R8 Lo3/a; Lc3/l$a; d + iget-object v1, v1, Lo3/a;->e:Ld3/j$a; # MARKER: R8 Lo3/a; Ld3/j$a; d - invoke-interface {v1, p1, p2, p3}, Lc3/l$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lc3/l; # MARKER: R8 Lc3/l$a; Lc3/l; a + invoke-interface {v1, p1, p2, p3}, Ld3/j$a;->a(Lcom/aspiro/wamp/model/Album;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Ld3/j; # MARKER: R8 Ld3/j$a; Ld3/j; a move-result-object p1 - invoke-virtual {p1, p0}, Lc3/l;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lc3/l; b + invoke-virtual {p1, p0}, Ld3/j;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Ld3/j; b goto :done @@ -538,13 +538,13 @@ move-result-object v1 - iget-object v1, v1, Lu3/a;->d:Lj3/q$a; # MARKER: R8 Lu3/a; Lj3/q$a; d + iget-object v1, v1, Lu3/a;->d:Lk3/s$a; # MARKER: R8 Lu3/a; Lk3/s$a; d - invoke-interface {v1, p1, p2, p3}, Lj3/q$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lj3/q; # MARKER: R8 Lj3/q$a; Lj3/q; a + invoke-interface {v1, p1, p2, p3}, Lk3/s$a;->a(Lcom/aspiro/wamp/mix/model/Mix;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lk3/s; # MARKER: R8 Lk3/s$a; Lk3/s; a move-result-object p1 - invoke-virtual {p1, p0}, Lj3/q;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lj3/q; b + invoke-virtual {p1, p0}, Lk3/s;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lk3/s; b goto :done @@ -588,21 +588,21 @@ move-result-object v0 - check-cast v0, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast v0, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; - iget-object v0, v0, Le5/z$n2;->v8:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; v8 + iget-object v0, v0, Le5/d0$t2;->d9:Ldagger/internal/f; # MARKER: R8 Le5/d0$t2; Ldagger/internal/f; v8 - invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; + invoke-interface {v0}, Lol0/a;->get()Ljava/lang/Object; # MARKER: R8 Lol0/a; move-result-object v0 - check-cast v0, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; + check-cast v0, Lcom/aspiro/wamp/contextmenu/item/playlist/z$a; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/z$a; - invoke-interface {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/u$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/u; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/u$a; Lcom/aspiro/wamp/contextmenu/item/playlist/u; a + invoke-interface {v0, p1, p2, p3}, Lcom/aspiro/wamp/contextmenu/item/playlist/z$a;->a(Lcom/aspiro/wamp/model/Playlist;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/contextmenu/item/playlist/z; # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/z$a; Lcom/aspiro/wamp/contextmenu/item/playlist/z; a move-result-object p1 - invoke-virtual {p1, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/u;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/u; b + invoke-virtual {p1, p0}, Lcom/aspiro/wamp/contextmenu/item/playlist/z;->b(Landroidx/fragment/app/FragmentActivity;)V # MARKER: R8 Lcom/aspiro/wamp/contextmenu/item/playlist/z; b goto :done @@ -640,11 +640,11 @@ move-result-object v1 - check-cast v1, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast v1, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; - iget-object v1, v1, Le5/z$n2;->K9:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; K9 + iget-object v1, v1, Le5/d0$t2;->ga:Ldagger/internal/f; # MARKER: R8 Le5/d0$t2; Ldagger/internal/f; K9 - invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; + invoke-interface {v1}, Lol0/a;->get()Ljava/lang/Object; # MARKER: R8 Lol0/a; move-result-object v1 @@ -707,11 +707,11 @@ move-result-object v1 - check-cast v1, Le5/z$n2; # MARKER: R8 Le5/z$n2; + check-cast v1, Le5/d0$t2; # MARKER: R8 Le5/d0$t2; - iget-object v1, v1, Le5/z$n2;->k9:Ldagger/internal/f; # MARKER: R8 Le5/z$n2; Ldagger/internal/f; k9 + iget-object v1, v1, Le5/d0$t2;->Z9:Ldagger/internal/f; # MARKER: R8 Le5/d0$t2; Ldagger/internal/f; k9 - invoke-interface {v1}, Lql0/a;->get()Ljava/lang/Object; # MARKER: R8 Lql0/a; + invoke-interface {v1}, Lol0/a;->get()Ljava/lang/Object; # MARKER: R8 Lol0/a; move-result-object v1 diff --git a/patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali b/patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali index 742cf12..71ad3e0 100644 --- a/patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali +++ b/patches/extension/radiant/gestures/queue/SearchAlbumsResolver.smali @@ -25,7 +25,7 @@ return-void .end method -.method private current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; +.method private current(Lradiant/gestures/queue/QueueRequest;)Lxc/a; # MARKER: R8 Lxc/a; .locals 5 if-eqz p1, :invalid @@ -40,11 +40,11 @@ if-eqz v0, :invalid - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->f:Lid/e; # MARKER: R8 Lid/e; f + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->f:Lgd/e; # MARKER: R8 Lgd/e; f if-eqz v1, :invalid - invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->N()La50/d; # MARKER: R8 La50/d; N + invoke-virtual {v0}, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->N()Lg40/d; # MARKER: R8 Lg40/d; N move-result-object v0 @@ -72,17 +72,17 @@ move-result-object v0 - instance-of v1, v0, Lzc/a; # MARKER: R8 Lzc/a; + instance-of v1, v0, Lxc/a; # MARKER: R8 Lxc/a; if-eqz v1, :invalid - check-cast v0, Lzc/a; # MARKER: R8 Lzc/a; + check-cast v0, Lxc/a; # MARKER: R8 Lxc/a; - iget-boolean v1, v0, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k + iget-boolean v1, v0, Lxc/a;->k:Z # MARKER: R8 Lxc/a; k if-eqz v1, :invalid - iget-object v1, v0, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b + iget-object v1, v0, Lxc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lxc/a; b invoke-virtual {v1}, Lcom/aspiro/wamp/model/Album;->getId()I @@ -124,7 +124,7 @@ iget v6, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/gestures/queue/SearchAlbumsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lzc/a; # MARKER: R8 Lzc/a; + invoke-direct {p0, p1}, Lradiant/gestures/queue/SearchAlbumsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lxc/a; # MARKER: R8 Lxc/a; move-result-object p1 @@ -140,11 +140,11 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->c:Lld/c; # MARKER: R8 Lld/c; c + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView;->c:Ljd/b; # MARKER: R8 Ljd/b; c if-eqz v1, :done - iget-object v2, v1, Lld/c;->a:Lx40/a; # MARKER: R8 Lld/c; Lx40/a; a + iget-object v2, v1, Ljd/b;->a:Ld40/a; # MARKER: R8 Ljd/b; Ld40/a; a instance-of v3, v2, Lh4/a; # MARKER: R8 Lh4/a; @@ -156,11 +156,11 @@ move-result-object v3 - iget-object v4, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b + iget-object v4, p1, Lxc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lxc/a; b - iget-object v5, v1, Lld/c;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lld/c; d + iget-object v5, v1, Ljd/b;->d:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Ljd/b; d - iget-object p0, v1, Lld/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lld/c; c + iget-object p0, v1, Ljd/b;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ljd/b; c const/4 v1, 0x3 @@ -202,7 +202,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Ljd/d$a; # MARKER: R8 Ljd/d$a; + instance-of v0, p2, Lhd/d$a; # MARKER: R8 Lhd/d$a; if-eqz v0, :invalid @@ -221,11 +221,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; # MARKER: R8 La50/d; + instance-of v0, p1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v0, :invalid - check-cast p1, La50/d; # MARKER: R8 La50/d; + check-cast p1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -244,17 +244,17 @@ move-result-object p1 - instance-of v0, p1, Lzc/a; # MARKER: R8 Lzc/a; + instance-of v0, p1, Lxc/a; # MARKER: R8 Lxc/a; if-eqz v0, :invalid - check-cast p1, Lzc/a; # MARKER: R8 Lzc/a; + check-cast p1, Lxc/a; # MARKER: R8 Lxc/a; - iget-boolean v0, p1, Lzc/a;->k:Z # MARKER: R8 Lzc/a; k + iget-boolean v0, p1, Lxc/a;->k:Z # MARKER: R8 Lxc/a; k if-eqz v0, :invalid - iget-object v0, p1, Lzc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lzc/a; b + iget-object v0, p1, Lxc/a;->b:Lcom/aspiro/wamp/model/Album; # MARKER: R8 Lxc/a; b invoke-virtual {v0}, Lcom/aspiro/wamp/model/Album;->getId()I diff --git a/patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali b/patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali index 4b1e9dd..32ded55 100644 --- a/patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali +++ b/patches/extension/radiant/gestures/queue/SearchPlaylistsResolver.smali @@ -25,7 +25,7 @@ return-void .end method -.method private current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; +.method private current(Lradiant/gestures/queue/QueueRequest;)Laf/b; # MARKER: R8 Laf/b; .locals 6 if-eqz p1, :invalid @@ -48,11 +48,11 @@ if-eqz v1, :invalid - iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->g:Lwf/d; # MARKER: R8 Lwf/d; g + iget-object v2, v1, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->g:Luf/d; # MARKER: R8 Luf/d; g if-eqz v2, :invalid - invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->N()La50/d; # MARKER: R8 La50/d; N + invoke-virtual {v1}, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->N()Lg40/d; # MARKER: R8 Lg40/d; N move-result-object v1 @@ -80,23 +80,23 @@ move-result-object v1 - instance-of v2, v1, Lcf/b; # MARKER: R8 Lcf/b; + instance-of v2, v1, Laf/b; # MARKER: R8 Laf/b; if-eqz v2, :invalid - check-cast v1, Lcf/b; # MARKER: R8 Lcf/b; + check-cast v1, Laf/b; # MARKER: R8 Laf/b; - iget-boolean v2, v1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h + iget-boolean v2, v1, Laf/b;->h:Z # MARKER: R8 Laf/b; h if-eqz v2, :invalid - iget-boolean v2, v1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f + iget-boolean v2, v1, Laf/b;->f:Z # MARKER: R8 Laf/b; f if-eqz v2, :check_playlist const-string v2, "NOT_READY" - iget-object v3, v1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g + iget-object v3, v1, Laf/b;->g:Ljava/lang/String; # MARKER: R8 Laf/b; g invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -105,7 +105,7 @@ if-nez v2, :invalid :check_playlist - iget-object v2, v1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a + iget-object v2, v1, Laf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Laf/b; a invoke-virtual {v2}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I @@ -159,7 +159,7 @@ iget v6, p1, Lradiant/gestures/queue/QueueRequest;->action:I - invoke-direct {p0, p1}, Lradiant/gestures/queue/SearchPlaylistsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Lcf/b; # MARKER: R8 Lcf/b; + invoke-direct {p0, p1}, Lradiant/gestures/queue/SearchPlaylistsResolver;->current(Lradiant/gestures/queue/QueueRequest;)Laf/b; # MARKER: R8 Laf/b; move-result-object p1 @@ -175,7 +175,7 @@ if-eqz v0, :done - iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->c:Lzf/c; # MARKER: R8 Lzf/c; c + iget-object v1, v0, Lcom/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView;->c:Lxf/c; # MARKER: R8 Lxf/c; c if-eqz v1, :done @@ -183,7 +183,7 @@ move-result-object v2 - iget-object v3, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a + iget-object v3, p1, Laf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Laf/b; a new-instance v4, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; @@ -191,7 +191,7 @@ invoke-direct {v4, v5}, Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;->(Ljava/lang/String;)V - iget-object p0, v1, Lzf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lzf/c; c + iget-object p0, v1, Lxf/c;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lxf/c; c const/4 v0, 0x3 @@ -220,7 +220,7 @@ .method public resolve(Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)Lradiant/gestures/queue/QueueRequest; .locals 5 - instance-of v0, p2, Lxf/d$a; # MARKER: R8 Lxf/d$a; + instance-of v0, p2, Lvf/c$a; # MARKER: R8 Lvf/c$a; if-eqz v0, :invalid @@ -239,11 +239,11 @@ move-result-object p1 - instance-of v0, p1, La50/d; # MARKER: R8 La50/d; + instance-of v0, p1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v0, :invalid - check-cast p1, La50/d; # MARKER: R8 La50/d; + check-cast p1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; @@ -262,23 +262,23 @@ move-result-object p1 - instance-of v0, p1, Lcf/b; # MARKER: R8 Lcf/b; + instance-of v0, p1, Laf/b; # MARKER: R8 Laf/b; if-eqz v0, :invalid - check-cast p1, Lcf/b; # MARKER: R8 Lcf/b; + check-cast p1, Laf/b; # MARKER: R8 Laf/b; - iget-boolean v0, p1, Lcf/b;->h:Z # MARKER: R8 Lcf/b; h + iget-boolean v0, p1, Laf/b;->h:Z # MARKER: R8 Laf/b; h if-eqz v0, :invalid - iget-boolean v0, p1, Lcf/b;->f:Z # MARKER: R8 Lcf/b; f + iget-boolean v0, p1, Laf/b;->f:Z # MARKER: R8 Laf/b; f if-eqz v0, :check_playlist const-string v0, "NOT_READY" - iget-object v1, p1, Lcf/b;->g:Ljava/lang/String; # MARKER: R8 Lcf/b; g + iget-object v1, p1, Laf/b;->g:Ljava/lang/String; # MARKER: R8 Laf/b; g invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z @@ -287,7 +287,7 @@ if-nez v0, :invalid :check_playlist - iget-object v0, p1, Lcf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Lcf/b; a + iget-object v0, p1, Laf/b;->a:Lcom/aspiro/wamp/model/Playlist; # MARKER: R8 Laf/b; a invoke-virtual {v0}, Lcom/aspiro/wamp/model/Playlist;->getNumberOfItems()I diff --git a/patches/extension/radiant/gestures/queue/SuggestionsResolver.smali b/patches/extension/radiant/gestures/queue/SuggestionsResolver.smali index 6210e4e..f174032 100644 --- a/patches/extension/radiant/gestures/queue/SuggestionsResolver.smali +++ b/patches/extension/radiant/gestures/queue/SuggestionsResolver.smali @@ -78,13 +78,13 @@ move-result-object v2 - instance-of v3, v2, La50/b; # MARKER: R8 La50/b; + instance-of v3, v2, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v3, :invalid - check-cast v2, La50/b; # MARKER: R8 La50/b; + check-cast v2, Lg40/b; # MARKER: R8 Lg40/b; - iget-object v2, v2, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + iget-object v2, v2, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I @@ -160,17 +160,17 @@ if-eqz v4, :invalid - invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/m; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/m; move-result-object v1 - instance-of v4, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + instance-of v4, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; if-eqz v4, :invalid - check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; - iget-object v1, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->o:Ljava/lang/Object; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; o + iget-object v1, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/e1;->o:Ljava/lang/Object; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; o instance-of v4, v1, Ljava/util/List; @@ -220,24 +220,24 @@ move-result-object v0 - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/i; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i; if-eqz v1, :dialog - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/i; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; d + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/i;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i; d return-object v0 :dialog - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; if-eqz v1, :invalid - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; d + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0;->d:Lcom/aspiro/wamp/model/AvailabilityInteractor; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; d return-object v0 @@ -264,7 +264,7 @@ return-void .end method -.method private viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/l; +.method private viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/m; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/m; .locals 2 iget-object v0, p0, Lradiant/gestures/queue/SuggestionsResolver;->host:Ljava/lang/ref/WeakReference; @@ -273,24 +273,24 @@ move-result-object v0 - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/i; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i; if-eqz v1, :dialog - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/i; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/h;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/h; Lcom/aspiro/wamp/nowplaying/view/suggestions/l; c + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/i;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/m; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i; Lcom/aspiro/wamp/nowplaying/view/suggestions/m; c return-object v0 :dialog - instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + instance-of v1, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; if-eqz v1, :invalid - check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; + check-cast v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; - iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/o0; Lcom/aspiro/wamp/nowplaying/view/suggestions/l; c + iget-object v0, v0, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0;->c:Lcom/aspiro/wamp/nowplaying/view/suggestions/m; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/q0; Lcom/aspiro/wamp/nowplaying/view/suggestions/m; c return-object v0 @@ -311,7 +311,7 @@ if-eqz v0, :done - invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/l; + invoke-direct {p0}, Lradiant/gestures/queue/SuggestionsResolver;->viewModel()Lcom/aspiro/wamp/nowplaying/view/suggestions/m; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/m; move-result-object v1 @@ -354,9 +354,9 @@ move-result-object v4 - check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; + check-cast v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; - iget-object v5, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/a1;->j:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/a1; j + iget-object v5, v1, Lcom/aspiro/wamp/nowplaying/view/suggestions/e1;->j:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/e1; j invoke-static {v3, v4, v5}, Lcom/aspiro/wamp/playqueue/source/model/b;->p(Ljava/lang/String;Ljava/util/List;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; p @@ -404,19 +404,19 @@ if-eqz v2, :empty_queue - new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; + new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/j$a; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/j$a; - invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a;->(I)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$a; + invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/j$a;->(I)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/j$a; goto :emit :empty_queue - new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; + new-instance v2, Lcom/aspiro/wamp/nowplaying/view/suggestions/j$e; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/j$e; - invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e;->(I)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/i$e; + invoke-direct {v2, p1}, Lcom/aspiro/wamp/nowplaying/view/suggestions/j$e;->(I)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/j$e; :emit - invoke-interface {v1, v2}, Lcom/aspiro/wamp/nowplaying/view/suggestions/j;->a(Lcom/aspiro/wamp/nowplaying/view/suggestions/i;)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/j; Lcom/aspiro/wamp/nowplaying/view/suggestions/i; a + invoke-interface {v1, v2}, Lcom/aspiro/wamp/nowplaying/view/suggestions/k;->a(Lcom/aspiro/wamp/nowplaying/view/suggestions/j;)V # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/k; Lcom/aspiro/wamp/nowplaying/view/suggestions/j; a :done return-void @@ -433,7 +433,7 @@ if-ne v0, p1, :invalid - instance-of v0, p2, Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/y$a; + instance-of v0, p2, Lcom/aspiro/wamp/nowplaying/view/suggestions/z$a; # MARKER: R8 Lcom/aspiro/wamp/nowplaying/view/suggestions/z$a; if-eqz v0, :invalid @@ -450,13 +450,13 @@ move-result-object p1 - instance-of v0, p1, La50/b; # MARKER: R8 La50/b; + instance-of v0, p1, Lg40/b; # MARKER: R8 Lg40/b; if-eqz v0, :invalid - check-cast p1, La50/b; # MARKER: R8 La50/b; + check-cast p1, Lg40/b; # MARKER: R8 Lg40/b; - iget-object p1, p1, La50/b;->b:Ljava/util/ArrayList; # MARKER: R8 La50/b; b + iget-object p1, p1, Lg40/b;->b:Ljava/util/ArrayList; # MARKER: R8 Lg40/b; b invoke-virtual {p1}, Ljava/util/ArrayList;->size()I diff --git a/patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali b/patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali index da3a0df..6dc2d9e 100644 --- a/patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali +++ b/patches/extension/radiant/gestures/queue/UnifiedSearchResolver.smali @@ -36,9 +36,9 @@ if-eqz v1, :invalid invoke-virtual {v1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object v1 - instance-of v2, v1, La50/d; # MARKER: R8 La50/d; + instance-of v2, v1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v2, :invalid - check-cast v1, La50/d; # MARKER: R8 La50/d; + check-cast v1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {v1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; move-result-object v1 @@ -138,7 +138,7 @@ move-result-object v2 check-cast v2, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; if-eqz v2, :invalid - invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N + invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/j; # MARKER: R8 Ltl/j; N move-result-object v2 instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; if-eqz v4, :invalid @@ -181,7 +181,7 @@ move-result-object v2 check-cast v2, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; if-eqz v2, :invalid - invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N + invoke-virtual {v2}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/j; # MARKER: R8 Ltl/j; N move-result-object v2 instance-of v4, v2, Lcom/aspiro/wamp/search/v2/d; # MARKER: R8 Lcom/aspiro/wamp/search/v2/d; if-eqz v4, :invalid @@ -225,12 +225,12 @@ move-result-object v1 check-cast v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView; if-eqz v1, :done - iget-object v2, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->c:Ltl/q; # MARKER: R8 Ltl/q; c + iget-object v2, v1, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->c:Ltl/r; # MARKER: R8 Ltl/r; c if-eqz v2, :done invoke-static {v0}, Lbm/i;->a(Lbm/h;)Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; # MARKER: R8 Lbm/i; Lbm/h; a move-result-object v3 - iget-object v4, v2, Ltl/q;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ltl/q; c + iget-object v4, v2, Ltl/r;->c:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Ltl/r; c instance-of v5, v0, Lbm/k; # MARKER: R8 Lbm/k; if-eqz v5, :album @@ -245,9 +245,9 @@ new-instance v2, Lcom/aspiro/wamp/search/v2/a$g; # MARKER: R8 Lcom/aspiro/wamp/search/v2/a$g; iget v3, p1, Lradiant/gestures/queue/QueueRequest;->position:I invoke-direct {v2, v0, v3}, Lcom/aspiro/wamp/search/v2/a$g;->(Lbm/h;I)V # MARKER: R8 Lcom/aspiro/wamp/search/v2/a$g; Lbm/h; - invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N + invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/j; # MARKER: R8 Ltl/j; N move-result-object v0 - invoke-interface {v0, v2}, Ltl/f;->e(Lcom/aspiro/wamp/search/v2/a;)V # MARKER: R8 Ltl/f; Lcom/aspiro/wamp/search/v2/a; e + invoke-interface {v0, v2}, Ltl/h;->e(Lcom/aspiro/wamp/search/v2/a;)V # MARKER: R8 Ltl/h; Lcom/aspiro/wamp/search/v2/a; e goto :done :append_track @@ -255,9 +255,9 @@ iget-object p1, v5, Lbm/k;->n:Lcom/aspiro/wamp/search/SearchDataSource; # MARKER: R8 Lbm/k; n sget-object v0, Lcom/aspiro/wamp/search/SearchDataSource;->REMOTE:Lcom/aspiro/wamp/search/SearchDataSource; if-ne p1, v0, :query_ready - invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/h; # MARKER: R8 Ltl/h; N + invoke-virtual {v1}, Lcom/aspiro/wamp/search/v2/UnifiedSearchView;->N()Ltl/j; # MARKER: R8 Ltl/j; N move-result-object p1 - invoke-interface {p1}, Ltl/h;->c()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery; # MARKER: R8 Ltl/h; c + invoke-interface {p1}, Ltl/j;->c()Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery; # MARKER: R8 Ltl/j; c move-result-object p1 iget-object v7, p1, Lcom/aspiro/wamp/search/v2/model/UnifiedSearchQuery;->a:Ljava/lang/String; # MARKER: R8 a :query_ready @@ -270,7 +270,7 @@ invoke-static {v4}, Lcom/tidal/android/navigation/a;->b(Lcom/tidal/android/navigation/NavigationInfo;)Lcom/tidal/android/navigation/NavigationInfo$Node; # MARKER: R8 Lcom/tidal/android/navigation/a; b move-result-object v0 :nav_ready - invoke-static {p1, v7, v0}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Ljava/lang/String;Ljava/lang/String;Lcom/tidal/android/navigation/NavigationInfo;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o + invoke-static {v0, p1, v7}, Lcom/aspiro/wamp/playqueue/source/model/b;->o(Lcom/tidal/android/navigation/NavigationInfo;Ljava/lang/String;Ljava/lang/String;)Lcom/aspiro/wamp/playqueue/source/model/ItemSource; # MARKER: R8 Lcom/aspiro/wamp/playqueue/source/model/b; o move-result-object p1 invoke-virtual {p1, v6}, Lcom/aspiro/wamp/playqueue/source/model/Source;->addSourceItem(Lcom/aspiro/wamp/model/MediaItem;)V invoke-virtual {v1}, Landroidx/fragment/app/Fragment;->getContext()Landroid/content/Context; @@ -298,7 +298,7 @@ :album instance-of v5, v0, Lbm/a; # MARKER: R8 Lbm/a; if-eqz v5, :playlist - iget-object v5, v2, Ltl/q;->a:Lx40/a; # MARKER: R8 Ltl/q; Lx40/a; a + iget-object v5, v2, Ltl/r;->a:Ld40/a; # MARKER: R8 Ltl/r; Ld40/a; a instance-of v6, v5, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v6, :done check-cast v5, Lh4/a; # MARKER: R8 Lh4/a; @@ -360,7 +360,7 @@ :mix instance-of v5, v0, Lbm/f; # MARKER: R8 Lbm/f; if-eqz v5, :done - iget-object v5, v2, Ltl/q;->a:Lx40/a; # MARKER: R8 Ltl/q; Lx40/a; a + iget-object v5, v2, Ltl/r;->a:Ld40/a; # MARKER: R8 Ltl/r; Ld40/a; a instance-of v6, v5, Lh4/a; # MARKER: R8 Lh4/a; if-eqz v6, :done check-cast v5, Lh4/a; # MARKER: R8 Lh4/a; @@ -412,9 +412,9 @@ :has_position invoke-virtual {p1}, Landroidx/recyclerview/widget/RecyclerView;->getAdapter()Landroidx/recyclerview/widget/RecyclerView$Adapter; move-result-object p1 - instance-of v1, p1, La50/d; # MARKER: R8 La50/d; + instance-of v1, p1, Lg40/d; # MARKER: R8 Lg40/d; if-eqz v1, :invalid - check-cast p1, La50/d; # MARKER: R8 La50/d; + check-cast p1, Lg40/d; # MARKER: R8 Lg40/d; invoke-virtual {p1}, Landroidx/recyclerview/widget/ListAdapter;->getCurrentList()Ljava/util/List; move-result-object p1 invoke-interface {p1}, Ljava/util/List;->size()I @@ -425,7 +425,7 @@ invoke-interface {p1, v0}, Ljava/util/List;->get(I)Ljava/lang/Object; move-result-object p1 - instance-of v1, p2, Lul/n0$a; # MARKER: R8 Lul/n0$a; + instance-of v1, p2, Lul/j0$a; # MARKER: R8 Lul/j0$a; if-eqz v1, :album_holder instance-of v1, p1, Lbm/k; # MARKER: R8 Lbm/k; if-eqz v1, :invalid @@ -449,7 +449,7 @@ goto :create :playlist_holder - instance-of v1, p2, Lul/a0$a; # MARKER: R8 Lul/a0$a; + instance-of v1, p2, Lul/x$a; # MARKER: R8 Lul/x$a; if-eqz v1, :mix_holder instance-of v1, p1, Lbm/g; # MARKER: R8 Lbm/g; if-eqz v1, :invalid @@ -463,7 +463,7 @@ goto :create :mix_holder - instance-of p2, p2, Lul/w$a; # MARKER: R8 Lul/w$a; + instance-of p2, p2, Lul/t$a; # MARKER: R8 Lul/t$a; if-eqz p2, :invalid instance-of p2, p1, Lbm/f; # MARKER: R8 Lbm/f; if-eqz p2, :invalid diff --git a/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali b/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali index 6904c1b..cd8c4d0 100644 --- a/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/VerticalMediaQueueAction.smali @@ -17,7 +17,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -31,24 +31,24 @@ # direct methods -.method public constructor (Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V # MARKER: R8 Lam0/l; Lm40/e; +.method public constructor (Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e;)V # MARKER: R8 Lyl0/l; Ls30/e; .locals 3 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; iput-object p2, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->pageId:Ljava/lang/String; iput-object p3, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->moduleUuid:Ljava/lang/String; - instance-of v0, p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + instance-of v0, p4, Ls30/e$a; # MARKER: R8 Ls30/e$a; if-eqz v0, :mix - check-cast p4, Lm40/e$a; # MARKER: R8 Lm40/e$a; + check-cast p4, Ls30/e$a; # MARKER: R8 Ls30/e$a; - iget-wide v0, p4, Lm40/e$a;->a:J # MARKER: R8 Lm40/e$a; a + iget-wide v0, p4, Ls30/e$a;->a:J # MARKER: R8 Ls30/e$a; a invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; @@ -59,39 +59,39 @@ goto :store :mix - instance-of v0, p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + instance-of v0, p4, Ls30/e$c; # MARKER: R8 Ls30/e$c; if-eqz v0, :playlist - check-cast p4, Lm40/e$c; # MARKER: R8 Lm40/e$c; + check-cast p4, Ls30/e$c; # MARKER: R8 Ls30/e$c; - iget-object v0, p4, Lm40/e$c;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$c; a + iget-object v0, p4, Ls30/e$c;->a:Ljava/lang/String; # MARKER: R8 Ls30/e$c; a const/4 v1, 0x2 goto :store :playlist - instance-of v0, p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + instance-of v0, p4, Ls30/e$d; # MARKER: R8 Ls30/e$d; if-eqz v0, :track - check-cast p4, Lm40/e$d; # MARKER: R8 Lm40/e$d; + check-cast p4, Ls30/e$d; # MARKER: R8 Ls30/e$d; - iget-object v0, p4, Lm40/e$d;->a:Ljava/lang/String; # MARKER: R8 Lm40/e$d; a + iget-object v0, p4, Ls30/e$d;->a:Ljava/lang/String; # MARKER: R8 Ls30/e$d; a const/4 v1, 0x3 goto :store :track - instance-of v0, p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + instance-of v0, p4, Ls30/e$e; # MARKER: R8 Ls30/e$e; if-eqz v0, :unsupported - check-cast p4, Lm40/e$e; # MARKER: R8 Lm40/e$e; + check-cast p4, Ls30/e$e; # MARKER: R8 Ls30/e$e; - iget-wide v0, p4, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + iget-wide v0, p4, Ls30/e$e;->a:J # MARKER: R8 Ls30/e$e; a invoke-static {v0, v1}, Ljava/lang/String;->valueOf(J)Ljava/lang/String; @@ -114,49 +114,49 @@ return-void .end method -.method public static isEligible(Lm40/e;)Z # MARKER: R8 Lm40/e; +.method public static isEligible(Ls30/e;)Z # MARKER: R8 Ls30/e; .locals 1 - instance-of v0, p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + instance-of v0, p0, Ls30/e$a; # MARKER: R8 Ls30/e$a; if-eqz v0, :mix - check-cast p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + check-cast p0, Ls30/e$a; # MARKER: R8 Ls30/e$a; - iget-boolean p0, p0, Lm40/e$a;->e:Z # MARKER: R8 Lm40/e$a; e + iget-boolean p0, p0, Ls30/e$a;->e:Z # MARKER: R8 Ls30/e$a; e return p0 :mix - instance-of v0, p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + instance-of v0, p0, Ls30/e$c; # MARKER: R8 Ls30/e$c; if-eqz v0, :playlist - check-cast p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + check-cast p0, Ls30/e$c; # MARKER: R8 Ls30/e$c; - iget-boolean p0, p0, Lm40/e$c;->h:Z # MARKER: R8 Lm40/e$c; h + iget-boolean p0, p0, Ls30/e$c;->h:Z # MARKER: R8 Ls30/e$c; h return p0 :playlist - instance-of v0, p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + instance-of v0, p0, Ls30/e$d; # MARKER: R8 Ls30/e$d; if-eqz v0, :track - check-cast p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + check-cast p0, Ls30/e$d; # MARKER: R8 Ls30/e$d; - iget-boolean p0, p0, Lm40/e$d;->g:Z # MARKER: R8 Lm40/e$d; g + iget-boolean p0, p0, Ls30/e$d;->g:Z # MARKER: R8 Ls30/e$d; g return p0 :track - instance-of v0, p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + instance-of v0, p0, Ls30/e$e; # MARKER: R8 Ls30/e$e; if-eqz v0, :invalid - check-cast p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + check-cast p0, Ls30/e$e; # MARKER: R8 Ls30/e$e; - iget-boolean p0, p0, Lm40/e$e;->j:Z # MARKER: R8 Lm40/e$e; j + iget-boolean p0, p0, Ls30/e$e;->j:Z # MARKER: R8 Ls30/e$e; j return p0 @@ -166,22 +166,22 @@ return p0 .end method -.method public static isSupported(Lm40/e;)Z # MARKER: R8 Lm40/e; +.method public static isSupported(Ls30/e;)Z # MARKER: R8 Ls30/e; .locals 1 - instance-of v0, p0, Lm40/e$a; # MARKER: R8 Lm40/e$a; + instance-of v0, p0, Ls30/e$a; # MARKER: R8 Ls30/e$a; if-nez v0, :supported - instance-of v0, p0, Lm40/e$c; # MARKER: R8 Lm40/e$c; + instance-of v0, p0, Ls30/e$c; # MARKER: R8 Ls30/e$c; if-nez v0, :supported - instance-of v0, p0, Lm40/e$d; # MARKER: R8 Lm40/e$d; + instance-of v0, p0, Ls30/e$d; # MARKER: R8 Ls30/e$d; if-nez v0, :supported - instance-of v0, p0, Lm40/e$e; # MARKER: R8 Lm40/e$e; + instance-of v0, p0, Ls30/e$e; # MARKER: R8 Ls30/e$e; if-eqz v0, :invalid @@ -201,7 +201,7 @@ .method public invoke(I)Ljava/lang/Object; .locals 8 - iget-object v7, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v7, p0, Lradiant/gestures/queue/VerticalMediaQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v7, :done @@ -256,7 +256,7 @@ move-object v1, v0 :emit - invoke-interface {v7, v1}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v7, v1}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali b/patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali index 5378799..46388a0 100644 --- a/patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali +++ b/patches/extension/radiant/gestures/queue/ViewAllTrackQueue.smali @@ -21,9 +21,13 @@ if-lez v2, :done - iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->n:Lcom/tidal/android/feature/viewall/ui/c; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/c; n + iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->r:Lcom/tidal/android/feature/viewall/ui/OffsetPagingEngine; # MARKER: R8 r - iget-object v0, v0, Lcom/tidal/android/feature/viewall/ui/c;->f:Ljava/util/ArrayList; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/c; f + if-eqz v0, :done + + iget-object v0, v0, Lcom/tidal/android/feature/viewall/ui/OffsetPagingEngine;->g:Ljava/util/ArrayList; # MARKER: R8 g + + if-eqz v0, :done invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; @@ -40,37 +44,37 @@ move-result-object v1 - instance-of v2, v1, Lpd0/a; # MARKER: R8 Lpd0/a; + instance-of v2, v1, Lhd0/a; # MARKER: R8 Lhd0/a; if-eqz v2, :find_track - check-cast v1, Lpd0/a; # MARKER: R8 Lpd0/a; + check-cast v1, Lhd0/a; # MARKER: R8 Lhd0/a; - iget-object v1, v1, Lpd0/a;->a:Lh40/n; # MARKER: R8 Lpd0/a; Lh40/n; a + iget-object v1, v1, Lhd0/a;->a:Ln30/o; # MARKER: R8 Lhd0/a; Ln30/o; a - instance-of v2, v1, Lh40/p; # MARKER: R8 Lh40/p; + instance-of v2, v1, Ln30/p; # MARKER: R8 Ln30/p; if-eqz v2, :find_track - check-cast v1, Lh40/p; # MARKER: R8 Lh40/p; + check-cast v1, Ln30/p; # MARKER: R8 Ln30/p; - iget-wide v3, v1, Lh40/p;->a:J # MARKER: R8 Lh40/p; a + iget-wide v3, v1, Ln30/p;->a:J # MARKER: R8 Ln30/p; a cmp-long v2, v3, p2 if-nez v2, :find_track - iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->f:Lcom/tidal/android/feature/viewall/ui/u; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/u; f + iget-object v0, p0, Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;->f:Lcom/tidal/android/feature/viewall/ui/y; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/y; f - instance-of v2, v0, Lra/d; # MARKER: R8 Lra/d; + instance-of v2, v0, Lqa/d; # MARKER: R8 Lqa/d; if-eqz v2, :done - check-cast v0, Lra/d; # MARKER: R8 Lra/d; + check-cast v0, Lqa/d; # MARKER: R8 Lqa/d; - iget-object v2, v0, Lra/d;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lra/d; b + iget-object v2, v0, Lqa/d;->b:Lcom/tidal/android/navigation/NavigationInfo; # MARKER: R8 Lqa/d; b - invoke-static {v1}, Lie0/i;->a(Lh40/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lie0/i; Lh40/p; a + invoke-static {v1}, Lae0/i;->c(Ln30/p;)Lcom/aspiro/wamp/model/Track; # MARKER: R8 Lae0/i; Ln30/p; a move-result-object v3 @@ -128,13 +132,13 @@ .method public static handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e; .locals 6 - instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$c; + instance-of v0, p1, Lcom/tidal/android/feature/viewall/ui/e$d; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$d; if-eqz v0, :not_handled - check-cast p1, Lcom/tidal/android/feature/viewall/ui/e$c; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$c; + check-cast p1, Lcom/tidal/android/feature/viewall/ui/e$d; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$d; - iget-object v0, p1, Lcom/tidal/android/feature/viewall/ui/e$c;->a:Ljava/lang/Object; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$c; a + iget-object v0, p1, Lcom/tidal/android/feature/viewall/ui/e$d;->a:Ljava/lang/Object; # MARKER: R8 Lcom/tidal/android/feature/viewall/ui/e$d; a instance-of v1, v0, Ljava/lang/String; diff --git a/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali b/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali index a982f62..31acea2 100644 --- a/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali +++ b/patches/extension/radiant/gestures/queue/ViewAllTrackQueueAction.smali @@ -7,7 +7,7 @@ # instance fields -.field private final callback:Lam0/l; # MARKER: R8 Lam0/l; +.field private final callback:Lyl0/l; # MARKER: R8 Lyl0/l; .field private context:Landroid/content/Context; @@ -15,14 +15,14 @@ # direct methods -.method public constructor (Lam0/l;Lm40/e$e;)V # MARKER: R8 Lam0/l; Lm40/e$e; +.method public constructor (Lyl0/l;Ls30/e$e;)V # MARKER: R8 Lyl0/l; Ls30/e$e; .locals 2 invoke-direct {p0}, Ljava/lang/Object;->()V - iput-object p1, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iput-object p1, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; - iget-wide v0, p2, Lm40/e$e;->a:J # MARKER: R8 Lm40/e$e; a + iget-wide v0, p2, Ls30/e$e;->a:J # MARKER: R8 Ls30/e$e; a iput-wide v0, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->trackId:J @@ -34,7 +34,7 @@ .method public invoke(I)Ljava/lang/Object; .locals 5 - iget-object v0, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->callback:Lam0/l; # MARKER: R8 Lam0/l; + iget-object v0, p0, Lradiant/gestures/queue/ViewAllTrackQueueAction;->callback:Lyl0/l; # MARKER: R8 Lyl0/l; if-eqz v0, :done @@ -61,9 +61,9 @@ move-result-object v3 - new-instance v4, Li40/c$b; # MARKER: R8 Li40/c$b; + new-instance v4, Lo30/c$b; # MARKER: R8 Lo30/c$b; - invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V # MARKER: R8 Li40/c$b; + invoke-direct {v4, v3}, Lo30/c$b;->(Ljava/lang/Object;)V # MARKER: R8 Lo30/c$b; goto :emit @@ -72,12 +72,12 @@ move-result-object v3 - new-instance v4, Li40/c$b; # MARKER: R8 Li40/c$b; + new-instance v4, Lo30/c$b; # MARKER: R8 Lo30/c$b; - invoke-direct {v4, v3}, Li40/c$b;->(Ljava/lang/Object;)V # MARKER: R8 Li40/c$b; + invoke-direct {v4, v3}, Lo30/c$b;->(Ljava/lang/Object;)V # MARKER: R8 Lo30/c$b; :emit - invoke-interface {v0, v4}, Lam0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lam0/l; + invoke-interface {v0, v4}, Lyl0/l;->invoke(Ljava/lang/Object;)Ljava/lang/Object; # MARKER: R8 Lyl0/l; :done sget-object v0, Lkotlin/u;->a:Lkotlin/u; # MARKER: R8 Lkotlin/u; diff --git a/patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch b/patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch index 5083048..6e84184 100644 --- a/patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch +++ b/patches/gestures/lyrics/lyrics-gesture-scroll-guard.patch @@ -1,6 +1,6 @@ --- a/com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/composables/LyricsKt.smali -@@ -6107,6 +6107,10 @@ +@@ -3856,6 +3856,10 @@ move-object v15, v10 @@ -9,5 +9,5 @@ + move-result-object v15 + .line 61 - invoke-static/range {v15 .. v27}, Landroidx/compose/foundation/lazy/LazyDslKt;->LazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;ZLandroidx/compose/foundation/OverscrollEffect;Lam0/l;Landroidx/compose/runtime/Composer;II)V + invoke-static/range {v15 .. v27}, Landroidx/compose/foundation/lazy/LazyDslKt;->LazyColumn(Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/lazy/LazyListState;Landroidx/compose/foundation/layout/PaddingValues;ZLandroidx/compose/foundation/layout/Arrangement$Vertical;Landroidx/compose/ui/Alignment$Horizontal;Landroidx/compose/foundation/gestures/FlingBehavior;ZLandroidx/compose/foundation/OverscrollEffect;Lyl0/l;Landroidx/compose/runtime/Composer;II)V diff --git a/patches/gestures/mini-player/mini-player-left-right-gesture.patch b/patches/gestures/mini-player/mini-player-left-right-gesture.patch index b3c4ec6..4f02cf2 100644 --- a/patches/gestures/mini-player/mini-player-left-right-gesture.patch +++ b/patches/gestures/mini-player/mini-player-left-right-gesture.patch @@ -1,17 +1,17 @@ --- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali +++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali -@@ -1215,6 +1215,10 @@ +@@ -1219,6 +1219,10 @@ move-result-object v6 -+ invoke-static {v6, v1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener ++ invoke-static {v6, v1}, Lradiant/gestures/miniplayer/MiniPlayerTrackGestures;->trackModifier(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # attach horizontal swipe listener + + move-result-object v6 + .line 38 sget-object v21, Landroidx/compose/ui/Alignment;->Companion:Landroidx/compose/ui/Alignment$Companion; -@@ -1352,6 +1356,8 @@ +@@ -1356,6 +1360,8 @@ .line 56 iget-object v11, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->b:Lcom/tidal/android/feature/appscaffold/ui/q; @@ -20,7 +20,7 @@ .line 57 invoke-virtual/range {v16 .. v16}, Lcom/squareup/ui/market/core/theme/MarketStylesheet;->getBorderRadii()Lcom/squareup/ui/market/core/theme/MarketStylesheet$b; -@@ -1390,6 +1396,10 @@ +@@ -1394,6 +1400,10 @@ move-result-object v6 @@ -29,9 +29,9 @@ + move-result-object v6 + .line 63 - invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lf20/a; + invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Ll10/a; -@@ -1501,6 +1511,10 @@ +@@ -1505,6 +1515,10 @@ move-result-object v5 @@ -44,7 +44,7 @@ --- a/com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali +++ b/com/tidal/android/feature/appscaffold/ui/MiniPlayerViewModel.smali -@@ -512,16 +512,16 @@ +@@ -514,16 +514,16 @@ .line 110 invoke-virtual {p1, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z @@ -60,10 +60,10 @@ .line 115 .line 116 - invoke-interface {v3}, Lbi/e;->i()Z + invoke-interface {v3}, Lzh/e;->i()Z .line 117 -@@ -695,12 +695,34 @@ +@@ -697,12 +697,34 @@ .line 194 :cond_e return-void @@ -78,7 +78,7 @@ + + if-eqz p1, :unknown_event + -+ invoke-interface {v3}, Lbi/e;->canSkipToPreviousOrRewind()Z ++ invoke-interface {v3}, Lzh/e;->canSkipToPreviousOrRewind()Z + + move-result p1 + @@ -86,13 +86,13 @@ + + const/4 p1, 0x0 + -+ invoke-interface {v3, p1}, Lbi/e;->h(Z)V # false = previous/rewind ++ invoke-interface {v3, p1}, Lzh/e;->h(Z)V # false = previous/rewind + + :previous_done + return-void + + :unknown_event - invoke-static {}, Landroidx/navigation/f0;->a()V + invoke-static {}, Lx/f0;->a()V .line 196 .line 197 @@ -119,7 +119,7 @@ + + :rl_continue_open .line 1 - iget-object v0, p0, Lcom/tidal/android/feature/appscaffold/ui/composable/g;->a:Lam0/l; + iget-object v0, p0, Lcom/tidal/android/feature/appscaffold/ui/composable/g;->a:Lyl0/l; .line 2 .line 3 diff --git a/patches/gestures/mini-player/mini-player-up-gesture.patch b/patches/gestures/mini-player/mini-player-up-gesture.patch index 0d577b1..70188ce 100644 --- a/patches/gestures/mini-player/mini-player-up-gesture.patch +++ b/patches/gestures/mini-player/mini-player-up-gesture.patch @@ -1,6 +1,6 @@ -# rl-locals: com/tidal/android/feature/appscaffold/ui/composable/i.smali b( 52 ---- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali +# rl-locals: com/tidal/android/feature/appscaffold/ui/composable/k.smali b( 52 +--- a/com/tidal/android/feature/appscaffold/ui/composable/k.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/k.smali @@ -1691,6 +1691,14 @@ move-result-object v24 @@ -11,14 +11,14 @@ + + const/16 v51, __RL_MINI_PLAYER_SWIPE_UP_DRAG__ # Enable Drag option + -+ invoke-static/range {v49 .. v51}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->configure(Lam0/l;Landroidx/compose/material3/SheetState;Z)V # wire swipe-up to expand the sheet ++ invoke-static/range {v49 .. v51}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->configure(Lyl0/l;Landroidx/compose/material3/SheetState;Z)V # wire swipe-up to expand the sheet + .line 69 invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalDensity()Landroidx/compose/runtime/ProvidableCompositionLocal; --- a/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali +++ b/com/tidal/android/feature/appscaffold/ui/composable/MiniPlayerKt.smali -@@ -712,6 +712,22 @@ +@@ -716,6 +716,22 @@ iget-object v3, v0, Lcom/tidal/android/feature/appscaffold/ui/t;->c:Lcom/tidal/android/feature/appscaffold/ui/MiniPlayerContract$PlayState; @@ -41,7 +41,7 @@ invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; const v4, -0x571456a1 -@@ -1215,6 +1231,10 @@ +@@ -1223,6 +1239,10 @@ move-result-object v6 @@ -52,7 +52,7 @@ .line 38 sget-object v21, Landroidx/compose/ui/Alignment;->Companion:Landroidx/compose/ui/Alignment$Companion; -@@ -1390,6 +1410,10 @@ +@@ -1404,6 +1424,10 @@ move-result-object v6 @@ -61,9 +61,9 @@ + move-result-object v6 + .line 63 - invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Lf20/a; + invoke-virtual/range {v22 .. v22}, Lcom/squareup/ui/market/core/theme/MarketStylesheet$c;->p0()Ll10/a; -@@ -1501,6 +1525,10 @@ +@@ -1519,6 +1543,10 @@ move-result-object v5 diff --git a/patches/gestures/player/player-swipe-gesture.patch b/patches/gestures/player/player-swipe-gesture.patch index 41a8d2e..8d4c510 100644 --- a/patches/gestures/player/player-swipe-gesture.patch +++ b/patches/gestures/player/player-swipe-gesture.patch @@ -32,13 +32,13 @@ :cond_47 + move-object v14, v12 # settle callback + -+ check-cast v14, Lam0/l; # to Function1 ++ check-cast v14, Lyl0/l; # to Function1 + -+ invoke-static {v13, v14}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lam0/l;)V # reuse native settle animation on release ++ invoke-static {v13, v14}, Lradiant/gestures/miniplayer/MiniPlayerGestures;->setSettleCallback(Landroidx/compose/material3/SheetState;Lyl0/l;)V # reuse native settle animation on release + move-object/from16 v32, v12 - check-cast v32, Lam0/l; + check-cast v32, Lyl0/l; .line 35 invoke-interface {v5}, Landroidx/compose/runtime/Composer;->rememberedValue()Ljava/lang/Object; diff --git a/patches/gestures/queue/swipe-to-queue-compose.patch b/patches/gestures/queue/swipe-to-queue-compose.patch index 583468b..debcfcb 100644 --- a/patches/gestures/queue/swipe-to-queue-compose.patch +++ b/patches/gestures/queue/swipe-to-queue-compose.patch @@ -1,21 +1,21 @@ ---- a/com/tidal/android/dynamicpages/ui/composables/verticaltracklist/j.smali -+++ b/com/tidal/android/dynamicpages/ui/composables/verticaltracklist/j.smali -@@ -1791,6 +1791,10 @@ +--- a/com/tidal/android/dynamicpages/ui/composables/verticaltracklist/i.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/verticaltracklist/i.smali +@@ -1346,6 +1346,10 @@ .line 391 - check-cast v34, Lam0/a; + check-cast v34, Lyl0/a; -+ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v34 + .line 392 .line 393 const/16 v35, 0x6f -@@ -1832,6 +1836,22 @@ +@@ -1387,6 +1391,22 @@ .line 412 move-result-object v0 -+ iget-wide v14, v3, Lm40/e$e;->a:J ++ iget-wide v14, v3, Ls30/e$e;->a:J + + invoke-static {v14, v15}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + @@ -23,9 +23,9 @@ + + new-instance v15, Lradiant/gestures/queue/DynamicTrackQueueAction; + -+ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/gestures/queue/DynamicTrackQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V ++ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/gestures/queue/DynamicTrackQueueAction;->(Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e$e;)V + -+ iget-boolean v5, v3, Lm40/e$e;->j:Z ++ iget-boolean v5, v3, Ls30/e$e;->j:Z + + invoke-static {v0, v14, v15, v5, v11}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + @@ -36,7 +36,7 @@ --- a/com/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager$createModuleViewState$3.smali +++ b/com/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager$createModuleViewState$3.smali -@@ -601,6 +601,17 @@ +@@ -600,6 +600,17 @@ .line 248 :cond_c @@ -48,16 +48,16 @@ + + invoke-static {v0, p1}, Lradiant/gestures/queue/DynamicTrackQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/tracklist/TrackListModuleManager;Lradiant/gestures/queue/DynamicTrackQueueEvent;)V + -+ goto :goto_4 ++ goto :goto_3 + + :cond_d - invoke-static {}, Landroidx/navigation/f0;->a()V + invoke-static {}, Lx/f0;->a()V .line 249 --- a/com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali +++ b/com/tidal/android/dynamicpages/ui/composables/compactgridcard/CompactGridCardModuleRowKt.smali -@@ -872,1 +872,26 @@ -+ invoke-static {v10}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->isEligible(Lm40/e;)Z +@@ -1101,1 +1101,26 @@ ++ invoke-static {v10}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->isEligible(Ls30/e;)Z + + move-result v11 + @@ -69,7 +69,7 @@ + + move-object/from16 v14, p1 + -+ invoke-direct {v11, v4, v12, v14, v10}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V ++ invoke-direct {v11, v4, v12, v14, v10}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->(Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e;)V + + invoke-virtual {v11}, Lradiant/gestures/queue/CompactGridMediaQueueAction;->stableKey()Ljava/lang/String; + @@ -92,7 +92,7 @@ + + iget-object v0, p0, Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;->b:Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c; + -+ iget-object v1, v0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;->f:Lam0/q; ++ iget-object v1, v0, Lcom/tidal/android/dynamicpages/ui/modules/compactgridcard/c;->f:Lyl0/q; + + iget-object v2, p0, Lcom/tidal/android/dynamicpages/ui/composables/compactgridcard/d;->c:Ljava/lang/String; + @@ -100,7 +100,7 @@ + + const/4 v4, 0x0 + -+ invoke-interface {v1, v2, v3, p1, v4}, Lam0/q;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; ++ invoke-interface {v1, v2, v3, p1, v4}, Lyl0/q;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; + + sget-object p1, Lkotlin/u;->a:Lkotlin/u; + @@ -134,7 +134,7 @@ .line 1 --- a/com/tidal/android/feature/search/ui/SearchScreenViewModel.smali +++ b/com/tidal/android/feature/search/ui/SearchScreenViewModel.smali -@@ -926,6 +926,17 @@ +@@ -508,6 +508,17 @@ .line 4 .line 5 @@ -152,25 +152,25 @@ invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; .line 6 ---- a/com/tidal/android/feature/search/ui/composables/u0.smali -+++ b/com/tidal/android/feature/search/ui/composables/u0.smali +--- a/com/tidal/android/feature/search/ui/composables/s0.smali ++++ b/com/tidal/android/feature/search/ui/composables/s0.smali @@ -243,6 +243,24 @@ - check-cast v2, Lam0/a; + check-cast v2, Lyl0/a; -+ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v1 + + new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lyl0/l;Lhb0/b;)V + + invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + -+ iget-boolean p1, v0, Lpb0/b$a;->f:Z ++ iget-boolean p1, v0, Lhb0/b$a;->f:Z + + invoke-static {v3, v7, v6, p1, v4}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + @@ -179,18 +179,18 @@ const/4 v5, 0x0 .line 20 -@@ -467,7 +485,25 @@ +@@ -469,7 +487,25 @@ const/4 v5, 0x0 - const/4 v2, 0x0 -+ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v1 + + new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lyl0/l;Lhb0/b;)V + + invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + @@ -205,24 +205,24 @@ + move-result-object v2 .line 52 - invoke-static/range {v0 .. v5}, Lob0/w;->a(Lpb0/b$f;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V -@@ -593,6 +629,24 @@ + invoke-static/range {v0 .. v5}, Lgb0/d0;->a(Lhb0/b$f;Lyl0/a;Landroidx/compose/ui/Modifier;Lyl0/a;Landroidx/compose/runtime/Composer;I)V +@@ -595,6 +631,24 @@ - check-cast v3, Lam0/a; + check-cast v3, Lyl0/a; -+ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v1 + + new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lyl0/l;Lhb0/b;)V + + invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + -+ iget-boolean p1, v0, Lpb0/b$i;->i:Z ++ iget-boolean p1, v0, Lhb0/b$i;->i:Z + + invoke-static {v2, v7, v6, p1, v4}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + @@ -231,18 +231,18 @@ const/4 v5, 0x0 .line 70 -@@ -828,7 +882,25 @@ +@@ -832,7 +886,25 @@ const/4 v5, 0x0 - const/4 v2, 0x0 -+ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v1}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v1 + + new-instance v6, Lradiant/gestures/queue/ComposeSearchQueueAction; + -+ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lam0/l;Lpb0/b;)V ++ invoke-direct {v6, p3, v0}, Lradiant/gestures/queue/ComposeSearchQueueAction;->(Lyl0/l;Lhb0/b;)V + + invoke-virtual {v6}, Lradiant/gestures/queue/ComposeSearchQueueAction;->stableKey()Ljava/lang/String; + @@ -257,22 +257,22 @@ + move-result-object v2 .line 104 - invoke-static/range {v0 .. v5}, Lob0/q;->a(Lpb0/b$e;Lam0/a;Landroidx/compose/ui/Modifier;Lam0/a;Landroidx/compose/runtime/Composer;I)V ---- a/com/tidal/android/feature/viewall/ui/l.smali -+++ b/com/tidal/android/feature/viewall/ui/l.smali + invoke-static/range {v0 .. v5}, Lgb0/x;->a(Lhb0/b$e;Lyl0/a;Landroidx/compose/ui/Modifier;Lyl0/a;Landroidx/compose/runtime/Composer;I)V +--- a/com/tidal/android/feature/viewall/ui/s.smali ++++ b/com/tidal/android/feature/viewall/ui/s.smali @@ -317,6 +317,31 @@ .line 132 - check-cast v3, Lam0/l; + check-cast v3, Lyl0/l; -+ instance-of p1, v2, Lm40/e$e; ++ instance-of p1, v2, Ls30/e$e; + + if-eqz p1, :rl_viewall_swipe_attached + + move-object p1, v2 + -+ check-cast p1, Lm40/e$e; ++ check-cast p1, Ls30/e$e; + -+ iget-wide p2, p1, Lm40/e$e;->a:J ++ iget-wide p2, p1, Ls30/e$e;->a:J + + invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + @@ -280,9 +280,9 @@ + + new-instance p3, Lradiant/gestures/queue/ViewAllTrackQueueAction; + -+ invoke-direct {p3, v3, p1}, Lradiant/gestures/queue/ViewAllTrackQueueAction;->(Lam0/l;Lm40/e$e;)V ++ invoke-direct {p3, v3, p1}, Lradiant/gestures/queue/ViewAllTrackQueueAction;->(Lyl0/l;Ls30/e$e;)V + -+ iget-boolean p1, p1, Lm40/e$e;->j:Z ++ iget-boolean p1, p1, Ls30/e$e;->j:Z + + invoke-static {v1, p2, p3, p1, v5}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + @@ -292,28 +292,27 @@ .line 133 .line 134 const/4 v6, 0x0 ---- a/j40/p2.smali -+++ b/j40/p2.smali -@@ -3240,5 +3240,14 @@ +--- a/p30/t2.smali ++++ b/p30/t2.smali +@@ -3228,5 +3228,14 @@ move-object/from16 v16, v1 -+ instance-of v3, v14, Lcom/tidal/android/feature/viewall/ui/n; ++ instance-of v3, v14, Lcom/tidal/android/feature/viewall/ui/w; + + if-eqz v3, :rl_viewall_tap_guard_done + -+ invoke-static/range {v24 .. v24}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static/range {v24 .. v24}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v24 + + :rl_viewall_tap_guard_done - .line 718 - .line 719 + .line 716 + .line 717 move-object/from16 v25, v9 --- a/com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali +++ b/com/tidal/android/feature/viewall/ui/ViewAllScreenViewModel.smali -@@ -1717,5 +1717,16 @@ - } - .end annotation +@@ -632,4 +632,15 @@ + .locals 14 + invoke-static {p0, p1}, Lradiant/gestures/queue/ViewAllTrackQueue;->handleEvent(Lcom/tidal/android/feature/viewall/ui/ViewAllScreenViewModel;Lcom/tidal/android/feature/viewall/ui/e;)Z + @@ -331,14 +330,14 @@ --- a/com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali +++ b/com/tidal/android/dynamicpages/ui/composables/artisttrackcredits/h.smali @@ -929,1 +929,5 @@ - check-cast v34, Lam0/a; -+ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; + check-cast v34, Lyl0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v34 + @@ -970,1 +974,17 @@ move-result-object v0 -+ iget-wide v14, v3, Lm40/e$e;->a:J ++ iget-wide v14, v3, Ls30/e$e;->a:J + + invoke-static {v14, v15}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; + @@ -346,9 +345,9 @@ + + new-instance v15, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction; + -+ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$e;)V ++ invoke-direct {v15, v4, v1, v2, v3}, Lradiant/gestures/queue/ArtistTrackCreditsQueueAction;->(Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e$e;)V + -+ iget-boolean v5, v3, Lm40/e$e;->j:Z ++ iget-boolean v5, v3, Ls30/e$e;->j:Z + + invoke-static {v0, v14, v15, v5, v11}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + @@ -356,7 +355,7 @@ + --- a/com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali +++ b/com/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager$createModuleViewState$3.smali -@@ -603,1 +603,12 @@ +@@ -602,1 +602,12 @@ :cond_c + instance-of p2, p1, Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent; + @@ -366,14 +365,19 @@ + + invoke-static {v0, p1}, Lradiant/gestures/queue/ArtistTrackCreditsQueue;->handle(Lcom/tidal/android/dynamicpages/ui/modules/artisttrackcredits/ArtistTrackCreditsModuleManager;Lradiant/gestures/queue/ArtistTrackCreditsQueueEvent;)V + -+ goto :goto_4 ++ goto :goto_3 + + :rl_artist_credits_queue_unhandled --- a/com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali +++ b/com/tidal/android/dynamicpages/ui/composables/verticallistcard/VerticalListCardKt.smali -@@ -3648,1 +3648,24 @@ +@@ -1429,6 +1429,29 @@ + invoke-static {v12, v0, v9, v7}, Ln40/c;->a(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/MutableState;Lyl0/a;I)Landroidx/compose/ui/Modifier; + + .line 203 + .line 204 + .line 205 move-result-object v0 -+ invoke-static {v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z ++ invoke-static {v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isSupported(Ls30/e;)Z + + move-result v7 + @@ -381,13 +385,13 @@ + + new-instance v7, Lradiant/gestures/queue/VerticalMediaQueueAction; + -+ invoke-direct {v7, v4, v1, v2, v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e;)V ++ invoke-direct {v7, v4, v1, v2, v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->(Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e;)V + + invoke-virtual {v7}, Lradiant/gestures/queue/VerticalMediaQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v9 + -+ invoke-static {v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isEligible(Lm40/e;)Z ++ invoke-static {v10}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isEligible(Ls30/e;)Z + + move-result v12 + @@ -396,52 +400,57 @@ + move-result-object v0 + + :rl_vertical_swipe_done ---- a/j40/e4.smali -+++ b/j40/e4.smali +--- a/p30/h4.smali ++++ b/p30/h4.smali @@ -310,1 +310,24 @@ - check-cast v11, Lam0/a; + check-cast v11, Lyl0/a; + instance-of v8, v6, Lcom/tidal/android/dynamicpages/ui/composables/verticallistcard/m; + + if-eqz v8, :rl_vertical_tap_guard_done + -+ instance-of v8, v5, Lm40/e; ++ instance-of v8, v5, Ls30/e; + + if-eqz v8, :rl_vertical_tap_guard_done + + move-object v8, v5 + -+ check-cast v8, Lm40/e; ++ check-cast v8, Ls30/e; + -+ invoke-static {v8}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isSupported(Lm40/e;)Z ++ invoke-static {v8}, Lradiant/gestures/queue/VerticalMediaQueueAction;->isSupported(Ls30/e;)Z + + move-result v8 + + if-eqz v8, :rl_vertical_tap_guard_done + -+ invoke-static {v11}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; ++ invoke-static {v11}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v11 + + :rl_vertical_tap_guard_done ---- a/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali -+++ b/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/i.smali -@@ -2120,1 +2120,5 @@ - check-cast v34, Lam0/a; -+ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lam0/a;)Lam0/a; +--- a/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/j.smali ++++ b/com/tidal/android/dynamicpages/ui/composables/publicplaylistlist/j.smali +@@ -1308,1 +1308,5 @@ + check-cast v34, Lyl0/a; ++ invoke-static/range {v34 .. v34}, Lradiant/gestures/queue/ComposeTapGuard;->wrap(Lyl0/a;)Lyl0/a; + + move-result-object v34 + -@@ -2161,1 +2165,15 @@ +@@ -1344,6 +1348,20 @@ + invoke-static/range {v26 .. v36}, Landroidx/compose/foundation/ClickableKt;->combinedClickable-f5TDLPQ$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Ljava/lang/String;Lyl0/a;Lyl0/a;ZLyl0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; + + .line 410 + .line 411 + .line 412 move-result-object v0 + new-instance v5, Lradiant/gestures/queue/PublicPlaylistQueueAction; + -+ invoke-direct {v5, v4, v1, v2, v3}, Lradiant/gestures/queue/PublicPlaylistQueueAction;->(Lam0/l;Ljava/lang/String;Ljava/lang/String;Lm40/e$d;)V ++ invoke-direct {v5, v4, v1, v2, v3}, Lradiant/gestures/queue/PublicPlaylistQueueAction;->(Lyl0/l;Ljava/lang/String;Ljava/lang/String;Ls30/e$d;)V + + invoke-virtual {v5}, Lradiant/gestures/queue/PublicPlaylistQueueAction;->stableKey()Ljava/lang/String; + + move-result-object v7 + -+ iget-boolean v9, v3, Lm40/e$d;->g:Z ++ iget-boolean v9, v3, Ls30/e$d;->g:Z + + invoke-static {v0, v7, v5, v9, v11}, Lradiant/gestures/queue/ComposeSwipeState;->attach(Landroidx/compose/ui/Modifier;Ljava/lang/Object;Lradiant/gestures/queue/ComposeSwipeAction;ZLandroidx/compose/runtime/Composer;)Landroidx/compose/ui/Modifier; + @@ -449,7 +458,7 @@ + --- a/com/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager$createModuleViewState$3.smali +++ b/com/tidal/android/dynamicpages/ui/modules/verticallistcard/VerticalListCardModuleManager$createModuleViewState$3.smali -@@ -830,1 +830,12 @@ +@@ -835,1 +835,12 @@ :cond_15 + instance-of v2, v0, Lradiant/gestures/queue/DynamicMediaQueueEvent; + @@ -477,4 +486,4 @@ + goto :goto_1 + + :rl_public_queue_continue - invoke-static {}, Landroidx/navigation/f0;->a()V + invoke-static {}, Lx/f0;->a()V diff --git a/patches/gestures/queue/swipe-to-queue.patch b/patches/gestures/queue/swipe-to-queue.patch index 0474003..232e09e 100644 --- a/patches/gestures/queue/swipe-to-queue.patch +++ b/patches/gestures/queue/swipe-to-queue.patch @@ -86,7 +86,7 @@ + + iget-object v3, p1, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/g0;->k:Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata; + -+ iget-object v0, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->b:Lx40/a; ++ iget-object v0, p0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->b:Ld40/a; + + instance-of p1, v0, Lh4/a; + @@ -145,7 +145,7 @@ + + iget-object v0, v0, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/m;->f:Landroidx/recyclerview/widget/RecyclerView; + -+ invoke-virtual {p0, v0, v5, v0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->w(Landroidx/recyclerview/widget/RecyclerView;ILandroid/view/View;)V ++ invoke-virtual {p0, v0, v5, v0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->x(Landroidx/recyclerview/widget/RecyclerView;ILandroid/view/View;)V + + :done + return-void @@ -153,9 +153,9 @@ + + # virtual methods - .method public final M()Ln8/b; + .method public final M()Lm8/b; .locals 1 -@@ -2265,9 +2448,16 @@ +@@ -2108,9 +2256,16 @@ iput-object p0, p1, Lo4/g;->e:Lo4/g$e; .line 224 @@ -172,8 +172,8 @@ .line 226 .line 227 invoke-virtual {p0}, Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/FavoriteTracksFragment;->N()Lcom/aspiro/wamp/mycollection/subpages/favoritetracks/n; ---- a/p7/a.smali -+++ b/p7/a.smali +--- a/o7/a.smali ++++ b/o7/a.smali @@ -33,3 +33,11 @@ .end method @@ -186,9 +186,9 @@ +.end method + .method public final c(Ljava/lang/Object;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V ---- a/v6/e.smali -+++ b/v6/e.smali -@@ -62,3 +62,11 @@ +--- a/u6/e.smali ++++ b/u6/e.smali +@@ -34,3 +34,11 @@ .end method +.method public b(Landroidx/recyclerview/widget/RecyclerView;)V @@ -202,7 +202,7 @@ .method public final c(Ljava/lang/Object;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;)V --- a/com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/albums/myalbums/MyAlbumsView.smali -@@ -559,6 +559,8 @@ +@@ -560,6 +560,8 @@ .line 23 invoke-static {v0, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; @@ -213,7 +213,7 @@ .line 26 --- a/com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/playlists/myplaylists/MyPlaylistsView.smali -@@ -581,6 +581,8 @@ +@@ -582,6 +582,8 @@ .line 23 invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; @@ -224,7 +224,7 @@ .line 26 --- a/com/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView.smali +++ b/com/aspiro/wamp/mycollection/subpages/mixesandradios/MyMixesAndRadioView.smali -@@ -556,6 +556,8 @@ +@@ -557,6 +557,8 @@ .line 22 .line 23 invoke-static {p1, p2}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; @@ -236,7 +236,7 @@ .line 26 --- a/androidx/recyclerview/widget/ItemTouchHelper$2.smali +++ b/androidx/recyclerview/widget/ItemTouchHelper$2.smali -@@ -773,7 +773,11 @@ +@@ -555,7 +555,11 @@ const/4 v5, 0x1 .line 54 @@ -249,7 +249,7 @@ .line 55 .line 56 -@@ -867,6 +871,9 @@ +@@ -649,6 +653,9 @@ .line 97 :cond_6 @@ -261,21 +261,21 @@ .line 98 --- a/h4/a.smali +++ b/h4/a.smali -@@ -931,1 +931,46 @@ +@@ -921,1 +921,46 @@ .end method + +.method public final q(Landroidx/fragment/app/FragmentActivity;Lcom/aspiro/wamp/model/Track;Lcom/aspiro/wamp/eventtracking/model/ContextualMetadata;Lcom/aspiro/wamp/playqueue/source/model/Source;)Z + .locals 3 + -+ iget-object v0, p0, Lh4/a;->n:Lcom/aspiro/wamp/contextmenu/menu/track/TrackContextMenu$a; ++ iget-object v0, p0, Lh4/a;->m:Lz3/a$a; + -+ check-cast v0, Lcom/aspiro/wamp/contextmenu/menu/track/d; ++ check-cast v0, Lz3/c; + -+ iget-object v1, v0, Lcom/aspiro/wamp/contextmenu/menu/track/d;->a:Lcom/aspiro/wamp/contextmenu/menu/track/c; ++ iget-object v1, v0, Lz3/c;->a:Lz3/b; + -+ iget-object v0, v1, Lcom/aspiro/wamp/contextmenu/menu/track/c;->b:Ldagger/internal/j; ++ iget-object v0, v1, Lz3/b;->b:Ldagger/internal/j; + -+ invoke-interface {v0}, Lql0/a;->get()Ljava/lang/Object; ++ invoke-interface {v0}, Lol0/a;->get()Ljava/lang/Object; + + move-result-object v0 + @@ -285,13 +285,13 @@ + + move-result-object v0 + -+ iget-object v2, v0, Lm3/f;->j:Lcom/aspiro/wamp/playqueue/g1; ++ iget-object v2, v0, Lm3/f;->j:Lcom/aspiro/wamp/playqueue/x0; + -+ invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/g1;->a()Lcom/aspiro/wamp/player/d; ++ invoke-virtual {v2}, Lcom/aspiro/wamp/playqueue/x0;->a()Lcom/aspiro/wamp/player/c; + + move-result-object v2 + -+ invoke-virtual {v2}, Lcom/aspiro/wamp/player/d;->b()Lcom/aspiro/wamp/model/MediaItemParent; ++ invoke-virtual {v2}, Lcom/aspiro/wamp/player/c;->b()Lcom/aspiro/wamp/model/MediaItemParent; + + move-result-object v2 + @@ -320,7 +320,7 @@ + # direct methods - .method public constructor (Landroid/content/Context;Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a;Lcom/aspiro/wamp/nowplaying/view/playqueue/l;)V + .method public constructor (Landroid/content/Context;Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/a;Lcom/aspiro/wamp/nowplaying/view/playqueue/n;)V @@ -55,6 +59,26 @@ .line 10 @@ -348,7 +348,7 @@ new-instance p2, Landroid/graphics/drawable/ColorDrawable; .line 12 -@@ -377,6 +401,10 @@ +@@ -175,6 +199,10 @@ .line 5 .line 6 .line 7 @@ -359,7 +359,7 @@ iget-object v0, p0, Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl;->d:Lcom/aspiro/wamp/nowplaying/view/playqueue/touchmanagement/ItemTouchHelperCallbackImpl$ActionType; .line 8 -@@ -844,7 +872,7 @@ +@@ -374,7 +402,7 @@ .line 32 .line 33 @@ -368,7 +368,7 @@ .line 34 :cond_1 -@@ -896,7 +924,23 @@ +@@ -398,7 +426,23 @@ .end method +.method public getSwipeEscapeVelocity(F)F @@ -393,7 +393,7 @@ .line 1 invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; -@@ -916,6 +960,16 @@ +@@ -418,6 +462,16 @@ .line 10 invoke-super/range {p0 .. p7}, Landroidx/recyclerview/widget/ItemTouchHelper$Callback;->onChildDraw(Landroid/graphics/Canvas;Landroidx/recyclerview/widget/RecyclerView;Landroidx/recyclerview/widget/RecyclerView$ViewHolder;FFIZ)V @@ -410,9 +410,9 @@ .line 11 .line 12 .line 13 ---- a/com/aspiro/wamp/nowplaying/view/playqueue/l.smali -+++ b/com/aspiro/wamp/nowplaying/view/playqueue/l.smali -@@ -983,6 +983,8 @@ +--- a/com/aspiro/wamp/nowplaying/view/playqueue/n.smali ++++ b/com/aspiro/wamp/nowplaying/view/playqueue/n.smali +@@ -719,6 +719,8 @@ .line 121 move-result-object p1 @@ -423,7 +423,7 @@ --- a/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/albums/search/SearchAlbumsView.smali -@@ -1176,8 +1176,10 @@ +@@ -579,8 +579,10 @@ .line 69 .line 70 .line 71 @@ -436,20 +436,18 @@ .line 74 --- a/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali +++ b/com/aspiro/wamp/playlist/ui/fragment/PlaylistFragment.smali -@@ -5193,8 +5193,10 @@ - .line 127 - .line 128 - .line 129 +@@ -3125,6 +3125,8 @@ + invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class; + invoke-static {v1, p1}, Lcom/tidal/android/feature/appscaffold/ui/recyclerview/b;->a(Landroidx/lifecycle/LifecycleOwner;Landroidx/recyclerview/widget/RecyclerView;)Lcom/tidal/android/feature/appscaffold/ui/recyclerview/a; + invoke-static {p1}, Lradiant/gestures/queue/PlaylistItemsResolver;->install(Lcom/aspiro/wamp/playlist/ui/items/PlaylistItemCollectionView;)V + - .line 130 - .line 131 - .line 132 + .line 31 + iget-object p1, p0, Lcom/aspiro/wamp/playlist/ui/fragment/PlaylistFragment;->s:Lcom/aspiro/wamp/playlist/ui/fragment/p; --- a/com/aspiro/wamp/search/v2/UnifiedSearchView.smali +++ b/com/aspiro/wamp/search/v2/UnifiedSearchView.smali -@@ -1596,8 +1596,10 @@ +@@ -881,8 +881,10 @@ .line 60 .line 61 .line 62 @@ -462,7 +460,7 @@ .line 65 --- a/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali +++ b/com/aspiro/wamp/mycollection/subpages/playlists/searchplaylists/SearchPlaylistsView.smali -@@ -1204,8 +1204,10 @@ +@@ -638,8 +638,10 @@ .line 69 .line 70 .line 71 @@ -486,21 +484,21 @@ .line 39 .line 40 .line 41 ---- a/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali -+++ b/com/aspiro/wamp/nowplaying/view/suggestions/o0.smali -@@ -876,7 +876,9 @@ - .line 96 +--- a/com/aspiro/wamp/nowplaying/view/suggestions/q0.smali ++++ b/com/aspiro/wamp/nowplaying/view/suggestions/q0.smali +@@ -875,7 +875,9 @@ + .line 97 invoke-virtual {v0, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V - + + invoke-static {p0, v0}, Lradiant/gestures/queue/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + - .line 97 .line 98 .line 99 - invoke-virtual {p0}, Lcom/aspiro/wamp/nowplaying/view/suggestions/o0;->M()Lcom/aspiro/wamp/nowplaying/view/suggestions/l; ---- a/com/aspiro/wamp/nowplaying/view/suggestions/h.smali -+++ b/com/aspiro/wamp/nowplaying/view/suggestions/h.smali -@@ -674,1 +674,3 @@ + .line 100 + invoke-virtual {p0}, Lcom/aspiro/wamp/nowplaying/view/suggestions/q0;->M()Lcom/aspiro/wamp/nowplaying/view/suggestions/m; +--- a/com/aspiro/wamp/nowplaying/view/suggestions/i.smali ++++ b/com/aspiro/wamp/nowplaying/view/suggestions/i.smali +@@ -670,1 +670,3 @@ invoke-virtual {v3, p2}, Landroidx/recyclerview/widget/RecyclerView;->setAdapter(Landroidx/recyclerview/widget/RecyclerView$Adapter;)V + invoke-static {p0, v3}, Lradiant/gestures/queue/SuggestionsResolver;->install(Landroidx/fragment/app/Fragment;Landroidx/recyclerview/widget/RecyclerView;)V + diff --git a/patches/home-backdrop.patch b/patches/home-backdrop.patch index 1b27e05..04b6527 100644 --- a/patches/home-backdrop.patch +++ b/patches/home-backdrop.patch @@ -1,16 +1,16 @@ ---- a/com/tidal/android/feature/home/ui/k.smali -+++ b/com/tidal/android/feature/home/ui/k.smali -@@ -424,7 +424,7 @@ +--- a/com/tidal/android/feature/home/ui/j.smali ++++ b/com/tidal/android/feature/home/ui/j.smali +@@ -427,7 +427,7 @@ const/4 v6, 0x0 - .line 181 -- move-wide v7, v8 + .line 182 +- move-wide v7, v9 + const-wide/16 v7, 0x0 # transparent containerColor - .line 182 + .line 183 const-wide/16 v9, 0x0 ---- a/com/tidal/android/feature/home/ui/o.smali -+++ b/com/tidal/android/feature/home/ui/o.smali +--- a/com/tidal/android/feature/home/ui/m.smali ++++ b/com/tidal/android/feature/home/ui/m.smali @@ -187,6 +187,10 @@ .line 61 .line 62 @@ -22,8 +22,8 @@ invoke-interface {p1}, Landroidx/compose/foundation/layout/PaddingValues;->calculateTopPadding-D9Ej5fM()F .line 63 ---- a/com/tidal/android/feature/home/ui/composables/g.smali -+++ b/com/tidal/android/feature/home/ui/composables/g.smali +--- a/com/tidal/android/feature/home/ui/composables/f.smali ++++ b/com/tidal/android/feature/home/ui/composables/f.smali @@ -790,6 +790,8 @@ .line 104 move-result-wide v14 diff --git a/patches/integration-pebble-playback.patch b/patches/integration-pebble-playback.patch index 800716e..d540a6b 100644 --- a/patches/integration-pebble-playback.patch +++ b/patches/integration-pebble-playback.patch @@ -1,6 +1,6 @@ --- a/com/aspiro/wamp/player/MusicService.smali +++ b/com/aspiro/wamp/player/MusicService.smali -@@ -1495,6 +1495,8 @@ +@@ -1492,6 +1492,8 @@ .line 36 invoke-virtual {p1, v0}, Landroid/support/v4/media/session/MediaSessionCompat;->setPlaybackState(Landroid/support/v4/media/session/PlaybackStateCompat;)V @@ -9,7 +9,7 @@ .line 37 .line 38 .line 39 -@@ -2669,6 +2671,8 @@ +@@ -2666,6 +2668,8 @@ .line 1 invoke-super {p0}, Landroidx/media/MediaBrowserServiceCompat;->onDestroy()V @@ -18,8 +18,8 @@ .line 2 .line 3 .line 4 ---- a/bk0/e.smali -+++ b/bk0/e.smali +--- a/yj0/e.smali ++++ b/yj0/e.smali @@ -56,6 +56,8 @@ .line 6 move-result-wide v0 @@ -27,5 +27,5 @@ + invoke-static {v0, v1}, Lradiant/PebbleBridge;->onPosition(J)V + .line 7 - iget-object v2, p0, Lbk0/e;->a:Lbk0/d; + iget-object v2, p0, Lyj0/e;->a:Lyj0/d; diff --git a/patches/integration-waze-playback.patch b/patches/integration-waze-playback.patch index dce7e3c..4b50469 100644 --- a/patches/integration-waze-playback.patch +++ b/patches/integration-waze-playback.patch @@ -1,5 +1,5 @@ ---- a/mb/f.smali -+++ b/mb/f.smali +--- a/kb/f.smali ++++ b/kb/f.smali @@ -613,6 +613,25 @@ .line 236 @@ -52,4 +52,4 @@ + .line 306 .line 307 - iget-object v1, v0, Lmb/f;->c:Ljava/util/Map; + iget-object v1, v0, Lkb/f;->c:Ljava/util/Map; diff --git a/patches/lyrics-ai-indicator.patch b/patches/lyrics-ai-indicator.patch new file mode 100644 index 0000000..8de9dd2 --- /dev/null +++ b/patches/lyrics-ai-indicator.patch @@ -0,0 +1,28 @@ +--- a/radiant/RLAPILyricsWorker.smali ++++ b/radiant/RLAPILyricsWorker.smali +@@ -683,6 +683,8 @@ + .method private runImpl()V + .locals 13 + ++ invoke-static {}, Lradiant/AiSparkle;->reset()V # Reset AI sparkle ++ + iget-object v0, p0, Lradiant/RLAPILyricsWorker;->title:Ljava/lang/String; + + invoke-static {v0}, Lradiant/RLAPILyricsWorker;->uric(Ljava/lang/String;)Ljava/lang/String; +@@ -859,3 +861,5 @@ + :key_ok ++ invoke-static {v11}, Lradiant/AiSparkle;->onResponse(Ljava/lang/String;)V # Rainbow sparkle for AI syllables ++ + invoke-static {v11}, Lradiant/WordLyrics;->ingest(Ljava/lang/String;)V + +--- a/radiant/SparkleContent.smali ++++ b/radiant/SparkleContent.smali +@@ -47,4 +47,8 @@ + + move-result-object p2 + ++ invoke-static {p2, p1}, Lradiant/AiSparkle;->wrap(Landroidx/compose/ui/graphics/painter/Painter;Landroidx/compose/runtime/Composer;)Landroidx/compose/ui/graphics/painter/Painter; # Rainbow sparkle when AI ++ ++ move-result-object p2 ++ + invoke-static {}, Landroidx/compose/runtime/ComposerKt;->isTraceInProgress()Z diff --git a/patches/lyrics-disable-cover.patch b/patches/lyrics-disable-cover.patch index 7b29c4c..3dfaeb2 100644 --- a/patches/lyrics-disable-cover.patch +++ b/patches/lyrics-disable-cover.patch @@ -1,5 +1,5 @@ ---- a/com/tidal/android/feature/playerscreen/ui/b0.smali -+++ b/com/tidal/android/feature/playerscreen/ui/b0.smali +--- a/com/tidal/android/feature/playerscreen/ui/i0.smali ++++ b/com/tidal/android/feature/playerscreen/ui/i0.smali @@ -669,8 +669,23 @@ move-object v5, v1 @@ -8,7 +8,7 @@ + + invoke-interface {v7, v1}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open group around the cover + -+ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/b0;->b:Lcom/tidal/android/feature/playerscreen/ui/s$a; # player state ++ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/i0;->b:Lcom/tidal/android/feature/playerscreen/ui/s$a; # player state + + iget-object v1, v1, Lcom/tidal/android/feature/playerscreen/ui/s$a;->j:Lcom/tidal/android/feature/playerscreen/ui/g; # current view mode + @@ -16,7 +16,7 @@ + + if-eqz v1, :radiant_after_cover # lyrics/credits mode -> skip cover + - invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;->c(Lcom/tidal/android/feature/playerscreen/ui/d;Lam0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V + invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/CoverPagerKt;->c(Lcom/tidal/android/feature/playerscreen/ui/d;Lyl0/l;FLandroidx/compose/ui/Modifier;ZLandroidx/compose/runtime/Composer;II)V + :radiant_after_cover # skip target + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group diff --git a/patches/lyrics-fade-region.patch b/patches/lyrics-fade-region.patch index cac0c37..3f208f0 100644 --- a/patches/lyrics-fade-region.patch +++ b/patches/lyrics-fade-region.patch @@ -1,10 +1,10 @@ ---- a/com/tidal/android/feature/playerscreen/ui/composables/o1.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/o1.smali +--- a/com/tidal/android/feature/playerscreen/ui/composables/f1.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/f1.smali @@ -64,7 +64,7 @@ .line 16 .line 17 -- iget v2, p0, Lcom/tidal/android/feature/playerscreen/ui/composables/o1;->a:F +- iget v2, p0, Lcom/tidal/android/feature/playerscreen/ui/composables/f1;->a:F + const/high16 v2, 0x43200000 # 160f start dp .line 18 diff --git a/patches/lyrics-keep-controls-visible.patch b/patches/lyrics-keep-controls-visible.patch index 3f8d8b3..06b9d12 100644 --- a/patches/lyrics-keep-controls-visible.patch +++ b/patches/lyrics-keep-controls-visible.patch @@ -11,7 +11,7 @@ .line 28 --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali -@@ -1382,6 +1382,19 @@ +@@ -1467,6 +1467,19 @@ .line 109 .line 110 move-result v1 diff --git a/patches/lyrics-progress-pill.patch b/patches/lyrics-progress-pill.patch index 98a6653..63f3933 100644 --- a/patches/lyrics-progress-pill.patch +++ b/patches/lyrics-progress-pill.patch @@ -1,5 +1,5 @@ ---- a/com/tidal/android/feature/playerscreen/ui/m0.smali -+++ b/com/tidal/android/feature/playerscreen/ui/m0.smali +--- a/com/tidal/android/feature/playerscreen/ui/z0.smali ++++ b/com/tidal/android/feature/playerscreen/ui/z0.smali @@ -45,7 +45,7 @@ # virtual methods @@ -11,7 +11,7 @@ move-object/from16 v0, p0 @@ -460,6 +460,64 @@ .line 200 - invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;->a(Lcom/tidal/android/feature/playerscreen/ui/g;Lam0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lam0/l;Landroidx/compose/runtime/Composer;II)V + invoke-static/range {v2 .. v9}, Lcom/tidal/android/feature/playerscreen/ui/composables/LyricsKt;->a(Lcom/tidal/android/feature/playerscreen/ui/g;Lyl0/l;Landroidx/compose/ui/Modifier;Landroidx/compose/foundation/layout/PaddingValues;Lyl0/l;Landroidx/compose/runtime/Composer;II)V + sget-object v17, Lradiant/SpvFactory;->a:Lradiant/SpvFactory; # progress view factory + @@ -57,7 +57,7 @@ + + const/16 v24, 0x0 # synthetic null + -+ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lam0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; # taps stop at the pill ++ invoke-static/range {v18 .. v24}, Landroidx/compose/foundation/ClickableKt;->clickable-XHw0xAI$default(Landroidx/compose/ui/Modifier;ZLjava/lang/String;Landroidx/compose/ui/semantics/Role;Lyl0/a;ILjava/lang/Object;)Landroidx/compose/ui/Modifier; # taps stop at the pill + + move-result-object v18 # final modifier + @@ -69,7 +69,7 @@ + + const/16 v22, 0x4 # default mask + -+ invoke-static/range {v17 .. v22}, Landroidx/compose/ui/viewinterop/AndroidView_androidKt;->AndroidView(Lam0/l;Landroidx/compose/ui/Modifier;Lam0/l;Landroidx/compose/runtime/Composer;II)V # mount progress pill ++ invoke-static/range {v17 .. v22}, Landroidx/compose/ui/viewinterop/AndroidView_androidKt;->AndroidView(Lyl0/l;Landroidx/compose/ui/Modifier;Lyl0/l;Landroidx/compose/runtime/Composer;II)V # mount progress pill + .line 201 .line 202 diff --git a/patches/lyrics-replace-lyrics-button.patch b/patches/lyrics-replace-lyrics-button.patch index 7ea8ada..7d84893 100644 --- a/patches/lyrics-replace-lyrics-button.patch +++ b/patches/lyrics-replace-lyrics-button.patch @@ -1,30 +1,29 @@ # rl-locals: com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali e( 79 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5183,7 +5183,11 @@ - const/4 v12, 0x0 +@@ -6456,7 +6456,11 @@ + const/4 v7, 0x0 - .line 259 -- invoke-static {v7, v8, v4, v15, v12}, Lcom/tidal/android/feature/playerscreen/ui/composables/k1;->a(Landroidx/compose/ui/Modifier;Lam0/a;ZLandroidx/compose/runtime/Composer;I)V + .line 260 +- invoke-static {v7, v11, v4, v15, v12}, Lcom/tidal/android/feature/playerscreen/ui/composables/c1;->a(Landroidx/compose/ui/Modifier;Lyl0/a;ZLandroidx/compose/runtime/Composer;I)V + const v7, 0x52414448 # empty group key + + invoke-interface {v15, v7}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty + + invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty - .line 260 + .line 261 invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V -@@ -5967,6 +5971,22 @@ +@@ -7263,4 +7267,20 @@ + invoke-static {v15, v7, v6, v2}, Lcom/tidal/android/feature/playerscreen/ui/composables/h3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lyl0/a;)V - invoke-static {v4, v3, v7, v6}, Lcom/tidal/android/feature/playerscreen/ui/composables/s3;->a(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V - -+ new-instance v74, Landroidx/window/embedding/a2; # lyrics toggle lambda ++ new-instance v74, Lradiant/PlayerAction; # lyrics toggle lambda + -+ move-object/from16 v75, p2 # action dispatcher ++ move-object/from16 v75, p5 # action dispatcher + -+ const/16 v76, 0x1 # lyrics action disc ++ sget-object v76, Lcom/tidal/android/feature/playerscreen/ui/q$n;->a:Lcom/tidal/android/feature/playerscreen/ui/q$n; # LyricsClicked action + -+ invoke-direct/range {v74 .. v76}, Landroidx/window/embedding/a2;->(Ljava/lang/Object;I)V # build lambda ++ invoke-direct/range {v74 .. v76}, Lradiant/PlayerAction;->(Ljava/lang/Object;Ljava/lang/Object;)V # build lambda + + const/16 v71, 0x0 # changed flags + @@ -32,8 +31,7 @@ + + const/16 v73, 0x0 # null modifier + -+ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V # render sparkle button ++ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lyl0/a;)V # render sparkle button + - .line 365 - iget-object v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; - + .line 366 + iget-object v2, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; diff --git a/patches/lyrics-replace-share-button.patch b/patches/lyrics-replace-share-button.patch index 8b7e92d..0b7a9cd 100644 --- a/patches/lyrics-replace-share-button.patch +++ b/patches/lyrics-replace-share-button.patch @@ -1,46 +1,44 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5328,7 +5328,11 @@ - const/4 v12, 0x0 +@@ -6615,7 +6615,11 @@ + const/4 v6, 0x0 - .line 280 -- invoke-static {v8, v6, v12, v15, v3}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V -+ const v3, 0x52414244 # empty group key + .line 281 +- invoke-static {v11, v13, v6, v15, v12}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V ++ const v12, 0x52414244 # empty group key + -+ invoke-interface {v15, v3}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty ++ invoke-interface {v15, v12}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty + + invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty - .line 281 + .line 282 invoke-interface {v15}, Landroidx/compose/runtime/Composer;->endNode()V -@@ -6156,11 +6160,11 @@ - .line 385 - :cond_61 - :goto_2e -- new-instance v1, Lcom/tidal/android/feature/playerscreen/ui/e0; -+ new-instance v1, Landroidx/window/embedding/b2; # connect click lambda (was share e0) +@@ -7465,9 +7469,9 @@ + :cond_62 +- new-instance v0, Landroidx/compose/animation/core/t; ++ new-instance v0, Lradiant/PlayerAction; # Connect click + +- const/4 v9, 0x1 ++ sget-object v9, Lcom/tidal/android/feature/playerscreen/ui/q$e;->a:Lcom/tidal/android/feature/playerscreen/ui/q$e; # BroadcastClicked action + +- invoke-direct {v0, v10, v9}, Landroidx/compose/animation/core/t;->(Ljava/lang/Object;I)V ++ invoke-direct {v0, v10, v9}, Lradiant/PlayerAction;->(Ljava/lang/Object;Ljava/lang/Object;)V # build connect lambda + + .line 387 + invoke-interface {v7, v0}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V +@@ -7476,10 +7480,12 @@ + :cond_63 + check-cast v0, Lyl0/a; - const/4 v6, 0x0 -+ const/4 v6, 0x1 # connect-clicked disc - -- invoke-direct {v1, v10, v6}, Lcom/tidal/android/feature/playerscreen/ui/e0;->(Ljava/lang/Object;I)V -+ invoke-direct {v1, v10, v6}, Landroidx/window/embedding/b2;->(Ljava/lang/Object;I)V # build connect lambda - - .line 386 - invoke-interface {v7, v1}, Landroidx/compose/runtime/Composer;->updateRememberedValue(Ljava/lang/Object;)V -@@ -6169,9 +6173,13 @@ - :goto_2f - check-cast v1, Lam0/a; - -- const/4 v3, 0x0 + iget-object v8, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->d:Lcom/tidal/android/feature/playerscreen/ui/b; # broadcast state + +- const/4 v15, 0x0 ++ const/4 v6, 0x0 # null modifier + +- invoke-static {v15, v7, v6, v0}, Lcom/tidal/android/feature/playerscreen/ui/composables/o4;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lyl0/a;)V ++ const/4 v15, 0x0 # changed flags + -+ const/4 v3, 0x0 # null modifier -+ -+ const/4 v6, 0x0 # changed flags - -- invoke-static {v6, v1, v7, v3}, Lcom/tidal/android/feature/playerscreen/ui/composables/e5;->a(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V -+ invoke-static {v8, v1, v3, v7, v6}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # render connect button - - if-ne v0, v2, :cond_62 ++ invoke-static {v8, v0, v6, v7, v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/BroadcastButtonKt;->b(Lcom/tidal/android/feature/playerscreen/ui/b;Lyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # render connect button + if-ne v12, v14, :cond_64 diff --git a/patches/lyrics-rl-api-isrc.patch b/patches/lyrics-rl-api-isrc.patch index 0d53720..d2b7921 100644 --- a/patches/lyrics-rl-api-isrc.patch +++ b/patches/lyrics-rl-api-isrc.patch @@ -1,7 +1,7 @@ ---- a/cg0/h.smali -+++ b/cg0/h.smali -@@ -363,6 +363,23 @@ - .method public static final d(Lcom/tidal/sdk/tidalapi/generated/models/TracksResourceObject;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/Map;)Lcom/tidal/android/tidalapi/domain/model/o; +--- a/vf0/h.smali ++++ b/vf0/h.smali +@@ -2030,6 +2030,23 @@ + .method public static final k(Lcom/tidal/sdk/tidalapi/generated/models/TracksResourceObject;Ljava/util/List;Ljava/util/List;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/ArrayList;Ljava/util/Map;)Lcom/tidal/android/tidalapi/domain/model/p; .locals 23 + invoke-virtual/range {p0 .. p0}, Lcom/tidal/sdk/tidalapi/generated/models/TracksResourceObject;->getAttributes()Lcom/tidal/sdk/tidalapi/generated/models/TracksAttributes; @@ -21,6 +21,6 @@ + invoke-static {v0, v1}, Lradiant/IsrcCache;->put(Ljava/lang/String;Ljava/lang/String;)V + + :rl_isrc_skip - move-object/from16 v0, p4 + move-object/from16 v0, p0 move-object/from16 v1, p7 diff --git a/patches/lyrics-rl-api-syllable.patch b/patches/lyrics-rl-api-syllable.patch index d222fe2..4ae9d7e 100644 --- a/patches/lyrics-rl-api-syllable.patch +++ b/patches/lyrics-rl-api-syllable.patch @@ -1,6 +1,6 @@ ---- a/com/tidal/android/feature/playerscreen/ui/composables/f2.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/f2.smali -@@ -932,7 +932,7 @@ +--- a/com/tidal/android/feature/playerscreen/ui/composables/u1.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/u1.smali +@@ -87,7 +87,7 @@ # virtual methods .method public final invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; @@ -9,7 +9,7 @@ .line 1 move-object/from16 v0, p0 -@@ -1158,6 +1158,8 @@ +@@ -313,6 +313,8 @@ .line 100 check-cast v1, Lcom/tidal/android/feature/playerscreen/ui/f; @@ -18,11 +18,11 @@ .line 101 .line 102 const v3, 0x6b82e849 -@@ -1646,6 +1648,26 @@ +@@ -801,6 +803,26 @@ .line 331 iget-object v3, v1, Lcom/tidal/android/feature/playerscreen/ui/f;->a:Ljava/lang/String; -+ iget v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/f2;->b:I ++ iget v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/u1;->b:I + + move/16 v34, v4 # TIDALs active line + @@ -30,11 +30,11 @@ + + move-object/16 v35, v4 # plain line text + -+ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/f2;->d:J ++ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/u1;->d:J + + move-wide/16 v36, v4 # sung colour + -+ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/f2;->e:J ++ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/u1;->e:J + + move-wide/16 v38, v4 # unsung colour + @@ -45,7 +45,7 @@ .line 332 .line 333 invoke-interface {v2}, Landroidx/compose/runtime/State;->getValue()Ljava/lang/Object; -@@ -1672,7 +1694,7 @@ +@@ -827,7 +849,7 @@ .line 344 .line 345 @@ -54,14 +54,14 @@ .line 346 .line 347 -@@ -1727,7 +1749,13 @@ +@@ -882,7 +904,13 @@ .line 369 .line 370 - const/16 v22, 0x0 + move/from16 v1, v33 # line index + -+ invoke-static {v1}, Lradiant/SylLayout;->cb(I)Lam0/l; # per-line layout capture ++ invoke-static {v1}, Lradiant/SylLayout;->cb(I)Lyl0/l; # per-line layout capture + + move-result-object v1 + @@ -69,12 +69,12 @@ .line 371 .line 372 -@@ -1743,7 +1771,7 @@ +@@ -898,7 +926,7 @@ .line 377 .line 378 -- invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILam0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V -+ invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Landroidx/compose/ui/text/AnnotatedString;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZILjava/util/Map;Lam0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V +- invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILyl0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V ++ invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Landroidx/compose/ui/text/AnnotatedString;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZILjava/util/Map;Lyl0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V .line 379 .line 380 diff --git a/patches/lyrics-rl-api-word.patch b/patches/lyrics-rl-api-word.patch index 9c7c459..ea9c725 100644 --- a/patches/lyrics-rl-api-word.patch +++ b/patches/lyrics-rl-api-word.patch @@ -1,5 +1,5 @@ ---- a/com/tidal/android/feature/playerscreen/ui/composables/f2.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/f2.smali +--- a/com/tidal/android/feature/playerscreen/ui/composables/u1.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/u1.smali @@ -87,7 +87,7 @@ # virtual methods @@ -22,7 +22,7 @@ .line 331 iget-object v3, v1, Lcom/tidal/android/feature/playerscreen/ui/f;->a:Ljava/lang/String; -+ iget v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/f2;->b:I ++ iget v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/u1;->b:I + + move/16 v34, v4 + @@ -30,11 +30,11 @@ + + move-object/16 v35, v4 + -+ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/f2;->d:J ++ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/u1;->d:J + + move-wide/16 v36, v4 + -+ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/f2;->e:J ++ iget-wide v4, v0, Lcom/tidal/android/feature/playerscreen/ui/composables/u1;->e:J + + move-wide/16 v38, v4 + @@ -49,8 +49,8 @@ .line 377 .line 378 -- invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILam0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V -+ invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Landroidx/compose/ui/text/AnnotatedString;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZILjava/util/Map;Lam0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V +- invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Ljava/lang/String;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZIILyl0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V ++ invoke-static/range {v3 .. v27}, Landroidx/compose/material3/TextKt;->Text--4IGK_g(Landroidx/compose/ui/text/AnnotatedString;Landroidx/compose/ui/Modifier;JJLandroidx/compose/ui/text/font/FontStyle;Landroidx/compose/ui/text/font/FontWeight;Landroidx/compose/ui/text/font/FontFamily;JLandroidx/compose/ui/text/style/TextDecoration;Landroidx/compose/ui/text/style/TextAlign;JIZILjava/util/Map;Lyl0/l;Landroidx/compose/ui/text/TextStyle;Landroidx/compose/runtime/Composer;III)V .line 379 .line 380 diff --git a/patches/lyrics-rl-api.patch b/patches/lyrics-rl-api.patch index e0f5c8a..8dc5c2d 100644 --- a/patches/lyrics-rl-api.patch +++ b/patches/lyrics-rl-api.patch @@ -1,6 +1,6 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali -@@ -1374,6 +1374,8 @@ +@@ -1459,6 +1459,8 @@ .line 105 check-cast v1, Lcom/aspiro/wamp/model/Track; @@ -9,10 +9,10 @@ .line 106 .line 107 invoke-virtual {v1}, Lcom/aspiro/wamp/model/MediaItem;->getId()I -@@ -1655,7 +1657,11 @@ - .line 239 - .line 240 - .line 241 +@@ -1745,7 +1747,11 @@ + .line 235 + .line 236 + .line 237 - if-nez v9, :cond_a + invoke-static {v0}, Lradiant/RLAPILyricsHook;->shouldKeepOpen(Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;)Z + move-result v20 @@ -20,11 +20,11 @@ + :rl_native_visibility + if-nez v9, :cond_a - .line 242 - .line 243 -@@ -2347,7 +2353,12 @@ + .line 238 + .line 239 +@@ -2437,7 +2443,12 @@ - .line 572 + .line 568 :goto_c + invoke-static {v0}, Lradiant/RLAPILyricsHook;->isOwner(Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;)Z + move-result v20 @@ -33,12 +33,12 @@ invoke-interface {v9, v1}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + :rl_keep_n2 - .line 573 - .line 574 -@@ -2396,7 +2407,12 @@ + .line 569 + .line 570 +@@ -2486,7 +2497,12 @@ - .line 595 - .line 596 + .line 591 + .line 592 + invoke-static {v0}, Lradiant/RLAPILyricsHook;->shouldKeepOpen(Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;)Z + move-result v20 + if-nez v20, :rl_keep_o # only preserve visibility owned by this ViewModel @@ -46,12 +46,12 @@ invoke-interface {v1, v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + :rl_keep_o - .line 597 - .line 598 -@@ -2425,7 +2441,12 @@ + .line 593 + .line 594 +@@ -2515,7 +2531,12 @@ - .line 610 - .line 611 + .line 606 + .line 607 + invoke-static {v0}, Lradiant/RLAPILyricsHook;->isOwner(Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;)Z + move-result v20 + if-nez v20, :rl_keep_n # only preserve RL content owned by this ViewModel @@ -59,8 +59,8 @@ invoke-interface {v1, v6}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + :rl_keep_n - .line 612 - .line 613 + .line 608 + .line 609 --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel$special$$inlined$mapNotNull$1$2.smali @@ -2256,6 +2256,11 @@ @@ -74,4 +74,4 @@ + :rl_hl_done .line 1042 - iget-object v4, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->P:Lkotlinx/coroutines/flow/MutableStateFlow; + iget-object v4, v1, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->S:Lkotlinx/coroutines/flow/MutableStateFlow; diff --git a/patches/lyrics-sparkle-conditional-visibility.patch b/patches/lyrics-sparkle-conditional-visibility.patch index 3d32e90..0974a4a 100644 --- a/patches/lyrics-sparkle-conditional-visibility.patch +++ b/patches/lyrics-sparkle-conditional-visibility.patch @@ -1,37 +1,23 @@ +# rl-locals: com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali e( 80 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5971,6 +5971,14 @@ +@@ -7271,5 +7271,19 @@ + invoke-static {v15, v7, v6, v2}, Lcom/tidal/android/feature/playerscreen/ui/composables/h3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lyl0/a;)V - invoke-static {v4, v3, v7, v6}, Lcom/tidal/android/feature/playerscreen/ui/composables/s3;->a(ILam0/a;Landroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;)V - -+ iget-boolean v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->i:Z # hasLyrics flag ++ iget-object v2, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->j:Lcom/tidal/android/feature/playerscreen/ui/g; # Lyrics state + -+ if-eqz v3, :cond_sparkle_no_lyrics # branch when no lyrics ++ move-object/from16 v77, v2 + -+ const v3, 0x30551b59 # group key (lyrics) ++ iget-boolean v2, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->i:Z # hasLyrics flag + -+ invoke-interface {v7, v3}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open lyrics branch ++ move/from16 v78, v2 + - new-instance v74, Landroidx/window/embedding/a2; # lyrics toggle lambda - - move-object/from16 v75, p2 # action dispatcher -@@ -5987,6 +5995,19 @@ - - invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lam0/a;)V # render sparkle button - -+ invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close lyrics branch ++ iget-object v2, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->a:Lcom/tidal/android/feature/playerscreen/ui/h; # Track info, resets timeout + -+ goto :goto_sparkle_done # skip empty branch ++ move-object/from16 v79, v2 + -+ :cond_sparkle_no_lyrics # no-lyrics branch -+ const v3, 0x3057f75c # group key (no lyrics) ++ invoke-static/range {v77 .. v79}, Lradiant/SparkleIcons;->modeFor(Ljava/lang/Object;ZLjava/lang/Object;)I # Sparkle, spinner or no lyrics + -+ invoke-interface {v7, v3}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty -+ -+ invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty -+ -+ :goto_sparkle_done # join target -+ - .line 365 - iget-object v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; + new-instance v74, Lradiant/PlayerAction; # lyrics toggle lambda + move-object/from16 v75, p5 # action dispatcher diff --git a/patches/manifest.json b/patches/manifest.json index 5a5de53..93cf133 100644 --- a/patches/manifest.json +++ b/patches/manifest.json @@ -82,7 +82,13 @@ "description": "[Only works with API results] - Generates Syllable timings from Line timings using a self trained AI model ", "default": false, "inline": true, - "token": "RL_SYNTHESIZE" + "token": "RL_SYNTHESIZE", + "fileNames": [ + "lyrics-ai-indicator.patch" + ], + "extensionFiles": [ + "radiant/AiSparkle.smali" + ] }, { "type": "toggle", @@ -378,17 +384,43 @@ "type": "toggle", "key": "cover_everywhere", "title": "Cover Everywhere - WIP", - "description": "Applies TIDAL's native blurred album-art backdrop to every Compose based page (Home & Collection)", + "description": "Applies TIDAL's native blurred album-art backdrop to every Compose based page (Home, Collection, Search, Save For Later, Profile, Downloads & Settings)", "default": false, "inline": true, "fileNames": [ "home-backdrop.patch", "collection-backdrop.patch", + "cover-everywhere-pages.patch", "cover-capture.patch" ] } ] }, + { + "id": "AnimatedCovers", + "order": 34, + "fileNames": [ + "animated-covers.patch" + ], + "title": "Animated Covers", + "description": "Replaces cover art with animated artwork when available", + "default": true, + "extensionFiles": [ + "radiant/AnimatedCovers.smali", + "radiant/AnimatedCoverView.smali", + "radiant/RoundOutline.smali" + ] + }, + { + "id": "PlayerCrossfade", + "order": 35, + "fileNames": [ + "player-crossfade.patch" + ], + "title": "Audio Crossfade", + "description": "[Temporary Patch] - Unlocks TIDAL's crossfade between tracks. Set the duration in TIDAL Settings > Audio & Playback (enables the mf-player-crossfade feature flag)", + "default": true + }, { "id": "QualityBadgeColors", "order": 36, @@ -592,7 +624,7 @@ "lyrics-sparkle-conditional-visibility.patch" ], "title": "Replace Lyrics Button", - "description": "Replaces the Lyrics button with the RL Sparkle!", + "description": "Replaces the Lyrics button with the RL Sparkle! Spins while lyrics load, and shows a greyed-out crossed note when a track has no lyrics", "default": true }, { diff --git a/patches/mini-player-black.patch b/patches/mini-player-black.patch index 16b5d88..5d9bff2 100644 --- a/patches/mini-player-black.patch +++ b/patches/mini-player-black.patch @@ -18,22 +18,22 @@ .line 70 .line 71 ---- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali -@@ -2275,11 +2275,7 @@ +--- a/com/tidal/android/feature/appscaffold/ui/composable/k.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/k.smali +@@ -2283,11 +2283,7 @@ - move-result-object v2 + move-result-object v1 - .line 143 -- invoke-static {v2}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; +- invoke-static {v1}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; - -- move-result-object v2 +- move-result-object v1 - + # flush bottom; skip nav inset .line 144 invoke-interface/range {v21 .. v21}, Landroidx/compose/runtime/State;->getValue()Ljava/lang/Object; -@@ -2291,6 +2287,8 @@ +@@ -2299,6 +2295,8 @@ move-result v4 @@ -42,38 +42,38 @@ const/4 v6, 0x2 .line 145 -@@ -2334,6 +2332,12 @@ +@@ -2342,6 +2340,12 @@ - move-result-wide v3 + move-result-wide v2 -+ const v5, -0x1000000 # 0xFF000000 opaque black ++ const v4, -0x1000000 # 0xFF000000 opaque black + -+ invoke-static {v5}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J # pack to color long ++ invoke-static {v4}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J # pack to color long + -+ move-result-wide v3 # override theme color ++ move-result-wide v2 # override theme color + .line 150 - sget-object v5, Lcom/tidal/android/feature/appscaffold/ui/composable/a;->c:Landroidx/compose/foundation/shape/RoundedCornerShape; + sget-object v4, Lcom/tidal/android/feature/appscaffold/ui/composable/a;->c:Landroidx/compose/foundation/shape/RoundedCornerShape; -@@ -2375,6 +2379,10 @@ +@@ -2383,6 +2387,10 @@ - move-result-object v2 + move-result-object v1 -+ invoke-static {v2}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # inset bar content above nav bar (Prevents Bleeding behind Nav Buttons) ++ invoke-static {v1}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # inset bar content above nav bar (Prevents Bleeding behind Nav Buttons) + -+ move-result-object v2 ++ move-result-object v1 + .line 158 - sget-object v3, Landroidx/compose/foundation/layout/Arrangement;->INSTANCE:Landroidx/compose/foundation/layout/Arrangement; + sget-object v2, Landroidx/compose/foundation/layout/Arrangement;->INSTANCE:Landroidx/compose/foundation/layout/Arrangement; -@@ -2487,6 +2495,10 @@ +@@ -2495,6 +2503,10 @@ - invoke-static {v6, v2, v3}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lam0/p;)V + invoke-static {v5, v1, v2}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lyl0/p;)V + const/4 v8, 0x0 # composer $changed flags + + invoke-static {v7, v8}, Lradiant/MiniSeekerLine;->render(Landroidx/compose/runtime/Composer;I)V # draw top-edge seeker + .line 175 - sget-object v2, Landroidx/compose/foundation/layout/ColumnScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/ColumnScopeInstance; + sget-object v1, Landroidx/compose/foundation/layout/ColumnScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/ColumnScopeInstance; diff --git a/patches/mini-player-dynamic-bg.patch b/patches/mini-player-dynamic-bg.patch index 6565961..477aa25 100644 --- a/patches/mini-player-dynamic-bg.patch +++ b/patches/mini-player-dynamic-bg.patch @@ -1,55 +1,55 @@ ---- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali -@@ -2334,6 +2334,12 @@ +--- a/com/tidal/android/feature/appscaffold/ui/composable/k.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/k.smali +@@ -2342,6 +2342,12 @@ - move-result-wide v3 + move-result-wide v2 -+ const/4 v5, 0x0 ++ const/4 v4, 0x0 + -+ invoke-static {v3, v4, v7, v5}, Lradiant/MiniPlayerBackground;->color(JLandroidx/compose/runtime/Composer;I)J # dynamic bg or fallback ++ invoke-static {v2, v4, v7, v4}, Lradiant/MiniPlayerBackground;->color(JLandroidx/compose/runtime/Composer;I)J # dynamic bg or fallback + -+ move-result-wide v3 ++ move-result-wide v2 + .line 150 - sget-object v5, Lcom/tidal/android/feature/appscaffold/ui/composable/a;->c:Landroidx/compose/foundation/shape/RoundedCornerShape; + sget-object v4, Lcom/tidal/android/feature/appscaffold/ui/composable/a;->c:Landroidx/compose/foundation/shape/RoundedCornerShape; --- a/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerViewModel.smali -@@ -1146,6 +1146,10 @@ +@@ -1231,6 +1231,10 @@ - iput-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->W:Lkotlinx/coroutines/flow/StateFlow; + iput-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->a0:Lkotlinx/coroutines/flow/StateFlow; -+ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->Q:Lkotlin/i; ++ iget-object v1, v0, Lcom/tidal/android/feature/playerscreen/ui/PlayerViewModel;->T:Lkotlin/i; + + invoke-interface {v1}, Lkotlin/i;->getValue()Ljava/lang/Object; # init player bg color + return-void .end method -@@ -1711,6 +1715,8 @@ +@@ -1807,6 +1811,8 @@ :goto_6 invoke-interface {v9, v10}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + invoke-static {v10}, Lradiant/MiniPlayerBackground;->setHex(Ljava/lang/String;)V # store player bg hex + - .line 267 - .line 268 - .line 269 -@@ -2410,6 +2416,8 @@ - .line 602 + .line 263 + .line 264 + .line 265 +@@ -2516,6 +2522,8 @@ + .line 598 invoke-interface {v1, v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + invoke-static {v5}, Lradiant/MiniPlayerBackground;->setHex(Ljava/lang/String;)V # clear bg color + - .line 603 - .line 604 - .line 605 -@@ -2627,6 +2635,8 @@ - .line 708 + .line 599 + .line 600 + .line 601 +@@ -2738,6 +2746,8 @@ + .line 704 invoke-interface {v1, v5}, Lkotlinx/coroutines/flow/MutableStateFlow;->setValue(Ljava/lang/Object;)V + invoke-static {v5}, Lradiant/MiniPlayerBackground;->setHex(Ljava/lang/String;)V # clear bg color + - .line 709 - .line 710 - .line 711 + .line 705 + .line 706 + .line 707 diff --git a/patches/mini-player-floating-border.patch b/patches/mini-player-floating-border.patch index 17782b3..e86a9f3 100644 --- a/patches/mini-player-floating-border.patch +++ b/patches/mini-player-floating-border.patch @@ -1,15 +1,15 @@ ---- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali -@@ -2347,6 +2347,12 @@ +--- a/com/tidal/android/feature/appscaffold/ui/composable/k.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/k.smali +@@ -2359,6 +2359,12 @@ - move-result-object v2 + move-result-object v1 + sget-object v5, Lradiant/MiniSeekerFloating;->INSTANCE:Lradiant/MiniSeekerFloating; # draw lambda + -+ invoke-static {v2, v5}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lam0/l;)Landroidx/compose/ui/Modifier; # overlay perimeter stroke ++ invoke-static {v1, v5}, Landroidx/compose/ui/draw/DrawModifierKt;->drawWithContent(Landroidx/compose/ui/Modifier;Lyl0/l;)Landroidx/compose/ui/Modifier; # overlay perimeter stroke + -+ move-result-object v2 # updated modifier ++ move-result-object v1 # updated modifier + .line 153 - sget-object v3, Lkotlin/u;->a:Lkotlin/u; + sget-object v2, Lkotlin/u;->a:Lkotlin/u; diff --git a/patches/mini-player-grey.patch b/patches/mini-player-grey.patch index 17b887c..3987c2d 100644 --- a/patches/mini-player-grey.patch +++ b/patches/mini-player-grey.patch @@ -18,22 +18,22 @@ .line 70 .line 71 ---- a/com/tidal/android/feature/appscaffold/ui/composable/i.smali -+++ b/com/tidal/android/feature/appscaffold/ui/composable/i.smali -@@ -2275,11 +2275,7 @@ +--- a/com/tidal/android/feature/appscaffold/ui/composable/k.smali ++++ b/com/tidal/android/feature/appscaffold/ui/composable/k.smali +@@ -2283,11 +2283,7 @@ - move-result-object v2 + move-result-object v1 - .line 143 -- invoke-static {v2}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; +- invoke-static {v1}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; - -- move-result-object v2 +- move-result-object v1 - + # flush bottom; skip nav inset .line 144 invoke-interface/range {v21 .. v21}, Landroidx/compose/runtime/State;->getValue()Ljava/lang/Object; -@@ -2291,6 +2287,8 @@ +@@ -2299,6 +2295,8 @@ move-result v4 @@ -42,25 +42,25 @@ const/4 v6, 0x2 .line 145 -@@ -2375,6 +2373,10 @@ +@@ -2395,6 +2393,10 @@ - move-result-object v2 + move-result-object v1 -+ invoke-static {v2}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # inset bar content above nav bar (Prevents Bleeding behind Nav Buttons) ++ invoke-static {v1}, Landroidx/compose/foundation/layout/WindowInsetsPadding_androidKt;->navigationBarsPadding(Landroidx/compose/ui/Modifier;)Landroidx/compose/ui/Modifier; # inset bar content above nav bar (Prevents Bleeding behind Nav Buttons) + -+ move-result-object v2 ++ move-result-object v1 + .line 158 - sget-object v3, Landroidx/compose/foundation/layout/Arrangement;->INSTANCE:Landroidx/compose/foundation/layout/Arrangement; + sget-object v2, Landroidx/compose/foundation/layout/Arrangement;->INSTANCE:Landroidx/compose/foundation/layout/Arrangement; -@@ -2487,6 +2489,10 @@ +@@ -2507,6 +2509,10 @@ - invoke-static {v6, v2, v3}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lam0/p;)V + invoke-static {v5, v1, v2}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lyl0/p;)V + const/4 v8, 0x0 # composer $changed flags + + invoke-static {v7, v8}, Lradiant/MiniSeekerLine;->render(Landroidx/compose/runtime/Composer;I)V # draw top-edge seeker + .line 175 - sget-object v2, Landroidx/compose/foundation/layout/ColumnScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/ColumnScopeInstance; + sget-object v1, Landroidx/compose/foundation/layout/ColumnScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/ColumnScopeInstance; diff --git a/patches/player-backdrop-kawarp.patch b/patches/player-backdrop-kawarp.patch index 86f8336..dedf28f 100644 --- a/patches/player-backdrop-kawarp.patch +++ b/patches/player-backdrop-kawarp.patch @@ -1,14 +1,13 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -4613,8 +4613,8 @@ +@@ -5701,7 +5701,7 @@ + move-object/from16 v23, v43 - move-object/from16 v25, v10 + .line 172 +- invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/e3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V ++ invoke-static/range {v16 .. v26}, Lradiant/Kawarp;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V - .line 171 -- invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V -+ invoke-static/range {v16 .. v26}, Lradiant/Kawarp;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V - - const/4 v4, 0x0 + const/16 v5, 0x12c --- a/com/tidal/android/core/ui/composable/c0.smali +++ b/com/tidal/android/core/ui/composable/c0.smali @@ -33,7 +32,7 @@ - - const/4 v15, 0x0 # v15 = changed flags - -- invoke-static/range {v8 .. v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->a(ILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V +- invoke-static/range {v8 .. v15}, Lcom/tidal/android/feature/playerscreen/ui/composables/e3;->a(ILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + invoke-static {v8, v9, v10, v13, v0}, Lradiant/Kawarp;->render(ILjava/lang/String;ZLandroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;)V # RL: Radiant AGSL backdrop :skip diff --git a/patches/player-backdrop-playback.patch b/patches/player-backdrop-playback.patch index 7dacef8..da359a7 100644 --- a/patches/player-backdrop-playback.patch +++ b/patches/player-backdrop-playback.patch @@ -1,13 +1,12 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -4433,6 +4433,8 @@ - - move-object/from16 v25, v10 +@@ -5701,5 +5701,7 @@ + move-object/from16 v23, v43 + sget-object v16, Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;->DARK_BLUR:Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle; # RL: force native Blur player background + - .line 171 - invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/p3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLam0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V + .line 172 + invoke-static/range {v16 .. v26}, Lcom/tidal/android/feature/playerscreen/ui/composables/e3;->b(Lcom/tidal/android/feature/playerscreen/ui/model/PlayerBackgroundStyle;JILjava/lang/String;ZZLyl0/a;Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V --- a/com/tidal/android/core/ui/composable/c0.smali +++ b/com/tidal/android/core/ui/composable/c0.smali @@ -22,8 +21,8 @@ .line 6 .line 7 ---- a/de0/c.smali -+++ b/de0/c.smali +--- a/vd0/c.smali ++++ b/vd0/c.smali @@ -26,29 +26,26 @@ .line 2 .line 3 @@ -43,7 +42,7 @@ - - .line 10 - .line 11 -- invoke-static {v2, v3, v0, v1}, Landroidx/compose/foundation/text/input/a;->b(IILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; +- invoke-static {v2, v3, v0, v1}, Landroidx/compose/foundation/text/input/a;->a(IILjava/lang/String;Ljava/lang/String;)Ljava/lang/String; - - .line 12 - .line 13 @@ -70,7 +69,7 @@ move-result-object v0 - - .line 15 - iput-object v0, p0, Lde0/c;->a:Ljava/lang/String; + iput-object v0, p0, Lvd0/c;->a:Ljava/lang/String; .line 16 @@ -59,10 +56,17 @@ @@ -92,7 +91,7 @@ + :rl_ds_ok .line 2 - invoke-static {p1, v0}, Lcom/squareup/ui/market/layout/e;->c(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap; + invoke-static {p1, v0}, Lrx/functions/u;->b(Landroid/graphics/Bitmap;I)Landroid/graphics/Bitmap; @@ -82,7 +86,7 @@ .line 9 .line 10 diff --git a/patches/player-crossfade.patch b/patches/player-crossfade.patch new file mode 100644 index 0000000..3a70180 --- /dev/null +++ b/patches/player-crossfade.patch @@ -0,0 +1,15 @@ +--- a/nm/c.smali ++++ b/nm/c.smali +@@ -28,10 +28,10 @@ + .line 2 + .line 3 +- const-string v1, "mf-player-crossfade" ++ const-string v1, "mf-player-crossfade-rl-forced-on" # Rename key so default wins + + .line 4 + .line 5 +- const/4 v2, 0x0 ++ const/4 v2, 0x1 # default enabled + + .line 6 + const-string v3, "Player Crossfade Enabled" diff --git a/patches/player-favorite-heart.patch b/patches/player-favorite-heart.patch index fb577b6..a4d4b2f 100644 --- a/patches/player-favorite-heart.patch +++ b/patches/player-favorite-heart.patch @@ -1,24 +1,24 @@ ---- a/com/tidal/android/feature/playerscreen/ui/composables/c1.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/c1.smali -@@ -300,7 +300,7 @@ +--- a/com/tidal/android/feature/playerscreen/ui/composables/v0.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/v0.smali +@@ -91,7 +91,7 @@ - .line 128 - .line 129 -- sget v0, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_circle_checked:I -+ sget v0, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_filled_medium:I # favorited: filled heart (was circle-check) + .line 32 + .line 33 +- sget p2, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_circle_checked:I ++ sget p2, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_filled_medium:I # favorited: filled heart (was circle-check) - .line 130 - .line 131 -@@ -308,11 +308,7 @@ + .line 34 + .line 35 +@@ -99,11 +99,7 @@ - .line 132 - :cond_5 -- sget-object v0, La30/b;->O:La30/a; + .line 36 + :cond_1 +- sget-object p2, Lg20/b;->O:Lg20/a; - -- .line 133 -- .line 134 -- iget v0, v0, La30/a;->a:I -+ sget v0, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_medium:I # not favorited: outline heart (was market plus) +- .line 37 +- .line 38 +- iget p2, p2, Lg20/a;->a:I ++ sget p2, Lcom/tidal/android/feature/playerscreen/ui/R$drawable;->ic_shapes_heart_medium:I # not favorited: outline heart (was market plus) - .line 135 - .line 136 + .line 39 + .line 40 diff --git a/patches/player-hide-playing-from.patch b/patches/player-hide-playing-from.patch index f98bdb7..e540f12 100644 --- a/patches/player-hide-playing-from.patch +++ b/patches/player-hide-playing-from.patch @@ -1,11 +1,11 @@ --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5970,6 +5970,8 @@ - .line 365 - iget-object v3, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; +@@ -7303,6 +7303,8 @@ + .line 366 + iget-object v2, v11, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; -+ const/4 v3, 0x0 # Never show the "Playing from" source at the bottom (relocated above the title, or hidden when off) ++ const/4 v2, 0x0 # Never show the "Playing from" source at the bottom (relocated above the title, or hidden when off) + - if-nez v3, :cond_5a + if-nez v2, :cond_5c - const v3, 0x26ba353b + const v2, 0x2441e85f diff --git a/patches/player-move-playing-from.patch b/patches/player-move-playing-from.patch index b338736..0d1259d 100644 --- a/patches/player-move-playing-from.patch +++ b/patches/player-move-playing-from.patch @@ -1,11 +1,11 @@ -# rl-locals: com/tidal/android/feature/playerscreen/ui/composables/n2.smali a( 45 +# rl-locals: com/tidal/android/feature/playerscreen/ui/composables/c2.smali a( 53 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5202,6 +5202,20 @@ +@@ -6479,6 +6479,20 @@ - .line 262 - :goto_21 -+ iget-object v7, v5, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; # RL move-playing-from: SourceLabel — published in BOTH cover & lyrics view (may be null) + .line 263 + :goto_24 ++ iget-object v7, v3, Lcom/tidal/android/feature/playerscreen/ui/s$a;->m:Lcom/tidal/android/feature/playerscreen/ui/p; # RL move-playing-from: SourceLabel — published in BOTH cover & lyrics view (may be null) + + if-eqz v7, :rl_pf_null # no source -> clear + @@ -19,50 +19,50 @@ + :rl_pf_set + sput-object v7, Lradiant/PlayingFrom;->a:Ljava/lang/String; # publish for n2 (rendered above the title) + - iget-object v7, v5, Lcom/tidal/android/feature/playerscreen/ui/s$a;->c:Lcom/tidal/android/feature/playerscreen/ui/d; + iget-object v7, v3, Lcom/tidal/android/feature/playerscreen/ui/s$a;->c:Lcom/tidal/android/feature/playerscreen/ui/d; - .line 263 ---- a/com/tidal/android/feature/playerscreen/ui/composables/n2.smali -+++ b/com/tidal/android/feature/playerscreen/ui/composables/n2.smali -@@ -674,6 +674,41 @@ - :cond_1e - check-cast v3, Lq20/c2; + .line 264 +--- a/com/tidal/android/feature/playerscreen/ui/composables/c2.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/c2.smali +@@ -671,6 +671,41 @@ + :cond_20 + check-cast v4, Lw10/c2; -+ move-object/from16 v33, v1 # RL: composer held stable for the conditional group ++ move-object/from16 v41, v1 # RL: composer held stable for the conditional group + -+ const v34, 0x52414450 # RL group key ++ const v42, 0x52414450 # RL group key + -+ invoke-interface/range {v33 .. v34}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V ++ invoke-interface/range {v41 .. v42}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V + -+ sget-object v34, Lradiant/PlayingFrom;->a:Ljava/lang/String; # RL: published "Playing from" source name ++ sget-object v42, Lradiant/PlayingFrom;->a:Ljava/lang/String; # RL: published "Playing from" source name + -+ if-eqz v34, :rl_pf_skip # no source -> render nothing above the title ++ if-eqz v42, :rl_pf_skip # no source -> render nothing above the title + -+ sget-object v35, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; ++ sget-object v43, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + -+ const/16 v36, 0x1 # maxLines = 1 ++ const/16 v44, 0x1 # maxLines = 1 + -+ const/16 v37, 0x0 ++ const/16 v45, 0x0 + -+ const/16 v38, 0x0 ++ const/16 v46, 0x0 + -+ const/16 v39, 0x0 ++ const/16 v47, 0x0 + -+ const/16 v40, 0x0 ++ const/16 v48, 0x0 + -+ move-object/from16 v41, v3 # reuse the artist PARAGRAPH_30 style (same colour + size) ++ move-object/from16 v49, v4 # reuse the artist PARAGRAPH_30 style (same colour + size) + -+ move-object/from16 v42, v1 # composer ++ move-object/from16 v50, v1 # composer + -+ const/16 v43, 0x0 ++ const/16 v51, 0x0 + -+ const/16 v44, 0x78 # default-arg mask (matches the artist MarketLabel.e call) ++ const/16 v52, 0x78 # default-arg mask (matches the artist MarketLabel.e call) + -+ invoke-static/range {v34 .. v44}, Lcom/squareup/ui/market/components/MarketLabelKt;->e(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lam0/l;Lq20/c2;Landroidx/compose/runtime/Composer;II)V ++ invoke-static/range {v42 .. v52}, Lcom/squareup/ui/market/components/MarketLabelKt;->e(Ljava/lang/String;Landroidx/compose/ui/Modifier;IILcom/squareup/ui/market/text/a;Landroidx/compose/foundation/interaction/MutableInteractionSource;Lyl0/l;Lw10/c2;Landroidx/compose/runtime/Composer;II)V + + :rl_pf_skip -+ invoke-interface/range {v33 .. v33}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V ++ invoke-interface/range {v41 .. v41}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V + - .line 43 - sget-object v17, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; + .line 37 + sget-object v14, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; diff --git a/patches/player-one-handed.patch b/patches/player-one-handed.patch index 7e98231..07e562a 100644 --- a/patches/player-one-handed.patch +++ b/patches/player-one-handed.patch @@ -1,9 +1,9 @@ # rl-locals: com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali e( 80 --- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali -@@ -5755,6 +5755,20 @@ +@@ -7070,6 +7070,20 @@ - const/4 v8, 0x0 + const/4 v12, 0x0 + invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalLayoutDirection()Landroidx/compose/runtime/ProvidableCompositionLocal; # layout-direction local + @@ -19,15 +19,15 @@ + + invoke-interface/range {v76 .. v77}, Landroidx/compose/runtime/Composer;->startProvider(Landroidx/compose/runtime/ProvidedValue;)V # open Rtl scope (mirror row) + - .line 335 - invoke-static {v1, v8, v14, v3}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; + .line 336 + invoke-static {v0, v8, v15, v12}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; -@@ -6221,6 +6235,8 @@ - .line 393 +@@ -7572,6 +7586,8 @@ + .line 394 invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endNode()V + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endProvider()V # close Rtl scope (end mirror) + - .line 394 - invoke-static/range {v41 .. v41}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F + .line 395 + invoke-static/range {v43 .. v43}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F diff --git a/patches/player-quality-badge-colors.patch b/patches/player-quality-badge-colors.patch index 7e4a6f7..85afafa 100644 --- a/patches/player-quality-badge-colors.patch +++ b/patches/player-quality-badge-colors.patch @@ -1,36 +1,25 @@ --- a/com/tidal/android/feature/playerscreen/ui/composables/SeekbarAndTimeKt.smali +++ b/com/tidal/android/feature/playerscreen/ui/composables/SeekbarAndTimeKt.smali -@@ -372,6 +372,10 @@ - .line 158 - sget v4, Lcom/tidal/android/feature/playerscreen/ui/composables/t4;->g:F - -+ const/high16 v11, 0x40000000 # 2.0f -+ -+ mul-float/2addr v4, v11 # scale atmos icon 2x as it is too small in stock app -+ - .line 159 - .line 160 - invoke-static {v2, v4}, Landroidx/compose/foundation/layout/SizeKt;->height-3ABfNKs(Landroidx/compose/ui/Modifier;F)Landroidx/compose/ui/Modifier; -@@ -461,6 +465,8 @@ - .line 200 +@@ -445,6 +445,8 @@ + .line 192 check-cast v3, Lcom/tidal/android/feature/playerscreen/ui/i$a; + iget v13, v3, Lcom/tidal/android/feature/playerscreen/ui/i$a;->b:I + - .line 201 - .line 202 + .line 193 + .line 194 iget-object v3, v3, Lcom/tidal/android/feature/playerscreen/ui/i$a;->a:Ljava/lang/String; -@@ -481,6 +487,16 @@ +@@ -481,6 +483,16 @@ .line 210 move-object v1, v3 -+ invoke-static {v2, v13}, Lradiant/QualityBadge;->modifier(Landroidx/compose/ui/Modifier;I)Landroidx/compose/ui/Modifier; ++ invoke-static {v6, v13}, Lradiant/QualityBadge;->modifier(Landroidx/compose/ui/Modifier;I)Landroidx/compose/ui/Modifier; + -+ move-result-object v2 ++ move-result-object v6 + + move-object/from16 v3, p1 + -+ invoke-static {v13, v3}, Lradiant/QualityBadge;->style(ILq20/c2;)Lq20/c2; ++ invoke-static {v13, v3}, Lradiant/QualityBadge;->style(ILw10/c2;)Lw10/c2; + + move-result-object v8 + diff --git a/tidal-apk/com.aspiro.tidal_2.200.0-10004_4arch_4dpi_24lang_17858acc31c8eca2fd3a4efbe1f380bf_apkmirror.com.apkm b/tidal-apk/com.aspiro.tidal_2.213.0-10017_4arch_4dpi_24lang_c0e92e5bfeed2b6fa8073e45e3c738c5_apkmirror.com.apkm similarity index 83% rename from tidal-apk/com.aspiro.tidal_2.200.0-10004_4arch_4dpi_24lang_17858acc31c8eca2fd3a4efbe1f380bf_apkmirror.com.apkm rename to tidal-apk/com.aspiro.tidal_2.213.0-10017_4arch_4dpi_24lang_c0e92e5bfeed2b6fa8073e45e3c738c5_apkmirror.com.apkm index 8e19155..8901e7f 100644 Binary files a/tidal-apk/com.aspiro.tidal_2.200.0-10004_4arch_4dpi_24lang_17858acc31c8eca2fd3a4efbe1f380bf_apkmirror.com.apkm and b/tidal-apk/com.aspiro.tidal_2.213.0-10017_4arch_4dpi_24lang_c0e92e5bfeed2b6fa8073e45e3c738c5_apkmirror.com.apkm differ diff --git a/tools/kawarp-build/src/radiant/Kawarp.java b/tools/kawarp-build/src/radiant/Kawarp.java index ba07a98..2306afd 100644 --- a/tools/kawarp-build/src/radiant/Kawarp.java +++ b/tools/kawarp-build/src/radiant/Kawarp.java @@ -24,7 +24,7 @@ import androidx.compose.ui.platform.AndroidCompositionLocals_androidKt; import coil.request.CachePolicy; -import com.tidal.android.feature.playerscreen.ui.composables.p3; +import com.tidal.android.feature.playerscreen.ui.composables.e3; import com.tidal.android.feature.playerscreen.ui.model.PlayerBackgroundStyle; import com.tidal.android.image.coil.base.CoilImageLoader; import com.tidal.android.image.core.b; // MARKER: R8 core.b @@ -41,7 +41,7 @@ import java.util.concurrent.Executors; * (cloned at tools/kawarp-agsl) and is compiled into this bundle by tools/kawarp-build/build.sh; * this class only holds what is TIDAL/Compose-specific */ -public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallback, b0.c { // MARKER: R8 am0.l b0.c +public final class Kawarp implements yl0.l, Runnable, Choreographer.FrameCallback, c0.c { // MARKER: R8 yl0.l c0.c /** Stop the frame loop once nothing has drawn for this long (player left / backgrounded). */ private static final long IDLE_STOP_MS = 500L; @@ -61,7 +61,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac * would allocate an Integer per frame for nothing. */ private static final MutableIntState frameState = SnapshotIntStateKt.mutableIntStateOf(0); - /** Flips true on any shader failure; read during composition so we recompose onto p3.a. */ + /** Flips true on any shader failure; read during composition so we recompose onto e3.a. */ private static final MutableState fallbackState = SnapshotStateKt.mutableStateOf$default(Boolean.FALSE, null, 2, null); @@ -70,7 +70,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac private static KawarpEngine engine; /** TIDAL's application-scoped Coil loader and the context its requests are built with. */ - private static volatile coil.f loader; // MARKER: R8 coil.f + private static volatile coil.e loader; // MARKER: R8 coil.e private static volatile Context appContext; private static volatile String requestedUuid; private static volatile int loadToken; @@ -95,11 +95,11 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac /** - * Drop-in replacement for TIDAL's PlayerBackground composable (p3.b) - the patch redirects + * Drop-in replacement for TIDAL's PlayerBackground composable (e3.b) - the patch redirects * the call site here so the whole backdrop works <3 */ public static void b(PlayerBackgroundStyle style, long color, int albumId, String coverUuid, - boolean isPlaying, boolean isSeeking, am0.a progress, Modifier modifier, // MARKER: R8 am0.a + boolean isPlaying, boolean isSeeking, yl0.a progress, Modifier modifier, // MARKER: R8 yl0.a Composer composer, int changed) { render(albumId, coverUuid, isPlaying, modifier, composer); } @@ -112,7 +112,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac boolean ok = !((Boolean) fallbackState.getValue()).booleanValue() && ensureEngine(); if (!ok) { // No (working) AGSL here - fall back to TIDAL's own blurred backdrop. - p3.a(albumId, coverUuid, isPlaying, false, null, modifier, composer, 0); // MARKER: R8 p3.a + e3.a(albumId, coverUuid, isPlaying, false, null, modifier, composer, 0); // MARKER: R8 e3.a } else { engine.setPlaying(isPlaying); request(albumId, coverUuid); @@ -131,8 +131,8 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac Object local = composer.consume(AndroidCompositionLocals_androidKt.getLocalContext()); if (!(local instanceof Context)) return; Context app = ((Context) local).getApplicationContext(); - if (!(app instanceof ce0.b.a)) return; // MARKER: R8 ce0.b.a - Object tidalLoader = ((ce0.b.a) app).a().a(); // MARKER: R8 ce0.b.a + if (!(app instanceof ud0.b.a)) return; // MARKER: R8 ud0.b.a + Object tidalLoader = ((ud0.b.a) app).a().a(); // MARKER: R8 ud0.b.a if (!(tidalLoader instanceof CoilImageLoader)) return; appContext = app; loader = ((CoilImageLoader) tidalLoader).a; @@ -181,7 +181,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac */ public void run() { try { - xd0.g tidal = new xd0.g(appContext, new b.a(String.valueOf(albumId), uuid), // MARKER: R8 xd0.g b.a + pd0.g tidal = new pd0.g(appContext, new b.a(String.valueOf(albumId), uuid), // MARKER: R8 pd0.g b.a null, null, false, null, null, false); coil.request.h.a req = coil.request.h.a(com.tidal.android.image.coil.c.a(tidal, null)); // MARKER: R8 h.a coil.c.a coil.request.b d = req.b; // MARKER: R8 req.b @@ -207,7 +207,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac public void b(Drawable placeholder) {} /** Target.onError - not in any of TIDAL's stores. */ - public void d(Drawable error) { fail(); } + public void c(Drawable error) { fail(); } private void fail() { if (token == loadToken) requestedUuid = null; @@ -258,7 +258,7 @@ public final class Kawarp implements am0.l, Runnable, Choreographer.FrameCallbac engine.draw(AndroidCanvas_androidKt.getNativeCanvas(scope.getDrawContext().getCanvas()), width, height); } catch (Throwable t) { - fallbackState.setValue(Boolean.TRUE); // AGSL draw failed: recompose onto p3.a // MARKER: R8 p3.a + fallbackState.setValue(Boolean.TRUE); // AGSL draw failed: recompose onto e3.a // MARKER: R8 e3.a } } } diff --git a/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java b/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java index 8e1401f..d3a5a0e 100644 --- a/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java +++ b/tools/kawarp-build/stubs/androidx/compose/ui/draw/DrawModifierKt.java @@ -1,5 +1,5 @@ package androidx.compose.ui.draw; import androidx.compose.ui.Modifier; public final class DrawModifierKt { - public static Modifier drawBehind(Modifier modifier, am0.l onDraw) { return null; } // MARKER: R8 am0.l + public static Modifier drawBehind(Modifier modifier, yl0.l onDraw) { return null; } // MARKER: R8 yl0.l } diff --git a/tools/kawarp-build/stubs/b0/c.java b/tools/kawarp-build/stubs/b0/c.java deleted file mode 100644 index 832407d..0000000 --- a/tools/kawarp-build/stubs/b0/c.java +++ /dev/null @@ -1,9 +0,0 @@ -package b0; -// MARKER: R8 whole class: TIDAL dex FQN is `b0.c` - both package and name roll -import android.graphics.drawable.Drawable; -/** coil.target.Target (R8 name in TIDAL 2.200): a=onSuccess, b=onStart, d=onError. */ -public interface c { - void a(Drawable success); - void b(Drawable start); - void d(Drawable error); -} diff --git a/tools/kawarp-build/stubs/c0/c.java b/tools/kawarp-build/stubs/c0/c.java new file mode 100644 index 0000000..5f2a4ac --- /dev/null +++ b/tools/kawarp-build/stubs/c0/c.java @@ -0,0 +1,9 @@ +package c0; +// MARKER: R8 whole class: TIDAL dex FQN is `c0.c` - both package and name roll +import android.graphics.drawable.Drawable; +/** coil.target.Target (R8 name in TIDAL 2.213): a=onSuccess, b=onStart, c=onError. */ +public interface c { + void a(Drawable success); + void b(Drawable start); + void c(Drawable error); +} diff --git a/tools/kawarp-build/stubs/coil/f.java b/tools/kawarp-build/stubs/coil/e.java similarity index 59% rename from tools/kawarp-build/stubs/coil/f.java rename to tools/kawarp-build/stubs/coil/e.java index ea5be82..f6e2eaa 100644 --- a/tools/kawarp-build/stubs/coil/f.java +++ b/tools/kawarp-build/stubs/coil/e.java @@ -1,6 +1,6 @@ package coil; -// MARKER: R8 whole class: TIDAL dex FQN is `coil.f` - both package and name roll +// MARKER: R8 whole class: TIDAL dex FQN is `coil.e` - both package and name roll /** coil.ImageLoader; b() is enqueue(). */ -public interface f { +public interface e { coil.request.d b(coil.request.h request); } diff --git a/tools/kawarp-build/stubs/coil/request/b.java b/tools/kawarp-build/stubs/coil/request/b.java index 45c6aa7..df3ba16 100644 --- a/tools/kawarp-build/stubs/coil/request/b.java +++ b/tools/kawarp-build/stubs/coil/request/b.java @@ -9,12 +9,12 @@ import kotlinx.coroutines.CoroutineDispatcher; */ public final class b { public CoroutineDispatcher a, b, c, d; - public d0.c.a e; // MARKER: R8 d0.c.a + public e0.c.a e; // MARKER: R8 e0.c.a public coil.size.Precision f; public android.graphics.Bitmap.Config g; public boolean h; public CachePolicy i, j, k; public b(CoroutineDispatcher a, CoroutineDispatcher b, CoroutineDispatcher c, CoroutineDispatcher d, - d0.c.a transition, coil.size.Precision precision, android.graphics.Bitmap.Config config, // MARKER: R8 d0.c.a + e0.c.a transition, coil.size.Precision precision, android.graphics.Bitmap.Config config, // MARKER: R8 e0.c.a boolean h, CachePolicy memory, CachePolicy disk, CachePolicy network) {} } diff --git a/tools/kawarp-build/stubs/coil/request/h.java b/tools/kawarp-build/stubs/coil/request/h.java index 9bb0f46..4643c44 100644 --- a/tools/kawarp-build/stubs/coil/request/h.java +++ b/tools/kawarp-build/stubs/coil/request/h.java @@ -7,7 +7,7 @@ public final class h { /** defaults block the built request copies its cache policies from */ public b b; /** target */ - public b0.c d; // MARKER: R8 b0.c + public c0.c d; // MARKER: R8 c0.c public h a() { return null; } } } diff --git a/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java b/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/e3.java similarity index 65% rename from tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java rename to tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/e3.java index 09860b0..0e6fe93 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/p3.java +++ b/tools/kawarp-build/stubs/com/tidal/android/feature/playerscreen/ui/composables/e3.java @@ -1,9 +1,9 @@ package com.tidal.android.feature.playerscreen.ui.composables; -// MARKER: R8 whole class: TIDAL dex FQN is `com.tidal.android.feature.playerscreen.ui.composables.p3` - both package and name roll +// MARKER: R8 whole class: TIDAL dex FQN is `com.tidal.android.feature.playerscreen.ui.composables.e3` - both package and name roll import androidx.compose.runtime.Composer; import androidx.compose.ui.Modifier; /** TIDAL's DarkBlurBackground composable (used as the pre-Android-13 fallback). */ -public final class p3 { +public final class e3 { public static void a(int albumId, String coverUuid, boolean isPlaying, boolean isSeeking, - am0.a progress, Modifier modifier, Composer composer, int changed) {} // MARKER: R8 am0.a + yl0.a progress, Modifier modifier, Composer composer, int changed) {} // MARKER: R8 yl0.a } diff --git a/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java b/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java index e483ad1..d057bbe 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java +++ b/tools/kawarp-build/stubs/com/tidal/android/image/coil/base/CoilImageLoader.java @@ -1,5 +1,5 @@ package com.tidal.android.image.coil.base; -/** TIDAL's xd0.e implementation; a is the underlying Coil ImageLoader. */ -public final class CoilImageLoader implements xd0.e { // MARKER: R8 xd0.e - public final coil.f a = null; // MARKER: R8 coil.f +/** TIDAL's pd0.e implementation; a is the underlying Coil ImageLoader. */ +public final class CoilImageLoader implements pd0.e { // MARKER: R8 pd0.e + public final coil.e a = null; // MARKER: R8 coil.e } diff --git a/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java b/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java index 99f0509..4d7de7c 100644 --- a/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java +++ b/tools/kawarp-build/stubs/com/tidal/android/image/coil/c.java @@ -2,5 +2,5 @@ package com.tidal.android.image.coil; // MARKER: R8 whole class: TIDAL dex FQN is `com.tidal.android.image.coil.c` - both package and name roll /** TIDAL request -> Coil request; installs the AlbumCover data the interceptor resolves. */ public final class c { - public static coil.request.h a(xd0.g request, androidx.compose.ui.layout.ContentScale scale) { return null; } // MARKER: R8 xd0.g + public static coil.request.h a(pd0.g request, androidx.compose.ui.layout.ContentScale scale) { return null; } // MARKER: R8 pd0.g } diff --git a/tools/kawarp-build/stubs/d0/c.java b/tools/kawarp-build/stubs/e0/c.java similarity index 60% rename from tools/kawarp-build/stubs/d0/c.java rename to tools/kawarp-build/stubs/e0/c.java index 02ae36a..6ef3fba 100644 --- a/tools/kawarp-build/stubs/d0/c.java +++ b/tools/kawarp-build/stubs/e0/c.java @@ -1,4 +1,4 @@ -package d0; -// MARKER: R8 whole class: TIDAL dex FQN is `d0.c` - both package and name roll +package e0; +// MARKER: R8 whole class: TIDAL dex FQN is `e0.c` - both package and name roll /** coil.transition.Transition; c.a is Transition.Factory. */ public interface c { interface a {} } diff --git a/tools/kawarp-build/stubs/xd0/e.java b/tools/kawarp-build/stubs/pd0/e.java similarity index 58% rename from tools/kawarp-build/stubs/xd0/e.java rename to tools/kawarp-build/stubs/pd0/e.java index eca03e3..81102a5 100644 --- a/tools/kawarp-build/stubs/xd0/e.java +++ b/tools/kawarp-build/stubs/pd0/e.java @@ -1,4 +1,4 @@ -package xd0; -// MARKER: R8 whole class: TIDAL dex FQN is `xd0.e` - both package and name roll +package pd0; +// MARKER: R8 whole class: TIDAL dex FQN is `pd0.e` - both package and name roll /** TIDAL's ImageLoader interface (implemented by CoilImageLoader). */ public interface e {} diff --git a/tools/kawarp-build/stubs/pd0/f.java b/tools/kawarp-build/stubs/pd0/f.java new file mode 100644 index 0000000..6bd17bc --- /dev/null +++ b/tools/kawarp-build/stubs/pd0/f.java @@ -0,0 +1,4 @@ +package pd0; +// MARKER: R8 whole class: TIDAL dex FQN is `pd0.f` - both package and name roll +/** Size spec wrapper accepted by pd0.g's constructor; we always pass null. */ +public final class f {} diff --git a/tools/kawarp-build/stubs/xd0/g.java b/tools/kawarp-build/stubs/pd0/g.java similarity index 82% rename from tools/kawarp-build/stubs/xd0/g.java rename to tools/kawarp-build/stubs/pd0/g.java index 0c0093f..53a568b 100644 --- a/tools/kawarp-build/stubs/xd0/g.java +++ b/tools/kawarp-build/stubs/pd0/g.java @@ -1,5 +1,5 @@ -package xd0; -// MARKER: R8 whole class: TIDAL dex FQN is `xd0.g` - both package and name roll +package pd0; +// MARKER: R8 whole class: TIDAL dex FQN is `pd0.g` - both package and name roll import android.content.Context; import com.tidal.android.image.core.b; // MARKER: R8 core.b /** TIDAL's ImageRequest. */ diff --git a/tools/kawarp-build/stubs/ce0/b.java b/tools/kawarp-build/stubs/ud0/b.java similarity index 57% rename from tools/kawarp-build/stubs/ce0/b.java rename to tools/kawarp-build/stubs/ud0/b.java index 88a53ec..520d16f 100644 --- a/tools/kawarp-build/stubs/ce0/b.java +++ b/tools/kawarp-build/stubs/ud0/b.java @@ -1,7 +1,7 @@ -package ce0; -// MARKER: R8 whole class: TIDAL dex FQN is `ce0.b` - both package and name roll +package ud0; +// MARKER: R8 whole class: TIDAL dex FQN is `ud0.b` - both package and name roll /** Dagger image component; the Application implements b.a and hands out the loader. */ public interface b { - xd0.e a(); // MARKER: R8 xd0.e + pd0.e a(); // MARKER: R8 pd0.e interface a { b a(); } } diff --git a/tools/kawarp-build/stubs/xd0/f.java b/tools/kawarp-build/stubs/xd0/f.java deleted file mode 100644 index 487b824..0000000 --- a/tools/kawarp-build/stubs/xd0/f.java +++ /dev/null @@ -1,4 +0,0 @@ -package xd0; -// MARKER: R8 whole class: TIDAL dex FQN is `xd0.f` - both package and name roll -/** Size spec wrapper accepted by xd0.g's constructor; we always pass null. */ -public final class f {} diff --git a/tools/kawarp-build/stubs/am0/a.java b/tools/kawarp-build/stubs/yl0/a.java similarity index 62% rename from tools/kawarp-build/stubs/am0/a.java rename to tools/kawarp-build/stubs/yl0/a.java index 7544042..598aba4 100644 --- a/tools/kawarp-build/stubs/am0/a.java +++ b/tools/kawarp-build/stubs/yl0/a.java @@ -1,4 +1,4 @@ -package am0; -// MARKER: R8 whole class: TIDAL dex FQN is `am0.a` - both package and name roll +package yl0; +// MARKER: R8 whole class: TIDAL dex FQN is `yl0.a` - both package and name roll /** kotlin.jvm.functions.Function0 (obfuscated in the TIDAL dex). */ public interface a { Object invoke(); } diff --git a/tools/kawarp-build/stubs/am0/l.java b/tools/kawarp-build/stubs/yl0/l.java similarity index 63% rename from tools/kawarp-build/stubs/am0/l.java rename to tools/kawarp-build/stubs/yl0/l.java index 80c88f5..855f0c1 100644 --- a/tools/kawarp-build/stubs/am0/l.java +++ b/tools/kawarp-build/stubs/yl0/l.java @@ -1,4 +1,4 @@ -package am0; -// MARKER: R8 whole class: TIDAL dex FQN is `am0.l` - both package and name roll +package yl0; +// MARKER: R8 whole class: TIDAL dex FQN is `yl0.l` - both package and name roll /** kotlin.jvm.functions.Function1 (obfuscated in the TIDAL dex). */ public interface l { Object invoke(Object p1); } diff --git a/tools/rl-ext-build/build.sh b/tools/rl-ext-build/build.sh new file mode 100755 index 0000000..7a10bfb --- /dev/null +++ b/tools/rl-ext-build/build.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +# Builds the RL extension classes into smali +# +# ./build.sh # rebuild extension smali +# +# Java 8, no lambdas, no nested classes +set -euo pipefail + +here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +repo="$(cd "$here/../.." && pwd)" + +JAVA_HOME="${JAVA_HOME:-/home/meow/toolchain/jdk-21.0.12+8}" +ANDROID_SDK="${ANDROID_SDK:-/home/meow/toolchain/android-sdk}" +ANDROID_JAR="${ANDROID_JAR:-$ANDROID_SDK/platforms/android-36/android.jar}" +D8="${D8:-$(ls -d "$ANDROID_SDK"/build-tools/*/d8 | sort | tail -1)}" +BAKSMALI="${BAKSMALI:-/home/meow/tools/baksmali.jar}" + +export PATH="$JAVA_HOME/bin:$PATH" +javac="$JAVA_HOME/bin/javac" +java="$JAVA_HOME/bin/java" +out="$here/build" + +rm -rf "$out" +mkdir -p "$out/stubs" "$out/classes" "$out/dex" "$out/smali" + +echo "==> javac stubs" +find "$here/stubs" -name '*.java' > "$out/stubs.list" +"$javac" -nowarn -g:none --release 8 -cp "$ANDROID_JAR" -d "$out/stubs" @"$out/stubs.list" 2>&1 | + grep -v 'bootstrap class path\|source value 8\|target value 8\|deprecat\|^[0-9] warning' || true + +echo "==> javac sources" +find "$here/src" -name '*.java' > "$out/src.list" +"$javac" -nowarn -g:none --release 8 -cp "$ANDROID_JAR:$out/stubs" -d "$out/classes" @"$out/src.list" 2>&1 | + grep -v 'bootstrap class path\|source value 8\|target value 8\|deprecat\|^[0-9] warning' || true + +echo "==> d8" +find "$out/classes" -name '*.class' > "$out/class.list" +"$D8" --min-api 24 --no-desugaring --lib "$ANDROID_JAR" --classpath "$out/stubs" \ + --output "$out/dex" @"$out/class.list" + +echo "==> baksmali" +"$java" -jar "$BAKSMALI" d "$out/dex/classes.dex" -o "$out/smali" + +echo "==> post-process" +find "$out/smali" -name '*.smali' -print0 | xargs -0 sed -i \ + -e 's/getSizeNHjbRc/getSize-NH-jbRc/g' \ + -e 's/getIntrinsicSizeNHjbRc/getIntrinsicSize-NH-jbRc/g' \ + -e 's/drawxKDEd0/draw-x_KDEd0/g' \ + -e 's/getWidthImpl/getWidth-impl/g' \ + -e 's/getHeightImpl/getHeight-impl/g' + +if grep -rl 'invoke-custom\|access\$' "$out/smali" >/dev/null; then + echo "!! invoke-custom / access\$ bridge in output - keep it to one class, no lambdas" >&2 + exit 1 +fi + +dest="$repo/patches/extension/radiant" +for c in AiSparkle AnimatedCovers AnimatedCoverView RoundOutline SparkleIcons; do + rm -f "$dest/$c".smali + cp "$out"/smali/radiant/"$c".smali "$dest/" + echo " -> patches/extension/radiant/$c.smali" +done diff --git a/tools/rl-ext-build/src/radiant/AiSparkle.java b/tools/rl-ext-build/src/radiant/AiSparkle.java new file mode 100644 index 0000000..faf3754 --- /dev/null +++ b/tools/rl-ext-build/src/radiant/AiSparkle.java @@ -0,0 +1,155 @@ +package radiant; + +import android.graphics.Canvas; +import android.graphics.LinearGradient; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.Shader; +import android.os.Handler; +import android.os.Looper; +import android.os.SystemClock; +import android.view.Choreographer; + +import androidx.compose.runtime.Composer; +import androidx.compose.runtime.MutableState; +import androidx.compose.runtime.SnapshotStateKt; +import androidx.compose.ui.geometry.Size; +import androidx.compose.ui.graphics.AndroidCanvas_androidKt; +import androidx.compose.ui.graphics.ColorFilter; +import androidx.compose.ui.graphics.drawscope.DrawScope; +import androidx.compose.ui.graphics.painter.Painter; + +import org.json.JSONObject; + +// Rainbow sparkle when syllables are AI generated +public final class AiSparkle extends Painter implements Choreographer.FrameCallback, Runnable { + private static final String TAG = "RLAiSparkle"; + + // Same colours as desktop + private static final int[] PALETTE = {0xFFFF6B9D, 0xFFFFD166, 0xFF5EE7FF, 0xFFA78BFA}; + private static final long CYCLE_MS = 6000L; + private static final float[] STOPS = {0f, 0.35f, 0.65f, 1f}; + + // Current lyrics are AI generated + static final MutableState aiState = SnapshotStateKt.mutableStateOf$default(Boolean.FALSE, null, 2, null); + // Frame tick for the animation + static final MutableState tick = SnapshotStateKt.mutableStateOf$default(Long.valueOf(0L), null, 2, null); + + private static final AiSparkle POSTER = new AiSparkle(null); + private static volatile boolean pending; + private static AiSparkle cached; + private static boolean frameScheduled; + private static long lastDrawMs; + + private final Painter base; + private final Paint fillPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final int[] colors = new int[4]; + + private AiSparkle(Painter base) { + this.base = base; + fillPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); + } + + // Check the API response for AI syllables + public static void onResponse(String body) { + boolean ai = false; + try { + JSONObject o = new JSONObject(body); + ai = "Word".equals(o.optString("type", "")) && o.optBoolean("_synthesized", false); + } catch (Throwable ignored) { + } + post(ai); + } + + // New lookup, clear it + public static void reset() { + post(false); + } + + // Use the rainbow painter while AI + public static Painter wrap(Painter painter, Composer composer) { + if (!((Boolean) aiState.getValue()).booleanValue() || painter == null) return painter; + AiSparkle c = cached; + if (c == null || c.base != painter) { + c = new AiSparkle(painter); + cached = c; + } + return c; + } + + private static void post(boolean ai) { + pending = ai; + new Handler(Looper.getMainLooper()).post(POSTER); + } + + @Override + public void run() { + Boolean v = Boolean.valueOf(pending); + if (!v.equals(aiState.getValue())) aiState.setValue(v); + } + + @Override + public long getIntrinsicSizeNHjbRc() { + return base.getIntrinsicSizeNHjbRc(); + } + + // Ignore the button tint + @Override + public boolean applyColorFilter(ColorFilter colorFilter) { + return true; + } + + @Override + public void onDraw(DrawScope scope) { + tick.getValue(); // redraw every frame + long now = SystemClock.uptimeMillis(); + lastDrawMs = now; + if (!frameScheduled) { + frameScheduled = true; + Choreographer.getInstance().postFrameCallback(POSTER); + } + + long size = scope.getSizeNHjbRc(); + float w = Size.getWidthImpl(size); + float h = Size.getHeightImpl(size); + if (w <= 0f || h <= 0f) return; + Canvas canvas = AndroidCanvas_androidKt.getNativeCanvas(scope.getDrawContext().getCanvas()); + float phase = (now % CYCLE_MS) / (float) CYCLE_MS; + + // Paint the gradient into the icon + int save = canvas.saveLayer(0f, 0f, w, h, null); + base.drawxKDEd0(scope, size, 1f, null); + for (int i = 0; i < 4; i++) colors[i] = lerpPalette(phase + i * 0.25f); + fillPaint.setShader(new LinearGradient(0f, h, w, 0f, colors, STOPS, Shader.TileMode.CLAMP)); + canvas.drawRect(0f, 0f, w, h, fillPaint); + canvas.restoreToCount(save); + } + + @Override + public void doFrame(long frameTimeNanos) { + long now = SystemClock.uptimeMillis(); + if (((Boolean) aiState.getValue()).booleanValue() && now - lastDrawMs < 500L) { + tick.setValue(Long.valueOf(now)); + Choreographer.getInstance().postFrameCallback(POSTER); + } else { + frameScheduled = false; + } + } + + // Blend between palette colours + private static int lerpPalette(float phase) { + float p = phase - (float) Math.floor(phase); + float x = p * 4f; + int i = (int) x; + float f = x - i; + int a = PALETTE[i & 3]; + int b = PALETTE[(i + 1) & 3]; + int ar = (a >> 16) & 0xFF, ag = (a >> 8) & 0xFF, ab = a & 0xFF; + int br = (b >> 16) & 0xFF, bg = (b >> 8) & 0xFF, bb = b & 0xFF; + int rr = (int) (ar + (br - ar) * f); + int gg = (int) (ag + (bg - ag) * f); + int bl = (int) (ab + (bb - ab) * f); + return 0xFF000000 | (rr << 16) | (gg << 8) | bl; + } +} diff --git a/tools/rl-ext-build/src/radiant/AnimatedCoverView.java b/tools/rl-ext-build/src/radiant/AnimatedCoverView.java new file mode 100644 index 0000000..f2db2cc --- /dev/null +++ b/tools/rl-ext-build/src/radiant/AnimatedCoverView.java @@ -0,0 +1,253 @@ +package radiant; + +import android.graphics.SurfaceTexture; +import android.media.MediaPlayer; +import android.view.Surface; +import android.view.TextureView; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewParent; +import android.widget.ImageView; + +import java.util.ArrayList; +import java.util.Iterator; +import java.lang.ref.WeakReference; + +// Animated cover over the lyrics pill cover +public final class AnimatedCoverView extends TextureView implements TextureView.SurfaceTextureListener, + MediaPlayer.OnPreparedListener, MediaPlayer.OnInfoListener, MediaPlayer.OnErrorListener, + View.OnLayoutChangeListener, View.OnAttachStateChangeListener, Runnable { + + private static final ArrayList> live = new ArrayList>(); + + private final ImageView target; + private final ViewGroup host; + private int albumId = -1; + private String url; + private MediaPlayer player; + private boolean outlined; + private Surface surface; + + private AnimatedCoverView(ImageView target, ViewGroup host) { + super(target.getContext()); + this.target = target; + this.host = host; + setOpaque(false); + setAlpha(0f); + setVisibility(View.INVISIBLE); + setSurfaceTextureListener(this); + setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_NO); + } + + // Pill cover was loaded + public static void attach(ImageView image, int albumId) { + try { + if (image == null) return; + AnimatedCoverView v = find(image); + if (v == null) { + // Use the CardView, ConstraintSet crashes otherwise + ViewGroup host = frameAncestor(image); + if (host == null) return; + v = new AnimatedCoverView(image, host); + v.setId(View.generateViewId()); + host.addView(v, new ViewGroup.LayoutParams(Math.max(1, image.getWidth()), Math.max(1, image.getHeight()))); + image.addOnLayoutChangeListener(v); + image.addOnAttachStateChangeListener(v); + if (image.getParent() instanceof View && image.getParent() != host) { + ((View) image.getParent()).addOnLayoutChangeListener(v); + } + live.add(new WeakReference(v)); + v.sync(); + } + v.albumId = albumId; + v.refresh(); + } catch (Throwable ignored) { + } + } + + // New cover URL, update every overlay + static void refreshAll() { + try { + Iterator> it = live.iterator(); + while (it.hasNext()) { + AnimatedCoverView v = it.next().get(); + if (v == null) it.remove(); + else v.refresh(); + } + } catch (Throwable ignored) { + } + } + + private static ViewGroup frameAncestor(View view) { + ViewParent p = view.getParent(); + while (p instanceof ViewGroup) { + if (p instanceof android.widget.FrameLayout) return (ViewGroup) p; + p = p.getParent(); + } + return null; + } + + private static AnimatedCoverView find(ImageView image) { + Iterator> it = live.iterator(); + while (it.hasNext()) { + AnimatedCoverView v = it.next().get(); + if (v == null) it.remove(); + else if (v.target == image) return v; + } + return null; + } + + private void refresh() { + String u = AnimatedCovers.urlFor(albumId); + if (u == null ? url == null : u.equals(url)) return; + release(); + url = u; + if (u == null) { + setAlpha(0f); + setVisibility(View.INVISIBLE); + return; + } + setAlpha(0f); + setVisibility(View.VISIBLE); + start(); + } + + private void start() { + if (url == null || surface == null || player != null) return; + try { + MediaPlayer mp = new MediaPlayer(); + player = mp; + mp.setSurface(surface); + mp.setOnPreparedListener(this); + mp.setOnInfoListener(this); + mp.setOnErrorListener(this); + mp.setLooping(true); + mp.setVolume(0f, 0f); + mp.setDataSource(url); + mp.prepareAsync(); + } catch (Throwable t) { + release(); + } + } + + private void release() { + MediaPlayer mp = player; + player = null; + if (mp != null) { + try { + mp.release(); + } catch (Throwable ignored) { + } + } + } + + // Line up with the cover + private void sync() { + ViewGroup.LayoutParams lp = getLayoutParams(); + int w = Math.max(1, target.getWidth()); + int h = Math.max(1, target.getHeight()); + if (lp != null && (lp.width != w || lp.height != h)) { + lp.width = w; + lp.height = h; + setLayoutParams(lp); + } + // Cover position inside the card + float x = 0f, y = 0f; + View v = target; + while (v != null && v != host) { + x += v.getLeft() + v.getTranslationX(); + y += v.getTop() + v.getTranslationY(); + ViewParent p = v.getParent(); + v = p instanceof View ? (View) p : null; + } + if (v == null) return; + setTranslationX(x - getLeft()); + setTranslationY(y - getTop()); + if (!outlined) { + // Same corner radius as the cover + outlined = true; + float r = 0f; + try { + r = getResources().getDimension(com.aspiro.wamp.R.dimen.image_header_corner_radius); + } catch (Throwable ignored) { + } + setOutlineProvider(new RoundOutline(r)); + setClipToOutline(true); + } + if (target.getVisibility() != View.VISIBLE && getVisibility() == View.VISIBLE) setVisibility(View.INVISIBLE); + } + + // Re-align after layout + @Override + public void run() { + try { + sync(); + } catch (Throwable ignored) { + } + } + + @Override + public void onLayoutChange(View v, int l, int t, int r, int b, int ol, int ot, int or, int ob) { + post(this); + } + + @Override + public void onViewAttachedToWindow(View v) { + try { + refresh(); + } catch (Throwable ignored) { + } + } + + @Override + public void onViewDetachedFromWindow(View v) { + release(); + url = null; + } + + @Override + public void onSurfaceTextureAvailable(SurfaceTexture st, int w, int h) { + surface = new Surface(st); + start(); + } + + @Override + public void onSurfaceTextureSizeChanged(SurfaceTexture st, int w, int h) { + } + + @Override + public boolean onSurfaceTextureDestroyed(SurfaceTexture st) { + release(); + url = null; + if (surface != null) surface.release(); + surface = null; + return true; + } + + @Override + public void onSurfaceTextureUpdated(SurfaceTexture st) { + } + + @Override + public void onPrepared(MediaPlayer mp) { + if (mp == player) mp.start(); + } + + @Override + public boolean onInfo(MediaPlayer mp, int what, int extra) { + if (mp == player && what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) { + animate().alpha(1f).setDuration(300L).start(); + } + return false; + } + + @Override + public boolean onError(MediaPlayer mp, int what, int extra) { + if (mp == player) { + release(); + setAlpha(0f); + setVisibility(View.INVISIBLE); + } + return true; + } +} diff --git a/tools/rl-ext-build/src/radiant/AnimatedCovers.java b/tools/rl-ext-build/src/radiant/AnimatedCovers.java new file mode 100644 index 0000000..463af12 --- /dev/null +++ b/tools/rl-ext-build/src/radiant/AnimatedCovers.java @@ -0,0 +1,267 @@ +package radiant; + +import android.os.Handler; +import android.os.Looper; +import android.util.Log; + +import androidx.compose.foundation.layout.SizeKt; +import androidx.compose.runtime.Composer; +import androidx.compose.runtime.MutableState; +import androidx.compose.runtime.SnapshotStateKt; +import androidx.compose.ui.Modifier; +import androidx.compose.ui.graphics.ColorFilter; +import androidx.compose.ui.layout.ContentScale; + +import com.tidal.android.core.compose.components.l; + +import org.json.JSONObject; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; +import java.util.LinkedHashMap; + +// Animated covers, played with TIDAL's own AnimatedCover +public final class AnimatedCovers implements Runnable, yl0.p { // MARKER: R8 yl0.p + private static final String TAG = "RLAnimatedCovers"; + private static final String SEARCH = "https://ama.trainswift.net/api/v1/artwork/search?"; + private static final int TARGET_PX = 700; + private static final int CACHE_MAX = 200; + + // Animated cover URL for the playing track + static final MutableState urlState = SnapshotStateKt.mutableStateOf$default(null, null, 2, null); + // Album the URL belongs to + static final MutableState albumState = SnapshotStateKt.mutableStateOf$default(Integer.valueOf(-1), null, 2, null); + + private static final LinkedHashMap cache = new LinkedHashMap(64, 0.75f, true); + private static volatile String currentKey; + // Play queue, for the album name + private static volatile Object queue; + + private static final int MODE_LOOKUP = 0; + private static final int MODE_PUBLISH = 1; + private static final int MODE_PLACEHOLDER = 2; + private final int mode; + + // lookup + private String key, title, artist, album, url; + private int albumId; + + // normal cover under the video + private yl0.l request; // MARKER: R8 yl0.l + private String description; + private ColorFilter colorFilter; + private ContentScale contentScale; + private Object placeholder; + private yl0.a onError; // MARKER: R8 yl0.a + private int defaults; + + private AnimatedCovers(int mode) { + this.mode = mode; + } + + // Keep the play queue + public static void setQueue(Object playQueue) { + queue = playQueue; + } + + // Track changed, look it up + public static void onMediaState(String title, String artist, int albumId, String cover) { + if (title == null || artist == null || title.isEmpty()) return; + String key = artist + "\u0000" + title; + if (key.equals(currentKey)) return; + currentKey = key; + publish(key, null, albumId); + String hit; + synchronized (cache) { + hit = cache.get(key); + } + if (hit != null) { + publish(key, hit.isEmpty() ? null : hit, albumId); + return; + } + AnimatedCovers job = new AnimatedCovers(MODE_LOOKUP); + job.key = key; + job.title = title; + job.artist = artist; + job.album = currentAlbum(title); + job.albumId = albumId; + Thread t = new Thread(job, "RL-AnimatedCovers"); + t.setDaemon(true); + t.start(); + } + + // Animated cover if we have one, else TIDAL's image + public static void cover(yl0.l request, String description, Modifier modifier, ColorFilter colorFilter, // MARKER: R8 yl0.l + ContentScale contentScale, Object placeholder, yl0.a onError, // MARKER: R8 yl0.a + Composer composer, int changed, int defaults, int albumId) { + String u = (String) urlState.getValue(); + int playing = ((Integer) albumState.getValue()).intValue(); + if (u != null && playing == albumId) { + composer.startReplaceGroup(0x52414143); + AnimatedCovers ph = new AnimatedCovers(MODE_PLACEHOLDER); + ph.request = request; + ph.description = description; + ph.colorFilter = colorFilter; + ph.contentScale = contentScale; + ph.placeholder = placeholder; + ph.onError = onError; + ph.defaults = defaults; + l.a(u, modifier, ph, composer, 0); + composer.endReplaceGroup(); + } else { + composer.startReplaceGroup(0x52414144); + sd0.f.a(request, description, modifier, colorFilter, contentScale, placeholder, onError, composer, changed, defaults); + composer.endReplaceGroup(); + } + } + + // URL if it's for this album + static String urlFor(int albumId) { + String u = (String) urlState.getValue(); + return u != null && ((Integer) albumState.getValue()).intValue() == albumId ? u : null; + } + + // Normal cover as the placeholder + @Override + public Object invoke(Object composer, Object changed) { + Modifier fill = SizeKt.fillMaxSize(Modifier.Companion, 1f); + sd0.f.a(request, description, fill, colorFilter, contentScale, placeholder, onError, (Composer) composer, 0, defaults); + return kotlin.u.a; // MARKER: R8 kotlin.u + } + + @Override + public void run() { + if (mode == MODE_PUBLISH) { + // Newer track, drop it + if (!key.equals(currentKey)) return; + urlState.setValue(url); + albumState.setValue(Integer.valueOf(albumId)); + AnimatedCoverView.refreshAll(); + return; + } + String found = null; + try { + // Queue can lag, try once more + if (album == null) { + Thread.sleep(800L); + album = currentAlbum(title); + } + // With album first, then without + if (album != null) found = lookup(title, artist, album); + if (found == null) found = lookup(title, artist, null); + } catch (Throwable t) { + Log.w(TAG, "lookup failed for " + title + ": " + t); + } + synchronized (cache) { + if (cache.size() >= CACHE_MAX) { + String eldest = cache.keySet().iterator().next(); + cache.remove(eldest); + } + cache.put(key, found == null ? "" : found); + } + Log.i(TAG, (found == null ? "no animated cover for " : "animated cover for ") + title); + publish(key, found, albumId); + } + + private static void publish(String key, String url, int albumId) { + AnimatedCovers p = new AnimatedCovers(MODE_PUBLISH); + p.key = key; + p.url = url; + p.albumId = albumId; + new Handler(Looper.getMainLooper()).post(p); + } + + // Album name of the playing track + private static String currentAlbum(String title) { + try { + Object q = queue; + if (q == null) return null; + com.aspiro.wamp.playqueue.q0 item = ((zh.e) q).getCurrentItem(); // MARKER: R8 zh.e q0 + if (item == null) return null; + com.aspiro.wamp.model.MediaItem media = item.getMediaItem(); + if (media == null || !title.equals(media.getTitle()) || media.getAlbum() == null) return null; + String a = media.getAlbum().getTitle(); + return a == null || a.trim().isEmpty() ? null : a.trim(); + } catch (Throwable t) { + return null; + } + } + + private static String lookup(String title, String artist, String album) throws Exception { + String q = SEARCH + "title=" + enc(title) + "&artist=" + enc(artist); + if (album != null) q = q + "&album=" + enc(album); + String body = get(q); + if (body == null) return null; + JSONObject o = new JSONObject(body); + String master = o.optString("url", ""); + if (master.isEmpty()) return null; + return resolveMp4(master); + } + + // Find the mp4 behind the playlist + private static String resolveMp4(String masterUrl) throws Exception { + String master = get(masterUrl); + if (master == null) return null; + String[] lines = master.split("\n"); + String best = null; + int bestW = -1; + boolean bestBig = false; + for (int i = 0; i < lines.length - 1; i++) { + String line = lines[i].trim(); + if (!line.startsWith("#EXT-X-STREAM-INF:") || line.indexOf("avc1") < 0) continue; + if (line.indexOf("VIDEO-RANGE=SDR") < 0 && line.indexOf("VIDEO-RANGE") >= 0) continue; + int w = 0; + int r = line.indexOf("RESOLUTION="); + if (r >= 0) { + int x = line.indexOf('x', r); + try { + w = Integer.parseInt(line.substring(r + 11, x)); + } catch (Throwable ignored) { + } + } + String uri = lines[i + 1].trim(); + if (uri.isEmpty() || uri.startsWith("#")) continue; + boolean big = w >= TARGET_PX; + // Smallest one big enough + if (best == null || (big && (!bestBig || w < bestW)) || (!big && !bestBig && w > bestW)) { + best = new URL(new URL(masterUrl), uri).toString(); + bestW = w; + bestBig = big; + } + } + if (best == null) return null; + String media = get(best); + if (media == null) return null; + int m = media.indexOf("#EXT-X-MAP:URI=\""); + if (m < 0) return null; + int s = m + 16; + int e = media.indexOf('"', s); + if (e < 0) return null; + return new URL(new URL(best), media.substring(s, e)).toString(); + } + + private static String get(String url) throws Exception { + HttpURLConnection c = (HttpURLConnection) new URL(url).openConnection(); + c.setConnectTimeout(10000); + c.setReadTimeout(10000); + try { + if (c.getResponseCode() != 200) return null; + BufferedReader r = new BufferedReader(new InputStreamReader(c.getInputStream(), "UTF-8")); + StringBuilder sb = new StringBuilder(); + char[] buf = new char[4096]; + int n; + while ((n = r.read(buf)) > 0) sb.append(buf, 0, n); + r.close(); + return sb.toString(); + } finally { + c.disconnect(); + } + } + + private static String enc(String s) throws Exception { + return URLEncoder.encode(s, "UTF-8").replace("+", "%20"); + } +} diff --git a/tools/rl-ext-build/src/radiant/RoundOutline.java b/tools/rl-ext-build/src/radiant/RoundOutline.java new file mode 100644 index 0000000..31a959e --- /dev/null +++ b/tools/rl-ext-build/src/radiant/RoundOutline.java @@ -0,0 +1,19 @@ +package radiant; + +import android.graphics.Outline; +import android.view.View; +import android.view.ViewOutlineProvider; + +// Rounded corners for the cover overlay +public final class RoundOutline extends ViewOutlineProvider { + private final float radius; + + public RoundOutline(float radius) { + this.radius = radius; + } + + @Override + public void getOutline(View view, Outline outline) { + outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), radius); + } +} diff --git a/tools/rl-ext-build/src/radiant/SparkleIcons.java b/tools/rl-ext-build/src/radiant/SparkleIcons.java new file mode 100644 index 0000000..7c58e55 --- /dev/null +++ b/tools/rl-ext-build/src/radiant/SparkleIcons.java @@ -0,0 +1,262 @@ +package radiant; + +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PorterDuff; +import android.graphics.PorterDuffXfermode; +import android.graphics.RectF; +import android.os.Handler; +import android.os.Looper; +import android.os.SystemClock; +import android.util.Log; +import android.view.Choreographer; + +import androidx.compose.runtime.Composer; +import androidx.compose.runtime.MutableState; +import androidx.compose.runtime.SnapshotStateKt; +import androidx.compose.ui.geometry.Size; +import androidx.compose.ui.graphics.AndroidCanvas_androidKt; +import androidx.compose.ui.graphics.drawscope.DrawScope; +import androidx.compose.ui.graphics.painter.Painter; +import androidx.compose.ui.res.PainterResources_androidKt; + +import com.tidal.android.feature.playerscreen.ui.g; + +// Sparkle button loading spinner and no lyrics icon +public final class SparkleIcons extends Painter implements Choreographer.FrameCallback, Runnable { + static final int MODE_SPARKLE = 0; + static final int MODE_LOADING = 1; + static final int MODE_NONE = 2; + + private static final long SPIN_MS = 900L; + // Same size as the lyrics icon + private static final float NOTE_SCALE = 0.75f; + // Desktop spinner, a bit smaller + private static final float RING_R = 7.1f / 20f; + private static final float RING_STROKE = 1.8f / 20f; + private static final float ARC_SWEEP = 42f / (float) (2 * Math.PI * 8) * 360f; // same gap as desktop + + // Mode for the sparkle button + public static int currentMode = MODE_SPARKLE; + + // RL API fetch running + static final MutableState rlLoading = SnapshotStateKt.mutableStateOf$default(Boolean.FALSE, null, 2, null); + static final MutableState tick = SnapshotStateKt.mutableStateOf$default(Long.valueOf(0L), null, 2, null); + + private static final SparkleIcons POSTER = new SparkleIcons(MODE_SPARKLE, null, null); + private static final long LOADING_TIMEOUT_MS = 60000L; // requests can take ~30s + + private static final Object lock = new Object(); + // Newest fetch and if it's running + private static Object latestWorker; + private static boolean latestRunning; + // Bumped by timers to recompose + static final MutableState timeoutTick = SnapshotStateKt.mutableStateOf$default(Integer.valueOf(0), null, 2, null); + private static long loadingSinceMs; + private static boolean timeoutPosted; + private static volatile boolean newFetch; + private static Object lastMedia; + private static final long NONE_GRACE_MS = 5000L; + private static final String TAG = "RLSparkle"; + private static long noneSinceMs; + private static int lastBranch = -1; + private static long postedAtMs = Long.MAX_VALUE; + private static final SparkleIcons TIMEOUT = new SparkleIcons(-1, null, null); + private static SparkleIcons spinner; + private static SparkleIcons noLyrics; + private static boolean frameScheduled; + private static long lastSpinDrawMs; + + private final int mode; + private final Painter inner; + // Sparkle painter, for sizing + private final Painter sizeRef; + private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + private final Paint clear = new Paint(Paint.ANTI_ALIAS_FLAG); + private final RectF oval = new RectF(); + + private SparkleIcons(int mode, Painter inner, Painter sizeRef) { + this.mode = mode; + this.inner = inner; + this.sizeRef = sizeRef; + paint.setColor(0xFFFFFFFF); + paint.setStyle(Paint.Style.STROKE); + paint.setStrokeCap(Paint.Cap.ROUND); + clear.setStyle(Paint.Style.STROKE); + clear.setStrokeCap(Paint.Cap.ROUND); + clear.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR)); + } + + // Pick the button mode + public static int modeFor(Object lyricsState, boolean hasLyrics, Object media) { // MARKER: R8 g$b g$c g$d + timeoutTick.getValue(); // recompose on timers + long now = SystemClock.uptimeMillis(); + // New track, reset timers + if (media == null ? lastMedia != null : !media.equals(lastMedia)) { + lastMedia = media; + loadingSinceMs = 0L; + lastBranch = -1; + } + boolean rl = ((Boolean) rlLoading.getValue()).booleanValue(); + int m; + int branch; + if (hasLyrics || lyricsState instanceof g.c || lyricsState instanceof g.d) { + // Lyrics win + branch = 0; + m = MODE_SPARKLE; + loadingSinceMs = 0L; + } else if (rl || lyricsState instanceof g.b) { + branch = 1; + if (loadingSinceMs == 0L) loadingSinceMs = now; + if (now - loadingSinceMs >= LOADING_TIMEOUT_MS) { + m = MODE_NONE; // don't spin forever + } else { + m = MODE_LOADING; + scheduleRecompose(loadingSinceMs + LOADING_TIMEOUT_MS); + } + } else { + // Wait a bit before saying no lyrics + branch = 2; + if (lastBranch != 2) noneSinceMs = now; + if (now - noneSinceMs < NONE_GRACE_MS) { + m = MODE_LOADING; + scheduleRecompose(noneSinceMs + NONE_GRACE_MS); + } else { + m = MODE_NONE; + } + loadingSinceMs = 0L; + } + lastBranch = branch; + if (m != currentMode) { + Log.i(TAG, "mode " + currentMode + " -> " + m + " (lyricsState=" + + (lyricsState == null ? "null" : lyricsState.getClass().getName()) + + " hasLyrics=" + hasLyrics + " rlLoading=" + rl + ")"); + } + currentMode = m; + return m; + } + + // Recompose later + private static void scheduleRecompose(long atMs) { + if (timeoutPosted && atMs >= postedAtMs) return; + timeoutPosted = true; + postedAtMs = atMs; + long delay = Math.max(0L, atMs - SystemClock.uptimeMillis()) + 50L; + new Handler(Looper.getMainLooper()).postDelayed(TIMEOUT, delay); + } + + // Icon for the mode + public static Painter forMode(Painter sparkle, int mode, Composer composer) { + composer.startReplaceGroup(0x52415300 + mode); + Painter out = sparkle; + if (mode == MODE_LOADING && sparkle != null) { + SparkleIcons s = spinner; + if (s == null || s.inner != sparkle) spinner = s = new SparkleIcons(MODE_LOADING, sparkle, sparkle); + out = s; + } else if (mode == MODE_NONE && sparkle != null) { + Painter note = PainterResources_androidKt.painterResource(com.aspiro.wamp.R.drawable.ic_music_note, composer, 0); + SparkleIcons s = noLyrics; + if (s == null || s.inner != note || s.sizeRef != sparkle) noLyrics = s = new SparkleIcons(MODE_NONE, note, sparkle); + out = s; + } + composer.endReplaceGroup(); + return out; + } + + // Fetch started + public static void rlBegin(Object worker) { + synchronized (lock) { + latestWorker = worker; + latestRunning = true; + } + newFetch = true; + new Handler(Looper.getMainLooper()).post(POSTER); + } + + // Fetch done, only the newest counts + public static void rlEnd(Object worker) { + synchronized (lock) { + if (worker == latestWorker) latestRunning = false; + } + new Handler(Looper.getMainLooper()).post(POSTER); + } + + @Override + public void run() { + if (mode == -1) { + // Timer fired, recompose + timeoutPosted = false; + postedAtMs = Long.MAX_VALUE; + timeoutTick.setValue(Integer.valueOf(((Integer) timeoutTick.getValue()).intValue() + 1)); + return; + } + boolean on; + synchronized (lock) { + on = latestRunning; + } + if (newFetch) { + // New fetch, reset timeout + newFetch = false; + loadingSinceMs = 0L; + timeoutTick.setValue(Integer.valueOf(((Integer) timeoutTick.getValue()).intValue() + 1)); + } + Boolean v = Boolean.valueOf(on); + if (!v.equals(rlLoading.getValue())) rlLoading.setValue(v); + } + + @Override + public long getIntrinsicSizeNHjbRc() { + return sizeRef.getIntrinsicSizeNHjbRc(); + } + + @Override + public void onDraw(DrawScope scope) { + long size = scope.getSizeNHjbRc(); + float w = Size.getWidthImpl(size); + float h = Size.getHeightImpl(size); + if (w <= 0f || h <= 0f) return; + Canvas canvas = AndroidCanvas_androidKt.getNativeCanvas(scope.getDrawContext().getCanvas()); + float s = Math.min(w, h); + + if (mode == MODE_LOADING) { + tick.getValue(); // redraw every frame + long now = SystemClock.uptimeMillis(); + lastSpinDrawMs = now; + if (!frameScheduled) { + frameScheduled = true; + Choreographer.getInstance().postFrameCallback(POSTER); + } + float r = s * RING_R; + paint.setStrokeWidth(s * RING_STROKE); + oval.set(w / 2f - r, h / 2f - r, w / 2f + r, h / 2f + r); + float angle = (now % SPIN_MS) / (float) SPIN_MS * 360f; + canvas.drawArc(oval, angle - 90f, ARC_SWEEP, false, paint); + return; + } + + // Note with a line through it + int save = canvas.saveLayer(0f, 0f, w, h, null); + canvas.save(); + canvas.scale(NOTE_SCALE, NOTE_SCALE, w / 2f, h / 2f); + inner.drawxKDEd0(scope, size, 1f, null); + canvas.restore(); + float stroke = s * 0.06f; + float a = s * 0.2f, b = s * 0.8f; + clear.setStrokeWidth(stroke * 2.6f); + canvas.drawLine(a, a, b, b, clear); + paint.setStrokeWidth(stroke); + canvas.drawLine(a, a, b, b, paint); + canvas.restoreToCount(save); + } + + @Override + public void doFrame(long frameTimeNanos) { + long now = SystemClock.uptimeMillis(); + if (now - lastSpinDrawMs < 500L) { + tick.setValue(Long.valueOf(now)); + Choreographer.getInstance().postFrameCallback(POSTER); + } else { + frameScheduled = false; + } + } +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/foundation/layout/SizeKt.java b/tools/rl-ext-build/stubs/androidx/compose/foundation/layout/SizeKt.java new file mode 100644 index 0000000..ef6dcff --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/foundation/layout/SizeKt.java @@ -0,0 +1,5 @@ +package androidx.compose.foundation.layout; +import androidx.compose.ui.Modifier; +public final class SizeKt { + public static Modifier fillMaxSize(Modifier modifier, float fraction) { return null; } +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/runtime/Composer.java b/tools/rl-ext-build/stubs/androidx/compose/runtime/Composer.java new file mode 100644 index 0000000..a682c20 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/runtime/Composer.java @@ -0,0 +1,6 @@ +package androidx.compose.runtime; +public interface Composer { + void startReplaceGroup(int key); + void endReplaceGroup(); + Object consume(CompositionLocal key); +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/runtime/CompositionLocal.java b/tools/rl-ext-build/stubs/androidx/compose/runtime/CompositionLocal.java new file mode 100644 index 0000000..7ae188a --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/runtime/CompositionLocal.java @@ -0,0 +1,2 @@ +package androidx.compose.runtime; +public abstract class CompositionLocal {} diff --git a/tools/rl-ext-build/stubs/androidx/compose/runtime/MutableState.java b/tools/rl-ext-build/stubs/androidx/compose/runtime/MutableState.java new file mode 100644 index 0000000..cce826a --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/runtime/MutableState.java @@ -0,0 +1,2 @@ +package androidx.compose.runtime; +public interface MutableState extends State { void setValue(Object value); } diff --git a/tools/rl-ext-build/stubs/androidx/compose/runtime/SnapshotMutationPolicy.java b/tools/rl-ext-build/stubs/androidx/compose/runtime/SnapshotMutationPolicy.java new file mode 100644 index 0000000..afb9f57 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/runtime/SnapshotMutationPolicy.java @@ -0,0 +1,2 @@ +package androidx.compose.runtime; +public interface SnapshotMutationPolicy {} diff --git a/tools/rl-ext-build/stubs/androidx/compose/runtime/SnapshotStateKt.java b/tools/rl-ext-build/stubs/androidx/compose/runtime/SnapshotStateKt.java new file mode 100644 index 0000000..8cedb22 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/runtime/SnapshotStateKt.java @@ -0,0 +1,4 @@ +package androidx.compose.runtime; +public final class SnapshotStateKt { + public static MutableState mutableStateOf$default(Object value, SnapshotMutationPolicy policy, int flags, Object marker) { return null; } +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/runtime/State.java b/tools/rl-ext-build/stubs/androidx/compose/runtime/State.java new file mode 100644 index 0000000..809f90d --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/runtime/State.java @@ -0,0 +1,2 @@ +package androidx.compose.runtime; +public interface State { Object getValue(); } diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/Modifier.java b/tools/rl-ext-build/stubs/androidx/compose/ui/Modifier.java new file mode 100644 index 0000000..6a11b4e --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/Modifier.java @@ -0,0 +1,6 @@ +package androidx.compose.ui; +public interface Modifier { + /** Non-constant initialiser so javac emits a real sget-object. */ + Companion Companion = new Companion(); + final class Companion implements Modifier {} +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/geometry/Size.java b/tools/rl-ext-build/stubs/androidx/compose/ui/geometry/Size.java new file mode 100644 index 0000000..8dabcaa --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/geometry/Size.java @@ -0,0 +1,7 @@ +package androidx.compose.ui.geometry; +public final class Size { + /** Renamed to getWidth-impl by build.sh (Kotlin value-class mangling). */ + public static float getWidthImpl(long packed) { return 0f; } + /** Renamed to getHeight-impl by build.sh (Kotlin value-class mangling). */ + public static float getHeightImpl(long packed) { return 0f; } +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/AndroidCanvas_androidKt.java b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/AndroidCanvas_androidKt.java new file mode 100644 index 0000000..6ae5ef5 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/AndroidCanvas_androidKt.java @@ -0,0 +1,4 @@ +package androidx.compose.ui.graphics; +public final class AndroidCanvas_androidKt { + public static android.graphics.Canvas getNativeCanvas(Canvas canvas) { return null; } +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/Canvas.java b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/Canvas.java new file mode 100644 index 0000000..1bac6de --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/Canvas.java @@ -0,0 +1,2 @@ +package androidx.compose.ui.graphics; +public interface Canvas {} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/ColorFilter.java b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/ColorFilter.java new file mode 100644 index 0000000..0000da1 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/ColorFilter.java @@ -0,0 +1,2 @@ +package androidx.compose.ui.graphics; +public class ColorFilter {} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/drawscope/DrawContext.java b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/drawscope/DrawContext.java new file mode 100644 index 0000000..c6c3189 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/drawscope/DrawContext.java @@ -0,0 +1,3 @@ +package androidx.compose.ui.graphics.drawscope; +import androidx.compose.ui.graphics.Canvas; +public interface DrawContext { Canvas getCanvas(); } diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/drawscope/DrawScope.java b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/drawscope/DrawScope.java new file mode 100644 index 0000000..08a6467 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/drawscope/DrawScope.java @@ -0,0 +1,6 @@ +package androidx.compose.ui.graphics.drawscope; +public interface DrawScope { + DrawContext getDrawContext(); + /** Renamed to getSize-NH-jbRc by build.sh (Kotlin value-class mangling). */ + long getSizeNHjbRc(); +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/painter/Painter.java b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/painter/Painter.java new file mode 100644 index 0000000..b51c1a1 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/graphics/painter/Painter.java @@ -0,0 +1,14 @@ +package androidx.compose.ui.graphics.painter; + +import androidx.compose.ui.graphics.ColorFilter; +import androidx.compose.ui.graphics.drawscope.DrawScope; + +// build.sh fixes the mangled names +public abstract class Painter { + public Painter() {} + public boolean applyAlpha(float alpha) { return false; } + public boolean applyColorFilter(ColorFilter colorFilter) { return false; } + public final void drawxKDEd0(DrawScope scope, long size, float alpha, ColorFilter colorFilter) {} + public abstract long getIntrinsicSizeNHjbRc(); + public abstract void onDraw(DrawScope scope); +} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/layout/ContentScale.java b/tools/rl-ext-build/stubs/androidx/compose/ui/layout/ContentScale.java new file mode 100644 index 0000000..cb9cb16 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/layout/ContentScale.java @@ -0,0 +1,2 @@ +package androidx.compose.ui.layout; +public interface ContentScale {} diff --git a/tools/rl-ext-build/stubs/androidx/compose/ui/res/PainterResources_androidKt.java b/tools/rl-ext-build/stubs/androidx/compose/ui/res/PainterResources_androidKt.java new file mode 100644 index 0000000..1a8fd44 --- /dev/null +++ b/tools/rl-ext-build/stubs/androidx/compose/ui/res/PainterResources_androidKt.java @@ -0,0 +1,4 @@ +package androidx.compose.ui.res; +public final class PainterResources_androidKt { + public static androidx.compose.ui.graphics.painter.Painter painterResource(int id, androidx.compose.runtime.Composer composer, int changed) { return null; } +} diff --git a/tools/rl-ext-build/stubs/com/aspiro/wamp/R.java b/tools/rl-ext-build/stubs/com/aspiro/wamp/R.java new file mode 100644 index 0000000..818a3cb --- /dev/null +++ b/tools/rl-ext-build/stubs/com/aspiro/wamp/R.java @@ -0,0 +1,6 @@ +package com.aspiro.wamp; +// Not final so javac doesn't inline them +public final class R { + public static final class drawable { public static int ic_music_note; } + public static final class dimen { public static int image_header_corner_radius; } +} diff --git a/tools/rl-ext-build/stubs/com/aspiro/wamp/model/Album.java b/tools/rl-ext-build/stubs/com/aspiro/wamp/model/Album.java new file mode 100644 index 0000000..ddef378 --- /dev/null +++ b/tools/rl-ext-build/stubs/com/aspiro/wamp/model/Album.java @@ -0,0 +1,2 @@ +package com.aspiro.wamp.model; +public class Album { public String getTitle() { return null; } } diff --git a/tools/rl-ext-build/stubs/com/aspiro/wamp/model/MediaItem.java b/tools/rl-ext-build/stubs/com/aspiro/wamp/model/MediaItem.java new file mode 100644 index 0000000..312c6ba --- /dev/null +++ b/tools/rl-ext-build/stubs/com/aspiro/wamp/model/MediaItem.java @@ -0,0 +1,5 @@ +package com.aspiro.wamp.model; +public class MediaItem { + public Album getAlbum() { return null; } + public String getTitle() { return null; } +} diff --git a/tools/rl-ext-build/stubs/com/aspiro/wamp/playqueue/q0.java b/tools/rl-ext-build/stubs/com/aspiro/wamp/playqueue/q0.java new file mode 100644 index 0000000..26de02d --- /dev/null +++ b/tools/rl-ext-build/stubs/com/aspiro/wamp/playqueue/q0.java @@ -0,0 +1,3 @@ +package com.aspiro.wamp.playqueue; +// MARKER: R8 class name: TIDAL dex FQN is `com.aspiro.wamp.playqueue.q0` (play queue item) +public interface q0 { com.aspiro.wamp.model.MediaItem getMediaItem(); } diff --git a/tools/rl-ext-build/stubs/com/tidal/android/core/compose/components/l.java b/tools/rl-ext-build/stubs/com/tidal/android/core/compose/components/l.java new file mode 100644 index 0000000..389d34e --- /dev/null +++ b/tools/rl-ext-build/stubs/com/tidal/android/core/compose/components/l.java @@ -0,0 +1,6 @@ +package com.tidal.android.core.compose.components; +// MARKER: R8 class name: TIDAL's AnimatedCover.kt (AnimatedCover(url, modifier, placeholder) + LoopingVideo) +public final class l { + public static void a(String url, androidx.compose.ui.Modifier modifier, yl0.p placeholder, + androidx.compose.runtime.Composer composer, int changed) {} +} diff --git a/tools/rl-ext-build/stubs/com/tidal/android/feature/playerscreen/ui/g.java b/tools/rl-ext-build/stubs/com/tidal/android/feature/playerscreen/ui/g.java new file mode 100644 index 0000000..402bf13 --- /dev/null +++ b/tools/rl-ext-build/stubs/com/tidal/android/feature/playerscreen/ui/g.java @@ -0,0 +1,7 @@ +package com.tidal.android.feature.playerscreen.ui; +// MARKER: R8 class names: player lyrics state - g$a Hidden, g$b Loading, g$c Synced, g$d Unsynced +public abstract class g { + public static final class b extends g {} + public static final class c extends g {} + public static final class d extends g {} +} diff --git a/tools/rl-ext-build/stubs/kotlin/u.java b/tools/rl-ext-build/stubs/kotlin/u.java new file mode 100644 index 0000000..57924c5 --- /dev/null +++ b/tools/rl-ext-build/stubs/kotlin/u.java @@ -0,0 +1,4 @@ +package kotlin; +// MARKER: R8 whole class: TIDAL dex FQN is `kotlin.u` - both package and name roll +/** kotlin.Unit (obfuscated in the TIDAL dex). */ +public final class u { public static final u a = null; } diff --git a/tools/rl-ext-build/stubs/sd0/f.java b/tools/rl-ext-build/stubs/sd0/f.java new file mode 100644 index 0000000..51682ec --- /dev/null +++ b/tools/rl-ext-build/stubs/sd0/f.java @@ -0,0 +1,7 @@ +package sd0; +// MARKER: R8 whole class: TIDAL dex FQN is `sd0.f` (TIDAL's image composable used by AlbumCover) +public final class f { + public static void a(yl0.l request, String contentDescription, androidx.compose.ui.Modifier modifier, + androidx.compose.ui.graphics.ColorFilter colorFilter, androidx.compose.ui.layout.ContentScale contentScale, + Object placeholder, yl0.a onError, androidx.compose.runtime.Composer composer, int changed, int defaults) {} +} diff --git a/tools/rl-ext-build/stubs/yl0/a.java b/tools/rl-ext-build/stubs/yl0/a.java new file mode 100644 index 0000000..598aba4 --- /dev/null +++ b/tools/rl-ext-build/stubs/yl0/a.java @@ -0,0 +1,4 @@ +package yl0; +// MARKER: R8 whole class: TIDAL dex FQN is `yl0.a` - both package and name roll +/** kotlin.jvm.functions.Function0 (obfuscated in the TIDAL dex). */ +public interface a { Object invoke(); } diff --git a/tools/rl-ext-build/stubs/yl0/l.java b/tools/rl-ext-build/stubs/yl0/l.java new file mode 100644 index 0000000..855f0c1 --- /dev/null +++ b/tools/rl-ext-build/stubs/yl0/l.java @@ -0,0 +1,4 @@ +package yl0; +// MARKER: R8 whole class: TIDAL dex FQN is `yl0.l` - both package and name roll +/** kotlin.jvm.functions.Function1 (obfuscated in the TIDAL dex). */ +public interface l { Object invoke(Object p1); } diff --git a/tools/rl-ext-build/stubs/yl0/p.java b/tools/rl-ext-build/stubs/yl0/p.java new file mode 100644 index 0000000..661776d --- /dev/null +++ b/tools/rl-ext-build/stubs/yl0/p.java @@ -0,0 +1,4 @@ +package yl0; +// MARKER: R8 whole class: TIDAL dex FQN is `yl0.p` - both package and name roll +/** kotlin.jvm.functions.Function2 (obfuscated in the TIDAL dex). */ +public interface p { Object invoke(Object p1, Object p2); } diff --git a/tools/rl-ext-build/stubs/zh/e.java b/tools/rl-ext-build/stubs/zh/e.java new file mode 100644 index 0000000..845c634 --- /dev/null +++ b/tools/rl-ext-build/stubs/zh/e.java @@ -0,0 +1,3 @@ +package zh; +// MARKER: R8 whole class: TIDAL dex FQN is `zh.e` (play queue provider held by Mini/PlayerViewModel.a) +public interface e { com.aspiro.wamp.playqueue.q0 getCurrentItem(); }