SpectrumHybrid.smali
.class public Lcom/facebook/spectrum/SpectrumHybrid;
.super Ljava/lang/Object;
.source "SpectrumHybrid.java"
# annotations
.annotation build Landroid/annotation/SuppressLint;
value = {
"MissingNativeLoadLibrary"
}
.end annotation
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
# static fields
.field public static final TAG:Ljava/lang/String; = "SpectrumHybrid"
# instance fields
.field public final mConfiguration:Lcom/facebook/spectrum/Configuration;
.field public mHybridData:Lcom/facebook/jni/HybridData;
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
.annotation runtime Ljavax/annotation/Nullable;
.end annotation
.end field
.field public final mPlugins:[Lcom/facebook/spectrum/plugins/SpectrumPlugin;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/facebook/spectrum/Configuration;[Lcom/facebook/spectrum/plugins/SpectrumPlugin;)V
.registers 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
invoke-static {p1}, Lcom/facebook/spectrum/utils/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/facebook/spectrum/Configuration;
iput-object p1, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mConfiguration:Lcom/facebook/spectrum/Configuration;
invoke-static {p2}, Lcom/facebook/spectrum/utils/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, [Lcom/facebook/spectrum/plugins/SpectrumPlugin;
iput-object p1, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mPlugins:[Lcom/facebook/spectrum/plugins/SpectrumPlugin;
return-void
.end method
.method private native initHybrid(Lcom/facebook/spectrum/Configuration;[Lcom/facebook/spectrum/plugins/SpectrumPlugin;)Lcom/facebook/jni/HybridData;
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
.end method
.method private native nativeDecode(Ljava/io/InputStream;Lcom/facebook/spectrum/BitmapTarget;Lcom/facebook/spectrum/options/DecodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
.end method
.method private native nativeEncode(Landroid/graphics/Bitmap;Ljava/io/OutputStream;Lcom/facebook/spectrum/options/EncodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
.end method
.method private native nativeTranscode(Ljava/io/InputStream;Ljava/io/OutputStream;Lcom/facebook/spectrum/options/TranscodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
.end method
.method private native nativeTransform(Landroid/graphics/Bitmap;Lcom/facebook/spectrum/BitmapTarget;Lcom/facebook/spectrum/options/TransformOptions;)Lcom/facebook/spectrum/SpectrumResult;
.annotation build Lcom/facebook/jni/annotations/DoNotStrip;
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
.end method
# virtual methods
.method public decode(Ljava/io/InputStream;Lcom/facebook/spectrum/BitmapTarget;Lcom/facebook/spectrum/options/DecodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
invoke-virtual {p0}, Lcom/facebook/spectrum/SpectrumHybrid;->ensureNativeLibraryInitialized()V
invoke-direct {p0, p1, p2, p3}, Lcom/facebook/spectrum/SpectrumHybrid;->nativeDecode(Ljava/io/InputStream;Lcom/facebook/spectrum/BitmapTarget;Lcom/facebook/spectrum/options/DecodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
move-result-object p1
return-object p1
.end method
.method public encode(Landroid/graphics/Bitmap;Ljava/io/OutputStream;Lcom/facebook/spectrum/options/EncodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
invoke-virtual {p0}, Lcom/facebook/spectrum/SpectrumHybrid;->ensureNativeLibraryInitialized()V
invoke-direct {p0, p1, p2, p3}, Lcom/facebook/spectrum/SpectrumHybrid;->nativeEncode(Landroid/graphics/Bitmap;Ljava/io/OutputStream;Lcom/facebook/spectrum/options/EncodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
move-result-object p1
return-object p1
.end method
.method public declared-synchronized ensureNativeLibraryInitialized()V
.registers 3
monitor-enter p0
:try_start_1
iget-object v0, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mHybridData:Lcom/facebook/jni/HybridData;
if-eqz v0, :cond_f
iget-object v0, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mHybridData:Lcom/facebook/jni/HybridData;
invoke-virtual {v0}, Lcom/facebook/jni/HybridData;->isValid()Z
move-result v0
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_20
if-eqz v0, :cond_f
monitor-exit p0
return-void
:cond_f
:try_start_f
const-string v0, "spectrum"
invoke-static {v0}, Lcom/facebook/spectrum/SpectrumSoLoader;->loadLibrary(Ljava/lang/String;)V
iget-object v0, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mConfiguration:Lcom/facebook/spectrum/Configuration;
iget-object v1, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mPlugins:[Lcom/facebook/spectrum/plugins/SpectrumPlugin;
invoke-direct {p0, v0, v1}, Lcom/facebook/spectrum/SpectrumHybrid;->initHybrid(Lcom/facebook/spectrum/Configuration;[Lcom/facebook/spectrum/plugins/SpectrumPlugin;)Lcom/facebook/jni/HybridData;
move-result-object v0
iput-object v0, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mHybridData:Lcom/facebook/jni/HybridData;
:try_end_1e
.catchall {:try_start_f .. :try_end_1e} :catchall_20
monitor-exit p0
return-void
:catchall_20
move-exception v0
monitor-exit p0
throw v0
.end method
.method public isAvailable()Z
.registers 6
.annotation build Landroid/annotation/SuppressLint;
value = {
"CatchGeneralException"
}
.end annotation
const/4 v0, 0x1
const/4 v1, 0x0
:try_start_2
invoke-virtual {p0}, Lcom/facebook/spectrum/SpectrumHybrid;->ensureNativeLibraryInitialized()V
iget-object v2, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mHybridData:Lcom/facebook/jni/HybridData;
if-eqz v2, :cond_12
iget-object v2, p0, Lcom/facebook/spectrum/SpectrumHybrid;->mHybridData:Lcom/facebook/jni/HybridData;
invoke-virtual {v2}, Lcom/facebook/jni/HybridData;->isValid()Z
move-result v2
:try_end_f
.catchall {:try_start_2 .. :try_end_f} :catchall_14
if-eqz v2, :cond_12
goto :goto_13
:cond_12
const/4 v0, 0x0
:goto_13
return v0
:catchall_14
move-exception v2
const/4 v3, 0x0
new-array v0, v0, [Ljava/lang/Object;
invoke-virtual {v2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v4
aput-object v4, v0, v1
const-string v4, "Failed to load and initialize native: %s"
invoke-static {v3, v4, v0}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v3, "SpectrumHybrid"
invoke-static {v3, v0, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
return v1
.end method
.method public transcode(Ljava/io/InputStream;Ljava/io/OutputStream;Lcom/facebook/spectrum/options/TranscodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
invoke-virtual {p0}, Lcom/facebook/spectrum/SpectrumHybrid;->ensureNativeLibraryInitialized()V
invoke-direct {p0, p1, p2, p3}, Lcom/facebook/spectrum/SpectrumHybrid;->nativeTranscode(Ljava/io/InputStream;Ljava/io/OutputStream;Lcom/facebook/spectrum/options/TranscodeOptions;)Lcom/facebook/spectrum/SpectrumResult;
move-result-object p1
return-object p1
.end method
.method public transform(Landroid/graphics/Bitmap;Lcom/facebook/spectrum/BitmapTarget;Lcom/facebook/spectrum/options/TransformOptions;)Lcom/facebook/spectrum/SpectrumResult;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/facebook/spectrum/SpectrumException;
}
.end annotation
invoke-virtual {p0}, Lcom/facebook/spectrum/SpectrumHybrid;->ensureNativeLibraryInitialized()V
invoke-direct {p0, p1, p2, p3}, Lcom/facebook/spectrum/SpectrumHybrid;->nativeTransform(Landroid/graphics/Bitmap;Lcom/facebook/spectrum/BitmapTarget;Lcom/facebook/spectrum/options/TransformOptions;)Lcom/facebook/spectrum/SpectrumResult;
move-result-object p1
return-object p1
.end method