FileUtil.smali
.class public Landroidx/room/util/FileUtil;
.super Ljava/lang/Object;
.source "FileUtil.java"
# annotations
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP_PREFIX:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static copy(Ljava/nio/channels/ReadableByteChannel;Ljava/nio/channels/FileChannel;)V
.registers 11
.param p0 # Ljava/nio/channels/ReadableByteChannel;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p1 # Ljava/nio/channels/FileChannel;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroid/annotation/SuppressLint;
value = {
"LambdaLast"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
:try_start_0
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x17
const/4 v2, 0x0
if-le v0, v1, :cond_14
const-wide/16 v5, 0x0
const-wide v7, 0x7fffffffffffffffL
move-object v3, p1
move-object v4, p0
invoke-virtual/range {v3 .. v8}, Ljava/nio/channels/FileChannel;->transferFrom(Ljava/nio/channels/ReadableByteChannel;JJ)J
goto :goto_2a
:cond_14
invoke-static {p0}, Ljava/nio/channels/Channels;->newInputStream(Ljava/nio/channels/ReadableByteChannel;)Ljava/io/InputStream;
move-result-object v0
invoke-static {p1}, Ljava/nio/channels/Channels;->newOutputStream(Ljava/nio/channels/WritableByteChannel;)Ljava/io/OutputStream;
move-result-object v1
const/16 v3, 0x1000
new-array v3, v3, [B
:goto_20
invoke-virtual {v0, v3}, Ljava/io/InputStream;->read([B)I
move-result v4
if-lez v4, :cond_2a
invoke-virtual {v1, v3, v2, v4}, Ljava/io/OutputStream;->write([BII)V
goto :goto_20
:cond_2a
:goto_2a
invoke-virtual {p1, v2}, Ljava/nio/channels/FileChannel;->force(Z)V
:try_end_2d
.catchall {:try_start_0 .. :try_end_2d} :catchall_34
invoke-interface {p0}, Ljava/nio/channels/ReadableByteChannel;->close()V
invoke-virtual {p1}, Ljava/nio/channels/FileChannel;->close()V
return-void
:catchall_34
move-exception v0
invoke-interface {p0}, Ljava/nio/channels/ReadableByteChannel;->close()V
invoke-virtual {p1}, Ljava/nio/channels/FileChannel;->close()V
goto :goto_3d
:goto_3c
throw v0
:goto_3d
goto :goto_3c
.end method