NativeAppCallAttachmentStore.smali
.class public final Lcom/facebook/internal/NativeAppCallAttachmentStore;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;
}
.end annotation
# static fields
.field public static final ATTACHMENTS_DIR_NAME:Ljava/lang/String; = "com.facebook.NativeAppCallAttachmentStore.files"
.field public static final INSTANCE:Lcom/facebook/internal/NativeAppCallAttachmentStore;
.field private static final TAG:Ljava/lang/String;
.field private static attachmentsDirectory:Ljava/io/File;
# direct methods
.method public static constructor <clinit>()V
.registers 1
new-instance v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;
invoke-direct {v0}, Lcom/facebook/internal/NativeAppCallAttachmentStore;-><init>()V
sput-object v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;->INSTANCE:Lcom/facebook/internal/NativeAppCallAttachmentStore;
const-class v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;->TAG:Ljava/lang/String;
return-void
.end method
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static final addAttachments(Ljava/util/Collection;)V
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Collection<",
"Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/FacebookException;
}
.end annotation
if-eqz p0, :cond_8a
.line 1
invoke-interface {p0}, Ljava/util/Collection;->isEmpty()Z
move-result v0
if-eqz v0, :cond_a
goto/16 :goto_8a
.line 2
:cond_a
sget-object v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;->attachmentsDirectory:Ljava/io/File;
if-nez v0, :cond_11
.line 3
invoke-static {}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->cleanupAllAttachments()V
.line 4
:cond_11
invoke-static {}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->ensureAttachmentsDirectoryExists()Ljava/io/File;
.line 5
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 6
:try_start_19
invoke-interface {p0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_1d
:goto_1d
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_64
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;
.line 7
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getShouldCreateFile()Z
move-result v2
if-nez v2, :cond_30
goto :goto_1d
.line 8
:cond_30
sget-object v2, Lcom/facebook/internal/NativeAppCallAttachmentStore;->INSTANCE:Lcom/facebook/internal/NativeAppCallAttachmentStore;
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getCallId()Ljava/util/UUID;
move-result-object v3
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getAttachmentName()Ljava/lang/String;
move-result-object v4
const/4 v5, 0x1
invoke-static {v3, v4, v5}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->getAttachmentFile(Ljava/util/UUID;Ljava/lang/String;Z)Ljava/io/File;
move-result-object v3
if-eqz v3, :cond_1d
.line 9
invoke-interface {v0, v3}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 10
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v4
if-eqz v4, :cond_52
.line 11
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getBitmap()Landroid/graphics/Bitmap;
move-result-object v1
invoke-direct {v2, v1, v3}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->processAttachmentBitmap(Landroid/graphics/Bitmap;Ljava/io/File;)V
goto :goto_1d
.line 12
:cond_52
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getOriginalUri()Landroid/net/Uri;
move-result-object v4
if-eqz v4, :cond_1d
.line 13
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->getOriginalUri()Landroid/net/Uri;
move-result-object v4
invoke-virtual {v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;->isContentUri()Z
move-result v1
invoke-direct {v2, v4, v1, v3}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->processAttachmentFile(Landroid/net/Uri;ZLjava/io/File;)V
:try_end_63
.catch Ljava/io/IOException; {:try_start_19 .. :try_end_63} :catch_65
goto :goto_1d
:cond_64
return-void
:catch_65
move-exception p0
const-string v1, "Got unexpected exception:"
.line 14
invoke-static {v1, p0}, Lcom/shopee/sz/loadtask/datasource/a;->I0(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/String;
.line 15
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_6f
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_84
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/io/File;
if-nez v1, :cond_7e
goto :goto_6f
.line 16
:cond_7e
:try_start_7e
invoke-virtual {v1}, Ljava/io/File;->delete()Z
:try_end_81
.catch Ljava/lang/Exception; {:try_start_7e .. :try_end_81} :catch_82
goto :goto_6f
:catch_82
nop
goto :goto_6f
.line 17
:cond_84
new-instance v0, Lcom/facebook/FacebookException;
invoke-direct {v0, p0}, Lcom/facebook/FacebookException;-><init>(Ljava/lang/Throwable;)V
throw v0
:cond_8a
:goto_8a
return-void
.end method
.method public static final cleanupAllAttachments()V
.registers 1
invoke-static {}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->getAttachmentsDirectory()Ljava/io/File;
move-result-object v0
if-nez v0, :cond_7
goto :goto_a
:cond_7
invoke-static {v0}, Lkotlin/io/h;->W0(Ljava/io/File;)Z
:goto_a
return-void
.end method
.method public static final cleanupAttachmentsForCall(Ljava/util/UUID;)V
.registers 2
const-string v0, "callId"
invoke-static {p0, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
const/4 v0, 0x0
.line 1
invoke-static {p0, v0}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->getAttachmentsDirectoryForCall(Ljava/util/UUID;Z)Ljava/io/File;
move-result-object p0
if-nez p0, :cond_d
goto :goto_10
.line 2
:cond_d
invoke-static {p0}, Lkotlin/io/h;->W0(Ljava/io/File;)Z
:goto_10
return-void
.end method
.method public static final createAttachment(Ljava/util/UUID;Landroid/graphics/Bitmap;)Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;
.registers 4
const-string v0, "callId"
invoke-static {p0, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "attachmentBitmap"
invoke-static {p1, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
new-instance v0, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;
const/4 v1, 0x0
invoke-direct {v0, p0, p1, v1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;-><init>(Ljava/util/UUID;Landroid/graphics/Bitmap;Landroid/net/Uri;)V
return-object v0
.end method
.method public static final createAttachment(Ljava/util/UUID;Landroid/net/Uri;)Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;
.registers 4
const-string v0, "callId"
invoke-static {p0, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
const-string v0, "attachmentUri"
invoke-static {p1, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
.line 2
new-instance v0, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;
const/4 v1, 0x0
invoke-direct {v0, p0, v1, p1}, Lcom/facebook/internal/NativeAppCallAttachmentStore$Attachment;-><init>(Ljava/util/UUID;Landroid/graphics/Bitmap;Landroid/net/Uri;)V
return-object v0
.end method
.method public static final ensureAttachmentsDirectoryExists()Ljava/io/File;
.registers 1
.line 1
invoke-static {}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->getAttachmentsDirectory()Ljava/io/File;
move-result-object v0
if-nez v0, :cond_7
goto :goto_a
.line 2
:cond_7
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
:goto_a
return-object v0
.end method
.method public static final getAttachmentFile(Ljava/util/UUID;Ljava/lang/String;Z)Ljava/io/File;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const-string v0, "callId"
invoke-static {p0, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
invoke-static {p0, p2}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->getAttachmentsDirectoryForCall(Ljava/util/UUID;Z)Ljava/io/File;
move-result-object p0
const/4 p2, 0x0
if-nez p0, :cond_d
return-object p2
.line 2
:cond_d
:try_start_d
new-instance v0, Ljava/io/File;
const-string v1, "UTF-8"
invoke-static {p1, v1}, Ljava/net/URLEncoder;->encode(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p0, p1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
:try_end_18
.catch Ljava/io/UnsupportedEncodingException; {:try_start_d .. :try_end_18} :catch_19
move-object p2, v0
:catch_19
return-object p2
.end method
.method public static final declared-synchronized getAttachmentsDirectory()Ljava/io/File;
.registers 4
const-class v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;
monitor-enter v0
.line 1
:try_start_3
sget-object v1, Lcom/facebook/internal/NativeAppCallAttachmentStore;->attachmentsDirectory:Ljava/io/File;
if-nez v1, :cond_1a
.line 2
new-instance v1, Ljava/io/File;
sget-object v2, Lcom/facebook/FacebookSdk;->INSTANCE:Lcom/facebook/FacebookSdk;
invoke-static {}, Lcom/facebook/FacebookSdk;->getApplicationContext()Landroid/content/Context;
move-result-object v2
invoke-virtual {v2}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
move-result-object v2
const-string v3, "com.facebook.NativeAppCallAttachmentStore.files"
invoke-direct {v1, v2, v3}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 3
sput-object v1, Lcom/facebook/internal/NativeAppCallAttachmentStore;->attachmentsDirectory:Ljava/io/File;
.line 4
:cond_1a
sget-object v1, Lcom/facebook/internal/NativeAppCallAttachmentStore;->attachmentsDirectory:Ljava/io/File;
:try_end_1c
.catchall {:try_start_3 .. :try_end_1c} :catchall_1e
monitor-exit v0
return-object v1
:catchall_1e
move-exception v1
monitor-exit v0
throw v1
.end method
.method public static final getAttachmentsDirectoryForCall(Ljava/util/UUID;Z)Ljava/io/File;
.registers 4
const-string v0, "callId"
invoke-static {p0, v0}, Lcom/shopee/sz/loadtask/datasource/a;->y(Ljava/lang/Object;Ljava/lang/String;)V
.line 1
sget-object v0, Lcom/facebook/internal/NativeAppCallAttachmentStore;->attachmentsDirectory:Ljava/io/File;
if-nez v0, :cond_b
const/4 p0, 0x0
return-object p0
.line 2
:cond_b
new-instance v0, Ljava/io/File;
sget-object v1, Lcom/facebook/internal/NativeAppCallAttachmentStore;->attachmentsDirectory:Ljava/io/File;
invoke-virtual {p0}, Ljava/util/UUID;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, v1, p0}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
if-eqz p1, :cond_21
.line 3
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result p0
if-nez p0, :cond_21
.line 4
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
:cond_21
return-object v0
.end method
.method public static final openAttachment(Ljava/util/UUID;Ljava/lang/String;)Ljava/io/File;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/FileNotFoundException;
}
.end annotation
.line 1
sget-object v0, Lcom/facebook/internal/Utility;->INSTANCE:Lcom/facebook/internal/Utility;
invoke-static {p1}, Lcom/facebook/internal/Utility;->isNullOrEmpty(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_16
if-eqz p0, :cond_16
const/4 v0, 0x0
.line 2
:try_start_b
invoke-static {p0, p1, v0}, Lcom/facebook/internal/NativeAppCallAttachmentStore;->getAttachmentFile(Ljava/util/UUID;Ljava/lang/String;Z)Ljava/io/File;
move-result-object p0
:try_end_f
.catch Ljava/io/IOException; {:try_start_b .. :try_end_f} :catch_10
return-object p0
.line 3
:catch_10
new-instance p0, Ljava/io/FileNotFoundException;
invoke-direct {p0}, Ljava/io/FileNotFoundException;-><init>()V
throw p0
.line 4
:cond_16
new-instance p0, Ljava/io/FileNotFoundException;
invoke-direct {p0}, Ljava/io/FileNotFoundException;-><init>()V
throw p0
.end method
.method private final processAttachmentBitmap(Landroid/graphics/Bitmap;Ljava/io/File;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
new-instance v0, Ljava/io/FileOutputStream;
invoke-direct {v0, p2}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
.line 2
:try_start_5
sget-object p2, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;
const/16 v1, 0x64
invoke-virtual {p1, p2, v1, v0}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z
:try_end_c
.catchall {:try_start_5 .. :try_end_c} :catchall_12
.line 3
sget-object p1, Lcom/facebook/internal/Utility;->INSTANCE:Lcom/facebook/internal/Utility;
invoke-static {v0}, Lcom/facebook/internal/Utility;->closeQuietly(Ljava/io/Closeable;)V
return-void
:catchall_12
move-exception p1
sget-object p2, Lcom/facebook/internal/Utility;->INSTANCE:Lcom/facebook/internal/Utility;
invoke-static {v0}, Lcom/facebook/internal/Utility;->closeQuietly(Ljava/io/Closeable;)V
throw p1
.end method
.method private final processAttachmentFile(Landroid/net/Uri;ZLjava/io/File;)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
new-instance v0, Ljava/io/FileOutputStream;
invoke-direct {v0, p3}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
if-nez p2, :cond_11
.line 2
:try_start_7
new-instance p2, Ljava/io/FileInputStream;
invoke-virtual {p1}, Landroid/net/Uri;->getPath()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
goto :goto_1f
.line 3
:cond_11
sget-object p2, Lcom/facebook/FacebookSdk;->INSTANCE:Lcom/facebook/FacebookSdk;
invoke-static {}, Lcom/facebook/FacebookSdk;->getApplicationContext()Landroid/content/Context;
move-result-object p2
invoke-virtual {p2}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object p2
invoke-virtual {p2, p1}, Landroid/content/ContentResolver;->openInputStream(Landroid/net/Uri;)Ljava/io/InputStream;
move-result-object p2
.line 4
:goto_1f
sget-object p1, Lcom/facebook/internal/Utility;->INSTANCE:Lcom/facebook/internal/Utility;
invoke-static {p2, v0}, Lcom/facebook/internal/Utility;->copyAndCloseInputStream(Ljava/io/InputStream;Ljava/io/OutputStream;)I
:try_end_24
.catchall {:try_start_7 .. :try_end_24} :catchall_28
.line 5
invoke-static {v0}, Lcom/facebook/internal/Utility;->closeQuietly(Ljava/io/Closeable;)V
return-void
:catchall_28
move-exception p1
sget-object p2, Lcom/facebook/internal/Utility;->INSTANCE:Lcom/facebook/internal/Utility;
invoke-static {v0}, Lcom/facebook/internal/Utility;->closeQuietly(Ljava/io/Closeable;)V
throw p1
.end method