mirror of
https://github.com/meowarex/rl-mobile.git
synced 2026-08-27 06:27:46 +10:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bdbcc4fc62 | ||
|
|
3b893c12ff | ||
|
|
9d60e3dc80 | ||
|
|
36382437f1 |
@@ -70,6 +70,12 @@ enum class KnownPatch(
|
||||
titleRes = R.string.patch_player_backdrop_title,
|
||||
descRes = R.string.patch_player_backdrop_desc,
|
||||
),
|
||||
QualityBadgeColors(
|
||||
order = 36,
|
||||
fileNames = listOf("player-quality-badge-colors.patch"),
|
||||
titleRes = R.string.patch_quality_badge_colors_title,
|
||||
descRes = R.string.patch_quality_badge_colors_desc,
|
||||
),
|
||||
CoverEverywhere(
|
||||
order = 35,
|
||||
fileNames = listOf(
|
||||
@@ -130,6 +136,7 @@ enum class KnownPatch(
|
||||
LyricsRlApi,
|
||||
LyricsKeepControlsVisible,
|
||||
PlayerBackdrop,
|
||||
QualityBadgeColors,
|
||||
LyricsProgressPill,
|
||||
CoverEverywhere,
|
||||
),
|
||||
|
||||
@@ -268,6 +268,8 @@
|
||||
>Inverts the auto-hide behavior on the lyrics screen, playback controls stay visible by default and only hide when you tap them off.</string>
|
||||
<string name="patch_player_backdrop_title">Player Backdrop</string>
|
||||
<string name="patch_player_backdrop_desc">Restores the legacy translucent backdrop blur behind the player.</string>
|
||||
<string name="patch_quality_badge_colors_title">Quality Badge Colors</string>
|
||||
<string name="patch_quality_badge_colors_desc">Brings color back to the player quality badge.</string>
|
||||
<string name="patch_cover_everywhere_title">Cover Everywhere - WIP</string>
|
||||
<string name="patch_cover_everywhere_desc">Applies the blurred backdrop to every Compose based page (Home & Collection)</string>
|
||||
<string name="patch_lyrics_replace_share_button_title">Replace Share Button</string>
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"tidalVersionCode": 9090,
|
||||
"tidalApkUrl": "https://github.com/meowarex/rl-mobile/releases/download/latest/tidal-stock.apk",
|
||||
"patchesVersion": "0.9.7"
|
||||
"patchesVersion": "0.9.8"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,124 @@
|
||||
.class public final Lradiant/QualityBadge;
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
|
||||
# direct methods
|
||||
.method private constructor <init>()V
|
||||
.locals 0
|
||||
|
||||
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
# qualities : 0 = LOW / HIGH, 1 = LOSSLESS, 2 = HI_RES_LOSSLESS
|
||||
.method private static backgroundArgb(I)I
|
||||
.locals 0
|
||||
|
||||
packed-switch p0, :quality_switch
|
||||
|
||||
const p0, 0x66475569 # LOW / HIGH bg
|
||||
return p0
|
||||
|
||||
:lossless
|
||||
const p0, 0x3306b6d4 # LOSSLESS bg
|
||||
return p0
|
||||
|
||||
:hires
|
||||
const p0, 0x40f59e0b # HI_RES_LOSSLESS bg
|
||||
return p0
|
||||
|
||||
:quality_switch
|
||||
.packed-switch 0x1
|
||||
:lossless
|
||||
:hires
|
||||
.end packed-switch
|
||||
.end method
|
||||
|
||||
.method private static textArgb(I)I
|
||||
.locals 0
|
||||
|
||||
packed-switch p0, :quality_switch
|
||||
|
||||
const p0, -0x1d1710 # LOW / HIGH text
|
||||
return p0
|
||||
|
||||
:lossless
|
||||
const p0, -0x5a0c04 # LOSSLESS text
|
||||
return p0
|
||||
|
||||
:hires
|
||||
const p0, -0x21976 # HI_RES_LOSSLESS text
|
||||
return p0
|
||||
|
||||
:quality_switch
|
||||
.packed-switch 0x1
|
||||
:lossless
|
||||
:hires
|
||||
.end packed-switch
|
||||
.end method
|
||||
|
||||
|
||||
.method public static modifier(Landroidx/compose/ui/Modifier;I)Landroidx/compose/ui/Modifier;
|
||||
.locals 3
|
||||
|
||||
invoke-static {p1}, Lradiant/QualityBadge;->backgroundArgb(I)I
|
||||
|
||||
move-result p1
|
||||
invoke-static {p1}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J
|
||||
move-result-wide v0
|
||||
const/high16 p1, 0x40800000 # 4.0f
|
||||
invoke-static {p1}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
|
||||
move-result p1
|
||||
invoke-static {p1}, Landroidx/compose/foundation/shape/RoundedCornerShapeKt;->RoundedCornerShape-0680j_4(F)Landroidx/compose/foundation/shape/RoundedCornerShape;
|
||||
move-result-object v2
|
||||
invoke-static {p0, v0, v1, v2}, Landroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier;
|
||||
move-result-object p0
|
||||
const/high16 p1, 0x40c00000 # 6.0f
|
||||
invoke-static {p1}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
|
||||
move-result p1
|
||||
const/high16 v0, 0x40000000 # 2.0f
|
||||
invoke-static {v0}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
|
||||
move-result v0
|
||||
invoke-static {p0, p1, v0}, Landroidx/compose/foundation/layout/PaddingKt;->padding-VpY3zN4(Landroidx/compose/ui/Modifier;FF)Landroidx/compose/ui/Modifier;
|
||||
move-result-object p0
|
||||
return-object p0
|
||||
.end method
|
||||
|
||||
.method public static style(ILn20/e2;)Ln20/e2;
|
||||
.registers 16
|
||||
|
||||
invoke-static {p0}, Lradiant/QualityBadge;->textArgb(I)I
|
||||
|
||||
move-result v0
|
||||
new-instance v1, Lc20/a;
|
||||
invoke-direct {v1, v0}, Lc20/a;-><init>(I)V
|
||||
new-instance v0, Lc20/d;
|
||||
const/4 v2, 0x0
|
||||
const/4 v3, 0x0
|
||||
const/4 v4, 0x0
|
||||
const/4 v5, 0x0
|
||||
const/4 v6, 0x0
|
||||
const/4 v7, 0x0
|
||||
const/4 v8, 0x0
|
||||
const/4 v9, 0x0
|
||||
const/4 v10, 0x0
|
||||
const/4 v11, 0x0
|
||||
const/4 v12, 0x0
|
||||
const/16 v13, 0xffe
|
||||
const/4 v14, 0x0
|
||||
invoke-direct/range {v0 .. v14}, Lc20/d;-><init>(Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;Lc20/a;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
|
||||
move-object v9, v0
|
||||
move-object/from16 v0, p1
|
||||
const/4 v1, 0x0
|
||||
move-object v2, v9
|
||||
const/4 v3, 0x0
|
||||
const/4 v4, 0x0
|
||||
const/4 v5, 0x0
|
||||
const/16 v6, 0x1d
|
||||
const/4 v7, 0x0
|
||||
invoke-static/range {v0 .. v7}, Ln20/e2;->g(Ln20/e2;Ln20/u4;Lc20/d;Lcom/squareup/ui/market/core/text/MarketTextAlignment;Lcom/squareup/ui/market/core/text/MarketTextTransform;Ln20/t4;ILjava/lang/Object;)Ln20/e2;
|
||||
move-result-object p0
|
||||
return-object p0
|
||||
.end method
|
||||
@@ -0,0 +1,116 @@
|
||||
--- 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/o4;->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
|
||||
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
|
||||
iget-object v3, v3, Lcom/tidal/android/feature/playerscreen/ui/i$a;->a:Ljava/lang/String;
|
||||
@@ -481,6 +487,16 @@
|
||||
.line 210
|
||||
move-object v1, v3
|
||||
|
||||
+ invoke-static {v2, v13}, Lradiant/QualityBadge;->modifier(Landroidx/compose/ui/Modifier;I)Landroidx/compose/ui/Modifier;
|
||||
+
|
||||
+ move-result-object v2
|
||||
+
|
||||
+ move-object/from16 v3, p1
|
||||
+
|
||||
+ invoke-static {v13, v3}, Lradiant/QualityBadge;->style(ILn20/e2;)Ln20/e2;
|
||||
+
|
||||
+ move-result-object v8
|
||||
+
|
||||
.line 211
|
||||
const/4 v3, 0x0
|
||||
|
||||
--- a/com/tidal/android/feature/playerscreen/ui/i$a.smali
|
||||
+++ b/com/tidal/android/feature/playerscreen/ui/i$a.smali
|
||||
@@ -21,9 +21,21 @@
|
||||
# instance fields
|
||||
.field public final a:Ljava/lang/String;
|
||||
|
||||
+.field public final b:I
|
||||
+
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>(Ljava/lang/String;)V
|
||||
+ .locals 1
|
||||
+
|
||||
+ const/4 v0, 0x0
|
||||
+
|
||||
+ invoke-direct {p0, p1, v0}, Lcom/tidal/android/feature/playerscreen/ui/i$a;-><init>(Ljava/lang/String;I)V
|
||||
+
|
||||
+ return-void
|
||||
+.end method
|
||||
+
|
||||
+.method public constructor <init>(Ljava/lang/String;I)V
|
||||
.locals 0
|
||||
|
||||
.line 1
|
||||
@@ -34,6 +46,8 @@
|
||||
.line 4
|
||||
iput-object p1, p0, Lcom/tidal/android/feature/playerscreen/ui/i$a;->a:Ljava/lang/String;
|
||||
|
||||
+ iput p2, p0, Lcom/tidal/android/feature/playerscreen/ui/i$a;->b:I
|
||||
+
|
||||
.line 5
|
||||
.line 6
|
||||
return-void
|
||||
--- 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
|
||||
@@ -1356,6 +1356,14 @@
|
||||
.line 617
|
||||
- move-result v10
|
||||
+ move-result v10 # isCurrentStreamHiResLosslessQuality() result
|
||||
|
||||
+ const/16 v31, 0x0 # LOW / HIGH quality
|
||||
+
|
||||
+ if-eqz v10, :radiant_qbc_not_hires
|
||||
+
|
||||
+ const/16 v31, 0x2 # HI_RES_LOSSLESS quality
|
||||
+
|
||||
+ :radiant_qbc_not_hires
|
||||
+
|
||||
.line 618
|
||||
if-nez v10, :cond_19
|
||||
|
||||
@@ -1368,6 +1376,12 @@
|
||||
.line 623
|
||||
- move-result v10
|
||||
+ move-result v10 # isCurrentStreamLossless() result
|
||||
|
||||
+ if-eqz v10, :radiant_qbc_not_lossless
|
||||
+
|
||||
+ const/16 v31, 0x1 # LOSSLESS quality
|
||||
+
|
||||
+ :radiant_qbc_not_lossless
|
||||
+
|
||||
.line 624
|
||||
if-eqz v10, :cond_18
|
||||
|
||||
@@ -1695,7 +1709,10 @@
|
||||
|
||||
.line 771
|
||||
.line 772
|
||||
- invoke-direct {v8, v5}, Lcom/tidal/android/feature/playerscreen/ui/i$a;-><init>(Ljava/lang/String;)V
|
||||
+ move/from16 v10, v31 # quality
|
||||
+
|
||||
+ invoke-direct {v8, v5, v10}, Lcom/tidal/android/feature/playerscreen/ui/i$a;-><init>(Ljava/lang/String;I)V
|
||||
+
|
||||
|
||||
.line 773
|
||||
.line 774
|
||||
Reference in New Issue
Block a user