soul-browser/app/smali_classes3/com/google/android/material/chip/Chip$ChipTouchHelper.smali
KaKi87 550ddb0413
Decompile and recreate Soul Browser v1.4.85 with APK CI builds (#1)
* Decompile and recreate Soul Browser v1.4.85 with APK CI builds

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix CI build: include bundled google.jks and remove PR trigger

The apktool build failed in CI because app/unknown/.../google.jks was
excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files
and commit the missing resource.

Also remove the redundant pull_request workflow trigger.

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Change package ID to com.github.kaki87.soulbrowser

Rename the application ID so the rebuilt APK can be installed
alongside the original Soul Browser from Google Play.

- Update AndroidManifest package, permissions, providers, and actions
- Update R class references in smali (com/github/kaki87/soulbrowser/R)
- Update shortcuts.xml targetPackage
- Rename app label to "Soul Rebuild" for easy identification

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix install compatibility: remove split APK metadata and bundle native libs

The rebuilt APK still declared requiredSplitTypes and Play Store split
metadata, causing Android to reject standalone installs as incompatible.

- Remove requiredSplitTypes and split-related manifest meta-data
- Merge native libs from all ABI splits with uncompressed storage
- Page-align before signing for extractNativeLibs=false
- Add .so to apktool doNotCompress list

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix install failure: use apksigner v2/v3 and bundle arm64 native libs

Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only
produces v1 signatures, causing Android to reject the install.

- Sign with apksigner (v1+v2+v3) instead of jarsigner
- Add arm64-v8a native libraries from universal Soul Browser 1.4.79
- Set extractNativeLibs=true for reliable sideload installs
- Commit stable debug keystore for consistent signatures across builds

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Add committed debug keystore for consistent APK signatures

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix startup crash: use original classes2.dex desugar libraries

Apktool recompiles smali_classes2 into a broken classes2.dex, causing
ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init.

Inject the original classes2.dex (Java 8+ desugar libs) after apktool
build instead of using the recompiled version.

Co-authored-by: KaKi87 <KaKi87@pm.me>

* Fix missing drawable resources from density split APKs

The base APK is an app bundle module; density-specific drawables like
seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild,
causing Resources$NotFoundException at runtime.

- Merge non-9-patch resources from split APKs before apktool build
- Sync public.xml IDs from R smali only when backing files exist
- Add 713 density-specific resource IDs to public.xml

Co-authored-by: KaKi87 <KaKi87@pm.me>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-10 16:07:14 +02:00

578 lines
12 KiB
Smali

.class Lcom/google/android/material/chip/Chip$ChipTouchHelper;
.super Landroidx/customview/widget/ExploreByTouchHelper;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/material/chip/Chip;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = "ChipTouchHelper"
.end annotation
# instance fields
.field public final synthetic q:Lcom/google/android/material/chip/Chip;
# direct methods
.method public constructor <init>(Lcom/google/android/material/chip/Chip;Lcom/google/android/material/chip/Chip;)V
.locals 0
.line 1
iput-object p1, p0, Lcom/google/android/material/chip/Chip$ChipTouchHelper;->q:Lcom/google/android/material/chip/Chip;
.line 2
.line 3
invoke-direct {p0, p2}, Landroidx/customview/widget/ExploreByTouchHelper;-><init>(Lcom/google/android/material/chip/Chip;)V
.line 4
.line 5
.line 6
return-void
.end method
# virtual methods
.method public final l(Ljava/util/ArrayList;)V
.locals 2
.line 1
const/4 v0, 0x0
.line 2
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
.line 3
.line 4
.line 5
move-result-object v0
.line 6
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 7
.line 8
.line 9
sget v0, Lcom/google/android/material/chip/Chip;->B:I
.line 10
.line 11
iget-object v0, p0, Lcom/google/android/material/chip/Chip$ChipTouchHelper;->q:Lcom/google/android/material/chip/Chip;
.line 12
.line 13
invoke-virtual {v0}, Lcom/google/android/material/chip/Chip;->e()Z
.line 14
.line 15
.line 16
move-result v1
.line 17
if-eqz v1, :cond_0
.line 18
.line 19
iget-object v1, v0, Lcom/google/android/material/chip/Chip;->i:Lcom/google/android/material/chip/ChipDrawable;
.line 20
.line 21
if-eqz v1, :cond_0
.line 22
.line 23
iget-boolean v1, v1, Lcom/google/android/material/chip/ChipDrawable;->Y:Z
.line 24
.line 25
if-eqz v1, :cond_0
.line 26
.line 27
iget-object v0, v0, Lcom/google/android/material/chip/Chip;->l:Landroid/view/View$OnClickListener;
.line 28
.line 29
if-eqz v0, :cond_0
.line 30
.line 31
const/4 v0, 0x1
.line 32
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
.line 33
.line 34
.line 35
move-result-object v0
.line 36
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 37
.line 38
.line 39
:cond_0
return-void
.end method
.method public final o(II)Z
.locals 2
.line 1
const/16 v0, 0x10
.line 2
.line 3
const/4 v1, 0x0
.line 4
if-ne p2, v0, :cond_2
.line 5
.line 6
iget-object p2, p0, Lcom/google/android/material/chip/Chip$ChipTouchHelper;->q:Lcom/google/android/material/chip/Chip;
.line 7
.line 8
if-nez p1, :cond_0
.line 9
.line 10
invoke-virtual {p2}, Landroid/view/View;->performClick()Z
.line 11
.line 12
.line 13
move-result p1
.line 14
return p1
.line 15
:cond_0
const/4 v0, 0x1
.line 16
if-ne p1, v0, :cond_2
.line 17
.line 18
invoke-virtual {p2, v1}, Landroid/view/View;->playSoundEffect(I)V
.line 19
.line 20
.line 21
iget-object p1, p2, Lcom/google/android/material/chip/Chip;->l:Landroid/view/View$OnClickListener;
.line 22
.line 23
if-eqz p1, :cond_1
.line 24
.line 25
invoke-interface {p1, p2}, Landroid/view/View$OnClickListener;->onClick(Landroid/view/View;)V
.line 26
.line 27
.line 28
move v1, v0
.line 29
:cond_1
iget-boolean p1, p2, Lcom/google/android/material/chip/Chip;->x:Z
.line 30
.line 31
if-eqz p1, :cond_2
.line 32
.line 33
iget-object p1, p2, Lcom/google/android/material/chip/Chip;->w:Lcom/google/android/material/chip/Chip$ChipTouchHelper;
.line 34
.line 35
invoke-virtual {p1, v0, v0}, Landroidx/customview/widget/ExploreByTouchHelper;->t(II)V
.line 36
.line 37
.line 38
:cond_2
return v1
.end method
.method public final p(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;)V
.locals 3
.line 1
iget-object v0, p1, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->a:Landroid/view/accessibility/AccessibilityNodeInfo;
.line 2
.line 3
iget-object v1, p0, Lcom/google/android/material/chip/Chip$ChipTouchHelper;->q:Lcom/google/android/material/chip/Chip;
.line 4
.line 5
iget-object v2, v1, Lcom/google/android/material/chip/Chip;->i:Lcom/google/android/material/chip/ChipDrawable;
.line 6
.line 7
if-eqz v2, :cond_0
.line 8
.line 9
iget-boolean v2, v2, Lcom/google/android/material/chip/ChipDrawable;->e0:Z
.line 10
.line 11
if-eqz v2, :cond_0
.line 12
.line 13
const/4 v2, 0x1
.line 14
goto :goto_0
.line 15
:cond_0
const/4 v2, 0x0
.line 16
:goto_0
invoke-virtual {v0, v2}, Landroid/view/accessibility/AccessibilityNodeInfo;->setCheckable(Z)V
.line 17
.line 18
.line 19
invoke-virtual {v1}, Landroid/view/View;->isClickable()Z
.line 20
.line 21
.line 22
move-result v2
.line 23
invoke-virtual {v0, v2}, Landroid/view/accessibility/AccessibilityNodeInfo;->setClickable(Z)V
.line 24
.line 25
.line 26
invoke-virtual {v1}, Lcom/google/android/material/chip/Chip;->getAccessibilityClassName()Ljava/lang/CharSequence;
.line 27
.line 28
.line 29
move-result-object v0
.line 30
invoke-virtual {p1, v0}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->k(Ljava/lang/CharSequence;)V
.line 31
.line 32
.line 33
invoke-virtual {v1}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;
.line 34
.line 35
.line 36
move-result-object v0
.line 37
invoke-virtual {p1, v0}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->w(Ljava/lang/CharSequence;)V
.line 38
.line 39
.line 40
return-void
.end method
.method public final q(ILandroidx/core/view/accessibility/AccessibilityNodeInfoCompat;)V
.locals 7
.line 1
iget-object v0, p2, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->a:Landroid/view/accessibility/AccessibilityNodeInfo;
.line 2
.line 3
const-string v1, ""
.line 4
.line 5
const/4 v2, 0x1
.line 6
if-ne p1, v2, :cond_2
.line 7
.line 8
iget-object p1, p0, Lcom/google/android/material/chip/Chip$ChipTouchHelper;->q:Lcom/google/android/material/chip/Chip;
.line 9
.line 10
invoke-virtual {p1}, Lcom/google/android/material/chip/Chip;->getCloseIconContentDescription()Ljava/lang/CharSequence;
.line 11
.line 12
.line 13
move-result-object v3
.line 14
if-eqz v3, :cond_0
.line 15
.line 16
invoke-virtual {p2, v3}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->n(Ljava/lang/CharSequence;)V
.line 17
.line 18
.line 19
goto :goto_0
.line 20
:cond_0
invoke-virtual {p1}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;
.line 21
.line 22
.line 23
move-result-object v3
.line 24
invoke-virtual {p1}, Landroid/view/View;->getContext()Landroid/content/Context;
.line 25
.line 26
.line 27
move-result-object v4
.line 28
sget v5, Lcom/google/android/material/R$string;->mtrl_chip_close_icon_content_description:I
.line 29
.line 30
invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
.line 31
.line 32
.line 33
move-result v6
.line 34
if-nez v6, :cond_1
.line 35
.line 36
move-object v1, v3
.line 37
:cond_1
new-array v2, v2, [Ljava/lang/Object;
.line 38
.line 39
const/4 v3, 0x0
.line 40
aput-object v1, v2, v3
.line 41
.line 42
invoke-virtual {v4, v5, v2}, Landroid/content/Context;->getString(I[Ljava/lang/Object;)Ljava/lang/String;
.line 43
.line 44
.line 45
move-result-object v1
.line 46
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
.line 47
.line 48
.line 49
move-result-object v1
.line 50
invoke-virtual {p2, v1}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->n(Ljava/lang/CharSequence;)V
.line 51
.line 52
.line 53
:goto_0
invoke-static {p1}, Lcom/google/android/material/chip/Chip;->c(Lcom/google/android/material/chip/Chip;)Landroid/graphics/Rect;
.line 54
.line 55
.line 56
move-result-object v1
.line 57
invoke-virtual {v0, v1}, Landroid/view/accessibility/AccessibilityNodeInfo;->setBoundsInParent(Landroid/graphics/Rect;)V
.line 58
.line 59
.line 60
sget-object v1, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;->g:Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;
.line 61
.line 62
invoke-virtual {p2, v1}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->b(Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat$AccessibilityActionCompat;)V
.line 63
.line 64
.line 65
invoke-virtual {p1}, Landroid/view/View;->isEnabled()Z
.line 66
.line 67
.line 68
move-result p1
.line 69
invoke-virtual {v0, p1}, Landroid/view/accessibility/AccessibilityNodeInfo;->setEnabled(Z)V
.line 70
.line 71
.line 72
const-class p1, Landroid/widget/Button;
.line 73
.line 74
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
.line 75
.line 76
.line 77
move-result-object p1
.line 78
invoke-virtual {p2, p1}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->k(Ljava/lang/CharSequence;)V
.line 79
.line 80
.line 81
return-void
.line 82
:cond_2
invoke-virtual {p2, v1}, Landroidx/core/view/accessibility/AccessibilityNodeInfoCompat;->n(Ljava/lang/CharSequence;)V
.line 83
.line 84
.line 85
sget-object p1, Lcom/google/android/material/chip/Chip;->C:Landroid/graphics/Rect;
.line 86
.line 87
invoke-virtual {v0, p1}, Landroid/view/accessibility/AccessibilityNodeInfo;->setBoundsInParent(Landroid/graphics/Rect;)V
.line 88
.line 89
.line 90
return-void
.end method
.method public final r(IZ)V
.locals 4
.line 1
iget-object v0, p0, Lcom/google/android/material/chip/Chip$ChipTouchHelper;->q:Lcom/google/android/material/chip/Chip;
.line 2
.line 3
const/4 v1, 0x1
.line 4
if-ne p1, v1, :cond_0
.line 5
.line 6
iput-boolean p2, v0, Lcom/google/android/material/chip/Chip;->r:Z
.line 7
.line 8
:cond_0
iget-object p1, v0, Lcom/google/android/material/chip/Chip;->i:Lcom/google/android/material/chip/ChipDrawable;
.line 9
.line 10
iget-boolean p2, v0, Lcom/google/android/material/chip/Chip;->r:Z
.line 11
.line 12
iget-object v2, p1, Lcom/google/android/material/chip/ChipDrawable;->Z:Landroid/graphics/drawable/Drawable;
.line 13
.line 14
const/4 v3, 0x0
.line 15
if-eqz v2, :cond_2
.line 16
.line 17
if-eqz p2, :cond_1
.line 18
.line 19
const/4 p2, 0x2
.line 20
new-array p2, p2, [I
.line 21
.line 22
const v2, 0x10100a7
.line 23
.line 24
.line 25
aput v2, p2, v3
.line 26
.line 27
const v2, 0x101009e
.line 28
.line 29
.line 30
aput v2, p2, v1
.line 31
.line 32
goto :goto_0
.line 33
:cond_1
sget-object p2, Lcom/google/android/material/chip/ChipDrawable;->T0:[I
.line 34
.line 35
:goto_0
invoke-virtual {p1, p2}, Lcom/google/android/material/chip/ChipDrawable;->U([I)Z
.line 36
.line 37
.line 38
move-result v3
.line 39
:cond_2
if-eqz v3, :cond_3
.line 40
.line 41
invoke-virtual {v0}, Landroid/view/View;->refreshDrawableState()V
.line 42
.line 43
.line 44
:cond_3
return-void
.end method