From ea9c6458c24d8372e9c6f32e9d7f8a16fb5c238a Mon Sep 17 00:00:00 2001 From: meowarex Date: Sat, 20 Jun 2026 23:53:33 +1000 Subject: [PATCH 1/3] Update "Add Track" Icon <3 --- .../ui/screens/patchopts/KnownPatch.kt | 1 + patches/data.json | 2 +- patches/player-favorite-heart.patch | 24 +++++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 patches/player-favorite-heart.patch diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt index 6d4e93f..95ae534 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt @@ -8,6 +8,7 @@ data class PatchVariant( val fileNames: List, ) + enum class KnownPatch( /** * Numeric display order in the patch options list. Lower = higher up. diff --git a/patches/data.json b/patches/data.json index ad121d9..3979a9e 100644 --- a/patches/data.json +++ b/patches/data.json @@ -1,5 +1,5 @@ { "tidalVersionCode": 9090, "tidalApkUrl": "https://github.com/meowarex/rl-mobile/releases/download/latest/tidal-stock.apk", - "patchesVersion": "0.9.8" + "patchesVersion": "0.9.9" } diff --git a/patches/player-favorite-heart.patch b/patches/player-favorite-heart.patch new file mode 100644 index 0000000..17c47b8 --- /dev/null +++ b/patches/player-favorite-heart.patch @@ -0,0 +1,24 @@ +--- a/com/tidal/android/feature/playerscreen/ui/composables/c1.smali ++++ b/com/tidal/android/feature/playerscreen/ui/composables/c1.smali +@@ -259,7 +259,7 @@ + + .line 109 + .line 110 +- 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 111 + .line 112 +@@ -267,11 +267,7 @@ + + .line 113 + :cond_5 +- sget-object p2, Lx20/b;->O:Lx20/a; +- +- .line 114 +- .line 115 +- iget p2, p2, Lx20/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 116 + .line 117 From 7f3618aeae75a49ad2fda257475b822c06deb477 Mon Sep 17 00:00:00 2001 From: meowarex Date: Sun, 21 Jun 2026 00:37:24 +1000 Subject: [PATCH 2/3] Fix Nav Bleed <3 --- patches/mini-player-black.patch | 13 ++++++++++++- patches/mini-player-grey.patch | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/patches/mini-player-black.patch b/patches/mini-player-black.patch index c325af8..008645d 100644 --- a/patches/mini-player-black.patch +++ b/patches/mini-player-black.patch @@ -56,7 +56,18 @@ .line 147 sget-object v8, Lcom/tidal/android/feature/appscaffold/ui/composable/a;->c:Landroidx/compose/foundation/shape/RoundedCornerShape; -@@ -2969,6 +2972,10 @@ +@@ -2857,6 +2860,10 @@ + + move-result-object v0 + ++ invoke-static {v0}, 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 v0 ++ + .line 155 + sget-object v8, Landroidx/compose/foundation/layout/Arrangement;->INSTANCE:Landroidx/compose/foundation/layout/Arrangement; + +@@ -2969,6 +2976,10 @@ invoke-static {v12, v0, v8}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lyl0/p;)V diff --git a/patches/mini-player-grey.patch b/patches/mini-player-grey.patch index 3855a98..15db0b2 100644 --- a/patches/mini-player-grey.patch +++ b/patches/mini-player-grey.patch @@ -43,7 +43,18 @@ const/4 v11, 0x2 .line 142 -@@ -2969,6 +2966,10 @@ +@@ -2857,6 +2854,10 @@ + + move-result-object v0 + ++ invoke-static {v0}, 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 v0 ++ + .line 155 + sget-object v8, Landroidx/compose/foundation/layout/Arrangement;->INSTANCE:Landroidx/compose/foundation/layout/Arrangement; + +@@ -2969,6 +2970,10 @@ invoke-static {v12, v0, v8}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Lyl0/p;)V From 4791e69becb10f479a136d085c673d1ae24fa6fd Mon Sep 17 00:00:00 2001 From: meowarex Date: Sun, 21 Jun 2026 01:36:05 +1000 Subject: [PATCH 3/3] New Patch: One-Handed Mode <3 --- .../ui/screens/patchopts/KnownPatch.kt | 6 +++ .../ui/screens/patchopts/PatchOptions.kt | 1 + Manager/app/src/main/res/values/strings.xml | 2 + patches/player-one-handed.patch | 45 +++++++++++++++++++ 4 files changed, 54 insertions(+) create mode 100644 patches/player-one-handed.patch diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt index 95ae534..60d0eeb 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/KnownPatch.kt @@ -77,6 +77,12 @@ enum class KnownPatch( titleRes = R.string.patch_quality_badge_colors_title, descRes = R.string.patch_quality_badge_colors_desc, ), + PlayerOneHanded( + order = 37, + fileNames = listOf("player-one-handed.patch"), + titleRes = R.string.patch_player_one_handed_title, + descRes = R.string.patch_player_one_handed_desc, + ), CoverEverywhere( order = 35, fileNames = listOf( diff --git a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptions.kt b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptions.kt index e19df17..6a6de7f 100644 --- a/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptions.kt +++ b/Manager/app/src/main/kotlin/com/meowarex/rlmobile/ui/screens/patchopts/PatchOptions.kt @@ -42,6 +42,7 @@ data class PatchOptions( val disabled = ( KnownPatch.DebugMenuUnlock.fileNames + KnownPatch.EnableLegacyUi.fileNames + + KnownPatch.PlayerOneHanded.fileNames + miniPlayerFiles ).toSet() diff --git a/Manager/app/src/main/res/values/strings.xml b/Manager/app/src/main/res/values/strings.xml index 6c4cdb5..abe8cef 100644 --- a/Manager/app/src/main/res/values/strings.xml +++ b/Manager/app/src/main/res/values/strings.xml @@ -270,6 +270,8 @@ Restores the legacy translucent backdrop blur behind the player. Quality Badge Colors Brings color back to the player quality badge. + One-Handed Mode + Mirrors the bottom player buttons left-to-right for easier one-handed reach. Cover Everywhere - WIP Applies the blurred backdrop to every Compose based page (Home & Collection) Replace Share Button diff --git a/patches/player-one-handed.patch b/patches/player-one-handed.patch new file mode 100644 index 0000000..acfc2f5 --- /dev/null +++ b/patches/player-one-handed.patch @@ -0,0 +1,45 @@ +# 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 +@@ -5650,12 +5650,26 @@ + invoke-static {v2, v15, v7, v9}, Lcom/aspiro/wamp/dynamicpages/ui/compose/f;->a(FLandroidx/compose/ui/Modifier$Companion;Landroidx/compose/runtime/Composer;I)V + + const/4 v2, 0x0 + + const/4 v9, 0x0 + ++ invoke-static {}, Landroidx/compose/ui/platform/CompositionLocalsKt;->getLocalLayoutDirection()Landroidx/compose/runtime/ProvidableCompositionLocal; # layout-direction local ++ ++ move-result-object v77 # the local ++ ++ sget-object v78, Landroidx/compose/ui/unit/LayoutDirection;->Rtl:Landroidx/compose/ui/unit/LayoutDirection; # right-to-left value ++ ++ invoke-virtual/range {v77 .. v78}, Landroidx/compose/runtime/ProvidableCompositionLocal;->provides(Ljava/lang/Object;)Landroidx/compose/runtime/ProvidedValue; # provide Rtl to local ++ ++ move-result-object v77 # the provided value ++ ++ move-object/from16 v76, v7 # composer ++ ++ invoke-interface/range {v76 .. v77}, Landroidx/compose/runtime/Composer;->startProvider(Landroidx/compose/runtime/ProvidedValue;)V # open Rtl scope (mirror row) ++ + .line 302 + invoke-static {v15, v9, v1, v2}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxWidth$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; + + move-result-object v4 + + move/from16 v5, v58 +@@ -6001,12 +6015,14 @@ + + invoke-static {v13, v7, v2, v4}, Lcom/tidal/android/feature/playerscreen/ui/composables/m0;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Lyl0/a;)V + + .line 343 + invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endNode()V + ++ invoke-interface {v7}, Landroidx/compose/runtime/Composer;->endProvider()V # close Rtl scope (end mirror) ++ + .line 344 + invoke-static/range {v40 .. v40}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F + + move-result v20 + + const/16 v21, 0x7