Files
rr3-apk/smali_classes2/com/firemint/realracing/PendingImageToSave.smali
Daniel Elliott f3960ee359 Add Discord APKTool decompilation (Smali source for modding)
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
2026-02-18 16:13:44 -08:00

281 lines
7.7 KiB
Smali

.class public Lcom/firemint/realracing/PendingImageToSave;
.super Ljava/lang/Object;
.source "SourceFile"
# instance fields
.field private m_dataSize:I
.field private m_filename:Ljava/lang/String;
.field private m_height:I
.field private m_picturesFolder:Ljava/io/File;
.field private m_pixelData:[I
.field private m_width:I
# direct methods
.method public constructor <init>([IIIILjava/lang/String;Ljava/io/File;)V
.locals 0
.line 20
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/firemint/realracing/PendingImageToSave;->m_pixelData:[I
iput p2, p0, Lcom/firemint/realracing/PendingImageToSave;->m_dataSize:I
iput p3, p0, Lcom/firemint/realracing/PendingImageToSave;->m_width:I
iput p4, p0, Lcom/firemint/realracing/PendingImageToSave;->m_height:I
iput-object p5, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
iput-object p6, p0, Lcom/firemint/realracing/PendingImageToSave;->m_picturesFolder:Ljava/io/File;
return-void
.end method
# virtual methods
.method public GetFileExtension()Ljava/lang/String;
.locals 3
iget-object v0, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
.line 33
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
iget-object v1, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
add-int/lit8 v2, v0, -0x3
.line 34
invoke-virtual {v1, v2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public SaveImage(Landroid/content/Intent;)Z
.locals 10
.line 39
sget-object v0, Lcom/firemint/realracing/MainActivity;->instance:Lcom/firemint/realracing/MainActivity;
sget v1, Lcom/firemint/realracing/R$string;->screenshot_folder_name:I
.line 40
invoke-virtual {v0, v1}, Landroid/content/Context;->getString(I)Ljava/lang/String;
move-result-object v1
const/16 v2, 0x1d
const/4 v3, 0x0
.line 46
:try_start_0
invoke-static {v2}, Lcom/firemint/realracing/MainActivity;->IsBelowAPI(I)Z
move-result v2
if-eqz v2, :cond_3
const/16 v2, 0x18
.line 49
invoke-static {v2}, Lcom/firemint/realracing/MainActivity;->IsAtLeastAPI(I)Z
move-result v2
if-eqz v2, :cond_1
.line 52
invoke-virtual {p1}, Landroid/content/Intent;->getData()Landroid/net/Uri;
move-result-object p1
.line 53
invoke-static {v0, p1}, Landroidx/documentfile/provider/DocumentFile;->fromTreeUri(Landroid/content/Context;Landroid/net/Uri;)Landroidx/documentfile/provider/DocumentFile;
move-result-object p1
.line 55
invoke-virtual {p1, v1}, Landroidx/documentfile/provider/DocumentFile;->findFile(Ljava/lang/String;)Landroidx/documentfile/provider/DocumentFile;
move-result-object v2
if-nez v2, :cond_0
.line 58
invoke-virtual {p1, v1}, Landroidx/documentfile/provider/DocumentFile;->createDirectory(Ljava/lang/String;)Landroidx/documentfile/provider/DocumentFile;
move-result-object v2
goto :goto_0
:catch_0
move-exception p1
goto :goto_2
.line 62
:cond_0
:goto_0
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "image/"
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/firemint/realracing/PendingImageToSave;->GetFileExtension()Ljava/lang/String;
move-result-object v1
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
iget-object v1, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
invoke-virtual {v2, p1, v1}, Landroidx/documentfile/provider/DocumentFile;->createFile(Ljava/lang/String;Ljava/lang/String;)Landroidx/documentfile/provider/DocumentFile;
move-result-object p1
.line 65
invoke-virtual {v0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v0
invoke-virtual {p1}, Landroidx/documentfile/provider/DocumentFile;->getUri()Landroid/net/Uri;
move-result-object p1
const-string v1, "w"
invoke-virtual {v0, p1, v1}, Landroid/content/ContentResolver;->openFileDescriptor(Landroid/net/Uri;Ljava/lang/String;)Landroid/os/ParcelFileDescriptor;
move-result-object p1
goto :goto_1
.line 70
:cond_1
new-instance p1, Ljava/io/File;
iget-object v0, p0, Lcom/firemint/realracing/PendingImageToSave;->m_picturesFolder:Ljava/io/File;
invoke-direct {p1, v0, v1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 71
invoke-virtual {p1}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_2
.line 73
invoke-virtual {p1}, Ljava/io/File;->mkdirs()Z
.line 78
:cond_2
new-instance v0, Ljava/io/File;
iget-object v1, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
invoke-direct {v0, p1, v1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 79
invoke-virtual {v0}, Ljava/io/File;->createNewFile()Z
const/high16 p1, 0x20000000
.line 82
invoke-static {v0, p1}, Landroid/os/ParcelFileDescriptor;->open(Ljava/io/File;I)Landroid/os/ParcelFileDescriptor;
move-result-object p1
:goto_1
iget-object v4, p0, Lcom/firemint/realracing/PendingImageToSave;->m_pixelData:[I
iget v5, p0, Lcom/firemint/realracing/PendingImageToSave;->m_dataSize:I
iget v6, p0, Lcom/firemint/realracing/PendingImageToSave;->m_width:I
iget v7, p0, Lcom/firemint/realracing/PendingImageToSave;->m_height:I
iget-object v8, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
.line 85
invoke-virtual {p1}, Landroid/os/ParcelFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor;
move-result-object v9
invoke-static/range {v4 .. v9}, Lcom/firemint/realracing/Platform;->saveToImageGalleryImpl([IIIILjava/lang/String;Ljava/io/FileDescriptor;)Z
move-result v3
.line 86
invoke-virtual {p1}, Landroid/os/ParcelFileDescriptor;->close()V
goto :goto_3
:cond_3
iget-object v4, p0, Lcom/firemint/realracing/PendingImageToSave;->m_pixelData:[I
iget v5, p0, Lcom/firemint/realracing/PendingImageToSave;->m_dataSize:I
iget v6, p0, Lcom/firemint/realracing/PendingImageToSave;->m_width:I
iget v7, p0, Lcom/firemint/realracing/PendingImageToSave;->m_height:I
iget-object v8, p0, Lcom/firemint/realracing/PendingImageToSave;->m_filename:Ljava/lang/String;
const/4 v9, 0x0
.line 90
invoke-static/range {v4 .. v9}, Lcom/firemint/realracing/Platform;->saveToImageGalleryImpl([IIIILjava/lang/String;Ljava/io/FileDescriptor;)Z
move-result v3
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
goto :goto_3
.line 95
:goto_2
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Error: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {p1}, Lcom/firemint/realracing/MainActivity;->loge(Ljava/lang/String;)V
:goto_3
return v3
.end method