Merge pull request #15 from meowarex/dev

Tweak GitIgnore
This commit is contained in:
2026-05-21 05:49:16 +10:00
committed by GitHub
6 changed files with 88 additions and 100 deletions
+6
View File
@@ -21,3 +21,9 @@ Manager/app/release/
# Reference material (APKs, original source) # Reference material (APKs, original source)
Reference/ Reference/
# tidal-apk/: CI consumes the top-level .apk/.apkm; ignore decompiled subdirs
*.apkm
!tidal-apk/*.apk
!tidal-apk/*.apkm
tidal-apk/*/
+15
View File
@@ -0,0 +1,15 @@
--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
+++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
@@ -4931,7 +4931,11 @@
const/4 v10, 0x0
.line 226
- invoke-static {v10, v9, v4, v2, v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/h1;->a(Landroidx/compose/ui/Modifier;Ltl0/a;ZLandroidx/compose/runtime/Composer;I)V
+ const v10, 0x52414448 # empty group key
+
+ invoke-interface {v2, v10}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V # open empty
+
+ invoke-interface {v2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close empty
.line 227
invoke-interface {v2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V
@@ -5,11 +5,11 @@
.method public static final e(ILandroidx/compose/runtime/Composer;Lcom/tidal/android/feature/playerscreen/ui/k;Lcom/tidal/android/feature/playerscreen/ui/r$a;Ltl0/a;Ltl0/l;Z)V .method public static final e(ILandroidx/compose/runtime/Composer;Lcom/tidal/android/feature/playerscreen/ui/k;Lcom/tidal/android/feature/playerscreen/ui/r$a;Ltl0/a;Ltl0/l;Z)V
- .locals 61 - .locals 61
+ .locals 89 # extra regs for blur + sparkle + .locals 71 # extra regs for blur backdrop
.annotation build Landroidx/compose/runtime/Composable; .annotation build Landroidx/compose/runtime/Composable;
.end annotation .end annotation
@@ -4164,6 +4164,103 @@ @@ -4164,6 +4164,133 @@
invoke-static {v5, v3, v4}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Ltl0/p;)V invoke-static {v5, v3, v4}, Landroidx/compose/runtime/Updater;->set-impl(Landroidx/compose/runtime/Composer;Ljava/lang/Object;Ltl0/p;)V
@@ -63,7 +63,7 @@
+ +
+ move-result-object v5 + move-result-object v5
+ +
+ const/high16 v7, 0x44b40000 # 1440f (blur radius dp) + const/high16 v7, 0x42b40000 # 90f (blur radius dp)
+ +
+ invoke-static {v7}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F + invoke-static {v7}, Landroidx/compose/ui/unit/Dp;->constructor-impl(F)F
+ +
@@ -107,45 +107,39 @@
+ +
+ invoke-static/range {v61 .. v70}, Lsd0/f;->a(Ltl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Ltl0/a;Landroidx/compose/runtime/Composer;II)V # render blurred cover + invoke-static/range {v61 .. v70}, Lsd0/f;->a(Ltl0/l;Ljava/lang/String;Landroidx/compose/ui/Modifier;Landroidx/compose/ui/graphics/ColorFilter;Landroidx/compose/ui/layout/ContentScale;Ljava/lang/Object;Ltl0/a;Landroidx/compose/runtime/Composer;II)V # render blurred cover
+ +
+ sget-object v3, Landroidx/compose/ui/Modifier;->Companion:Landroidx/compose/ui/Modifier$Companion; # scrim chain start
+
+ const/4 v4, 0x0 # fraction unused
+
+ const/4 v5, 0x1 # $default mask
+
+ const/4 v6, 0x0 # null obj
+
+ invoke-static {v3, v4, v5, v6}, Landroidx/compose/foundation/layout/SizeKt;->fillMaxSize$default(Landroidx/compose/ui/Modifier;FILjava/lang/Object;)Landroidx/compose/ui/Modifier; # fill screen
+
+ move-result-object v3 # modifier
+
+ const v6, -0x80000000 # 0x80000000 = 50% black
+
+ invoke-static {v6}, Landroidx/compose/ui/graphics/ColorKt;->Color(I)J # pack ARGB long
+
+ move-result-wide v6 # color
+
+ invoke-static {}, Landroidx/compose/ui/graphics/RectangleShapeKt;->getRectangleShape()Landroidx/compose/ui/graphics/Shape; # rect shape
+
+ move-result-object v4 # shape
+
+ invoke-static {v3, v6, v7, v4}, Landroidx/compose/foundation/BackgroundKt;->background-bw27NRU(Landroidx/compose/ui/Modifier;JLandroidx/compose/ui/graphics/Shape;)Landroidx/compose/ui/Modifier; # tint with scrim
+
+ move-result-object v3 # modifier
+
+ const/4 v4, 0x0 # $changed flags
+
+ invoke-static {v3, v10, v4}, Landroidx/compose/foundation/layout/SpacerKt;->Spacer(Landroidx/compose/ui/Modifier;Landroidx/compose/runtime/Composer;I)V # draw scrim
+
+ :radiant_skip + :radiant_skip
+ invoke-interface {v10}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group + invoke-interface {v10}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V # close group
+ +
.line 138 .line 138
sget-object v3, Landroidx/compose/foundation/layout/BoxScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/BoxScopeInstance; sget-object v3, Landroidx/compose/foundation/layout/BoxScopeInstance;->INSTANCE:Landroidx/compose/foundation/layout/BoxScopeInstance;
@@ -4931,7 +5028,11 @@
const/4 v10, 0x0
.line 226
- invoke-static {v10, v9, v4, v2, v7}, Lcom/tidal/android/feature/playerscreen/ui/composables/h1;->a(Landroidx/compose/ui/Modifier;Ltl0/a;ZLandroidx/compose/runtime/Composer;I)V
+ const v10, 0x52414448 # empty group replaces removed top-right lyrics pill
+
+ invoke-interface {v2, v10}, Landroidx/compose/runtime/Composer;->startReplaceGroup(I)V
+
+ invoke-interface {v2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V
.line 227
invoke-interface {v2}, Landroidx/compose/runtime/Composer;->endReplaceGroup()V
@@ -5707,6 +5808,22 @@
:cond_8de
check-cast v4, Ltl0/a;
+ new-instance v74, Lc8/j; # build lyrics-toggle lambda (same one h1 used)
+
+ move-object/from16 v75, p5
+
+ const/16 v76, 0x1 # discriminator 1 = lyrics action
+
+ invoke-direct/range {v74 .. v76}, Lc8/j;-><init>(Ljava/lang/Object;I)V
+
+ const/16 v71, 0x0 # $$changed flags
+
+ move-object/from16 v72, v7 # composer
+
+ const/16 v73, 0x0 # modifier (null -> Companion)
+
+ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V # render bottom-left sparkle
+
const/4 v2, 0x0
invoke-static {v13, v7, v2, v4}, Lcom/tidal/android/feature/playerscreen/ui/composables/h3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V
+34
View File
@@ -0,0 +1,34 @@
--- a/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
+++ b/com/tidal/android/feature/playerscreen/ui/PlayerScreenKt.smali
@@ -2966,7 +2966,7 @@
.end method
.method public static final e(ILandroidx/compose/runtime/Composer;Lcom/tidal/android/feature/playerscreen/ui/k;Lcom/tidal/android/feature/playerscreen/ui/r$a;Ltl0/a;Ltl0/l;Z)V
- .locals 71 # extra regs for blur backdrop
+ .locals 89 # extra regs for sparkle button
.annotation build Landroidx/compose/runtime/Composable;
.end annotation
@@ -5838,6 +5838,22 @@
:cond_51
check-cast v4, Ltl0/a;
+ new-instance v74, Lc8/j; # build lyrics-toggle lambda (same one h1 used)
+
+ move-object/from16 v75, p5 # p5 holds the lambda receiver
+
+ const/16 v76, 0x1 # discriminator 1 = lyrics action
+
+ invoke-direct/range {v74 .. v76}, Lc8/j;-><init>(Ljava/lang/Object;I)V # construct lambda
+
+ const/16 v71, 0x0 # $$changed flags
+
+ move-object/from16 v72, v7 # composer
+
+ const/16 v73, 0x0 # modifier (null -> Companion)
+
+ invoke-static/range {v71 .. v74}, Lradiant/SparkleButton;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V # render bottom-left sparkle
+
const/4 v2, 0x0
invoke-static {v13, v7, v2, v4}, Lcom/tidal/android/feature/playerscreen/ui/composables/h3;->a(ILandroidx/compose/runtime/Composer;Landroidx/compose/ui/Modifier;Ltl0/a;)V
-61
View File
@@ -1,61 +0,0 @@
import java.io.*;
import java.util.*;
import java.util.zip.*;
// Merges an APKMirror split-APK bundle into a single installable APK.
// Usage: java MergeApk out.apk base.apk split1.apk split2.apk ...
public class MergeApk {
public static void main(String[] args) throws Exception {
if (args.length < 2) {
System.err.println("Usage: java MergeApk out.apk base.apk [split.apk ...]");
System.exit(1);
}
String out = args[0];
Set<String> seen = new HashSet<>();
try (ZipOutputStream zos = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(out)))) {
for (int i = 1; i < args.length; i++) {
String src = args[i];
boolean isBase = i == 1;
int added = 0, skipped = 0;
try (ZipFile zip = new ZipFile(src)) {
Enumeration<? extends ZipEntry> entries = zip.entries();
while (entries.hasMoreElements()) {
ZipEntry e = entries.nextElement();
if (e.isDirectory()) { skipped++; continue; }
String name = e.getName();
if (!isBase && (
name.equals("AndroidManifest.xml") ||
name.equals("resources.arsc") ||
name.startsWith("META-INF/") ||
name.equals("stamp-cert-sha256"))) {
skipped++;
continue;
}
if (seen.contains(name)) { skipped++; continue; }
seen.add(name);
ZipEntry ne = new ZipEntry(name);
if (e.getMethod() == ZipEntry.STORED) {
ne.setMethod(ZipEntry.STORED);
ne.setSize(e.getSize());
ne.setCompressedSize(e.getSize());
ne.setCrc(e.getCrc());
} else {
ne.setMethod(ZipEntry.DEFLATED);
}
zos.putNextEntry(ne);
try (InputStream is = zip.getInputStream(e)) {
byte[] buf = new byte[16384];
int n;
while ((n = is.read(buf)) > 0) zos.write(buf, 0, n);
}
zos.closeEntry();
added++;
}
}
System.out.printf("%s: +%d added, %d skipped%n", src, added, skipped);
}
}
System.out.printf("Wrote %d entries to %s%n", seen.size(), out);
}
}