BasicBinary.smali
.class public abstract Lcom/h/r/BasicBinary;
.super Ljava/lang/Object;
# interfaces
.implements Lcom/h/i/Finishable;
.implements Lcom/h/i/Startable;
.implements Lcom/h/r/Binary;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/h/r/BasicBinary$UploadPoster;
}
.end annotation
# instance fields
.field private fileName:Ljava/lang/String;
.field private isCancel:Z
.field private isFinish:Z
.field private isStarted:Z
.field private mUploadListener:Lcom/h/r/OnUploadListener;
.field private mimeType:Ljava/lang/String;
.field private what:I
# direct methods
.method public constructor <init>(Ljava/lang/String;Ljava/lang/String;)V
.registers 4
const/4 v0, 0x0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-boolean v0, p0, Lcom/h/r/BasicBinary;->isStarted:Z
iput-boolean v0, p0, Lcom/h/r/BasicBinary;->isCancel:Z
iput-boolean v0, p0, Lcom/h/r/BasicBinary;->isFinish:Z
iput-object p1, p0, Lcom/h/r/BasicBinary;->fileName:Ljava/lang/String;
iput-object p2, p0, Lcom/h/r/BasicBinary;->mimeType:Ljava/lang/String;
return-void
.end method
# virtual methods
.method public cancel()V
.registers 2
iget-boolean v0, p0, Lcom/h/r/BasicBinary;->isCancel:Z
if-nez v0, :cond_a
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/h/r/BasicBinary;->isCancel:Z
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->postCancel()V
:cond_a
return-void
.end method
.method public finish()V
.registers 2
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/h/r/BasicBinary;->isFinish:Z
return-void
.end method
.method public abstract getBinaryLength()J
.end method
.method public getFileName()Ljava/lang/String;
.registers 3
iget-object v0, p0, Lcom/h/r/BasicBinary;->fileName:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_12
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Long;->toString(J)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/h/r/BasicBinary;->fileName:Ljava/lang/String;
:cond_12
iget-object v0, p0, Lcom/h/r/BasicBinary;->fileName:Ljava/lang/String;
return-object v0
.end method
.method protected abstract getInputStream()Ljava/io/InputStream;
.end method
.method public final getLength()J
.registers 3
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->isCanceled()Z
move-result v0
if-nez v0, :cond_b
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->getBinaryLength()J
move-result-wide v0
:goto_a
return-wide v0
:cond_b
const-wide/16 v0, 0x0
goto :goto_a
.end method
.method public getMimeType()Ljava/lang/String;
.registers 3
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->getFileName()Ljava/lang/String;
move-result-object v0
iget-object v1, p0, Lcom/h/r/BasicBinary;->mimeType:Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_20
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_20
invoke-static {v0}, Landroid/webkit/MimeTypeMap;->getFileExtensionFromUrl(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-static {}, Landroid/webkit/MimeTypeMap;->getSingleton()Landroid/webkit/MimeTypeMap;
move-result-object v1
invoke-virtual {v1, v0}, Landroid/webkit/MimeTypeMap;->getMimeTypeFromExtension(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/h/r/BasicBinary;->mimeType:Ljava/lang/String;
:cond_20
iget-object v0, p0, Lcom/h/r/BasicBinary;->mimeType:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_2d
const-string/jumbo v0, "application/octet-stream"
iput-object v0, p0, Lcom/h/r/BasicBinary;->mimeType:Ljava/lang/String;
:cond_2d
iget-object v0, p0, Lcom/h/r/BasicBinary;->mimeType:Ljava/lang/String;
return-object v0
.end method
.method public isCanceled()Z
.registers 2
iget-boolean v0, p0, Lcom/h/r/BasicBinary;->isCancel:Z
return v0
.end method
.method public isFinished()Z
.registers 2
iget-boolean v0, p0, Lcom/h/r/BasicBinary;->isFinish:Z
return v0
.end method
.method public isStarted()Z
.registers 2
iget-boolean v0, p0, Lcom/h/r/BasicBinary;->isStarted:Z
return v0
.end method
.method public onWriteBinary(Ljava/io/OutputStream;)V
.registers 14
const-wide/16 v6, 0x0
const/4 v0, 0x0
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->isCanceled()Z
move-result v1
if-nez v1, :cond_63
const/4 v1, 0x0
:try_start_a
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->getInputStream()Ljava/io/InputStream;
:try_end_d
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_d} :catch_67
.catchall {:try_start_a .. :try_end_d} :catchall_75
move-result-object v1
if-nez v1, :cond_17
invoke-static {v1}, Lcom/h/q/IOUtils;->closeQuietly(Ljava/io/Closeable;)V
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->postFinish()V
:goto_16
return-void
:cond_17
:try_start_17
invoke-static {v1}, Lcom/h/q/IOUtils;->toBufferedInputStream(Ljava/io/InputStream;)Ljava/io/BufferedInputStream;
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_17 .. :try_end_1a} :catch_67
.catchall {:try_start_17 .. :try_end_1a} :catchall_7e
move-result-object v2
:try_start_1b
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->start()V
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->postStart()V
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->getLength()J
move-result-wide v8
const/16 v1, 0x1000
new-array v3, v1, [B
move-wide v4, v6
:cond_2a
:goto_2a
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->isCanceled()Z
move-result v1
if-nez v1, :cond_5d
invoke-virtual {v2, v3}, Ljava/io/InputStream;->read([B)I
move-result v1
const/4 v10, -0x1
if-eq v1, v10, :cond_5d
const/4 v10, 0x0
invoke-virtual {p1, v3, v10, v1}, Ljava/io/OutputStream;->write([BII)V
cmp-long v10, v8, v6
if-eqz v10, :cond_2a
iget-object v10, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
if-eqz v10, :cond_2a
int-to-long v10, v1
add-long/2addr v4, v10
const-wide/16 v10, 0x64
mul-long/2addr v10, v4
div-long/2addr v10, v8
long-to-int v1, v10
rem-int/lit8 v10, v1, 0x3
if-eqz v10, :cond_56
rem-int/lit8 v10, v1, 0x5
if-eqz v10, :cond_56
rem-int/lit8 v10, v1, 0x7
if-nez v10, :cond_2a
:cond_56
if-eq v0, v1, :cond_2a
invoke-virtual {p0, v1}, Lcom/h/r/BasicBinary;->postProgress(I)V
:try_end_5b
.catch Ljava/lang/Exception; {:try_start_1b .. :try_end_5b} :catch_86
.catchall {:try_start_1b .. :try_end_5b} :catchall_81
move v0, v1
goto :goto_2a
:cond_5d
invoke-static {v2}, Lcom/h/q/IOUtils;->closeQuietly(Ljava/io/Closeable;)V
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->postFinish()V
:cond_63
:goto_63
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->finish()V
goto :goto_16
:catch_67
move-exception v0
:goto_68
:try_start_68
invoke-static {v0}, Lcom/h/r/Logger;->e(Ljava/lang/Throwable;)V
invoke-virtual {p0, v0}, Lcom/h/r/BasicBinary;->postError(Ljava/lang/Exception;)V
:try_end_6e
.catchall {:try_start_68 .. :try_end_6e} :catchall_83
invoke-static {v1}, Lcom/h/q/IOUtils;->closeQuietly(Ljava/io/Closeable;)V
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->postFinish()V
goto :goto_63
:catchall_75
move-exception v0
move-object v2, v1
:goto_77
invoke-static {v2}, Lcom/h/q/IOUtils;->closeQuietly(Ljava/io/Closeable;)V
invoke-virtual {p0}, Lcom/h/r/BasicBinary;->postFinish()V
throw v0
:catchall_7e
move-exception v0
move-object v2, v1
goto :goto_77
:catchall_81
move-exception v0
goto :goto_77
:catchall_83
move-exception v0
move-object v2, v1
goto :goto_77
:catch_86
move-exception v0
move-object v1, v2
goto :goto_68
.end method
.method protected postCancel()V
.registers 4
new-instance v0, Lcom/h/r/BasicBinary$UploadPoster;
iget v1, p0, Lcom/h/r/BasicBinary;->what:I
iget-object v2, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
invoke-direct {v0, p0, v1, v2}, Lcom/h/r/BasicBinary$UploadPoster;-><init>(Lcom/h/r/BasicBinary;ILcom/h/r/OnUploadListener;)V
invoke-virtual {v0}, Lcom/h/r/BasicBinary$UploadPoster;->cancel()V
invoke-static {}, Lcom/h/r/HandlerDelivery;->getInstance()Lcom/h/r/HandlerDelivery;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/h/r/HandlerDelivery;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method protected postError(Ljava/lang/Exception;)V
.registers 5
new-instance v0, Lcom/h/r/BasicBinary$UploadPoster;
iget v1, p0, Lcom/h/r/BasicBinary;->what:I
iget-object v2, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
invoke-direct {v0, p0, v1, v2}, Lcom/h/r/BasicBinary$UploadPoster;-><init>(Lcom/h/r/BasicBinary;ILcom/h/r/OnUploadListener;)V
invoke-virtual {v0, p1}, Lcom/h/r/BasicBinary$UploadPoster;->error(Ljava/lang/Exception;)V
invoke-static {}, Lcom/h/r/HandlerDelivery;->getInstance()Lcom/h/r/HandlerDelivery;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/h/r/HandlerDelivery;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method protected postFinish()V
.registers 4
new-instance v0, Lcom/h/r/BasicBinary$UploadPoster;
iget v1, p0, Lcom/h/r/BasicBinary;->what:I
iget-object v2, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
invoke-direct {v0, p0, v1, v2}, Lcom/h/r/BasicBinary$UploadPoster;-><init>(Lcom/h/r/BasicBinary;ILcom/h/r/OnUploadListener;)V
invoke-virtual {v0}, Lcom/h/r/BasicBinary$UploadPoster;->finish()V
invoke-static {}, Lcom/h/r/HandlerDelivery;->getInstance()Lcom/h/r/HandlerDelivery;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/h/r/HandlerDelivery;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method protected postProgress(I)V
.registers 5
new-instance v0, Lcom/h/r/BasicBinary$UploadPoster;
iget v1, p0, Lcom/h/r/BasicBinary;->what:I
iget-object v2, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
invoke-direct {v0, p0, v1, v2}, Lcom/h/r/BasicBinary$UploadPoster;-><init>(Lcom/h/r/BasicBinary;ILcom/h/r/OnUploadListener;)V
invoke-virtual {v0, p1}, Lcom/h/r/BasicBinary$UploadPoster;->progress(I)V
invoke-static {}, Lcom/h/r/HandlerDelivery;->getInstance()Lcom/h/r/HandlerDelivery;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/h/r/HandlerDelivery;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method protected postStart()V
.registers 4
new-instance v0, Lcom/h/r/BasicBinary$UploadPoster;
iget v1, p0, Lcom/h/r/BasicBinary;->what:I
iget-object v2, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
invoke-direct {v0, p0, v1, v2}, Lcom/h/r/BasicBinary$UploadPoster;-><init>(Lcom/h/r/BasicBinary;ILcom/h/r/OnUploadListener;)V
invoke-virtual {v0}, Lcom/h/r/BasicBinary$UploadPoster;->start()V
invoke-static {}, Lcom/h/r/HandlerDelivery;->getInstance()Lcom/h/r/HandlerDelivery;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/h/r/HandlerDelivery;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public setUploadListener(ILcom/h/r/OnUploadListener;)V
.registers 3
iput p1, p0, Lcom/h/r/BasicBinary;->what:I
iput-object p2, p0, Lcom/h/r/BasicBinary;->mUploadListener:Lcom/h/r/OnUploadListener;
return-void
.end method
.method public start()V
.registers 2
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/h/r/BasicBinary;->isStarted:Z
return-void
.end method