Util.smali
.class public final Lcom/google/android/exoplayer2/util/Util;
.super Ljava/lang/Object;
.source "Util.java"
# static fields
.field private static final CRC32_BYTES_MSBF:[I
.field public static final DEVICE:Ljava/lang/String;
.field public static final DEVICE_DEBUG_INFO:Ljava/lang/String;
.field public static final EMPTY_BYTE_ARRAY:[B
.field private static final ESCAPED_CHARACTER_PATTERN:Ljava/util/regex/Pattern;
.field public static final MANUFACTURER:Ljava/lang/String;
.field public static final MODEL:Ljava/lang/String;
.field public static final SDK_INT:I
.field private static final TAG:Ljava/lang/String; = "Util"
.field private static final XS_DATE_TIME_PATTERN:Ljava/util/regex/Pattern;
.field private static final XS_DURATION_PATTERN:Ljava/util/regex/Pattern;
# direct methods
.method static constructor <clinit>()V
.registers 3
.line 98
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
sput v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
.line 104
sget-object v0, Landroid/os/Build;->DEVICE:Ljava/lang/String;
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->DEVICE:Ljava/lang/String;
.line 110
sget-object v0, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->MANUFACTURER:Ljava/lang/String;
.line 116
sget-object v0, Landroid/os/Build;->MODEL:Ljava/lang/String;
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
.line 121
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-object v1, Lcom/google/android/exoplayer2/util/Util;->DEVICE:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ", "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v2, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v2, Lcom/google/android/exoplayer2/util/Util;->MANUFACTURER:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget v1, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->DEVICE_DEBUG_INFO:Ljava/lang/String;
.line 125
const/4 v0, 0x0
new-array v0, v0, [B
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->EMPTY_BYTE_ARRAY:[B
.line 128
const-string v0, "(\\d\\d\\d\\d)\\-(\\d\\d)\\-(\\d\\d)[Tt](\\d\\d):(\\d\\d):(\\d\\d)([\\.,](\\d+))?([Zz]|((\\+|\\-)(\\d?\\d):?(\\d\\d)))?"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->XS_DATE_TIME_PATTERN:Ljava/util/regex/Pattern;
.line 132
nop
.line 133
const-string v0, "^(-)?P(([0-9]*)Y)?(([0-9]*)M)?(([0-9]*)D)?(T(([0-9]*)H)?(([0-9]*)M)?(([0-9.]*)S)?)?$"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->XS_DURATION_PATTERN:Ljava/util/regex/Pattern;
.line 135
const-string v0, "%([A-Fa-f0-9]{2})"
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->ESCAPED_CHARACTER_PATTERN:Ljava/util/regex/Pattern;
.line 1951
const/16 v0, 0x100
new-array v0, v0, [I
fill-array-data v0, :array_62
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->CRC32_BYTES_MSBF:[I
return-void
:array_62
.array-data 4
0x0
0x4c11db7
0x9823b6e
0xd4326d9
0x130476dc
0x17c56b6b
0x1a864db2
0x1e475005
0x2608edb8
0x22c9f00f
0x2f8ad6d6
0x2b4bcb61
0x350c9b64
0x31cd86d3
0x3c8ea00a
0x384fbdbd
0x4c11db70 # 3.8235584E7f
0x48d0c6c7
0x4593e01e
0x4152fda9
0x5f15adac
0x5bd4b01b
0x569796c2
0x52568b75
0x6a1936c8
0x6ed82b7f
0x639b0da6
0x675a1011
0x791d4014
0x7ddc5da3
0x709f7b7a
0x745e66cd
-0x67dc4920
-0x631d54a9 # -1.4999716E-21f
-0x6e5e7272
-0x6a9f6fc7
-0x74d83fc4
-0x70192275
-0x7d5a04ae
-0x799b191b
-0x41d4a4a8
-0x4515b911
-0x48569fca
-0x4c97827f
-0x52d0d27c
-0x5611cfcd
-0x5b52e916
-0x5f93f4a3 # -1.9993737E-19f
-0x2bcd9270
-0x2f0c8fd9
-0x224fa902
-0x268eb4b7
-0x38c9e4b4
-0x3c08f905
-0x314bdfde
-0x358ac26b
-0xdc57fd8
-0x9046261
-0x44744ba
-0x86590f
-0x1ec1090c
-0x1a0014bd
-0x17433266
-0x13822fd3
0x34867077
0x30476dc0
0x3d044b19
0x39c556ae
0x278206ab
0x23431b1c
0x2e003dc5
0x2ac12072
0x128e9dcf # 9.000363E-28f
0x164f8078
0x1b0ca6a1
0x1fcdbb16
0x18aeb13
0x54bf6a4
0x808d07d
0xcc9cdca
0x7897ab07
0x7c56b6b0
0x71159069
0x75d48dde
0x6b93dddb
0x6f52c06c
0x6211e6b5
0x66d0fb02
0x5e9f46bf
0x5a5e5b08
0x571d7dd1
0x53dc6066
0x4d9b3063 # 3.25454944E8f
0x495a2dd4 # 893661.25f
0x44190b0d
0x40d816ba
-0x535a3969
-0x579b24e0
-0x5ad80207
-0x5e191fb2
-0x405e4fb5
-0x449f5204
-0x49dc74db
-0x4d1d696e
-0x7552d4d1
-0x7193c968
-0x7cd0efbf
-0x7811f20a
-0x6656a20d
-0x6297bfbc
-0x6fd49963
-0x6b1584d6
-0x1f4be219
-0x1b8affb0
-0x16c9d977
-0x1208c4c2
-0xc4f94c5
-0x88e8974
-0x5cdafab
-0x10cb21e
-0x39430fa1
-0x3d821218
-0x30c134cf
-0x3400297a
-0x2a47797d
-0x2e8664cc
-0x23c54213
-0x27045fa6
0x690ce0ee
0x6dcdfd59
0x608edb80
0x644fc637
0x7a089632
0x7ec98b85
0x738aad5c
0x774bb0eb
0x4f040d56
0x4bc510e1 # 2.5829826E7f
0x46863638
0x42472b8f
0x5c007b8a
0x58c1663d
0x558240e4
0x51435d53
0x251d3b9e
0x21dc2629
0x2c9f00f0
0x285e1d47
0x36194d42
0x32d850f5
0x3f9b762c
0x3b5a6b9b
0x315d626
0x7d4cb91
0xa97ed48
0xe56f0ff
0x1011a0fa
0x14d0bd4d
0x19939b94
0x1d528623
-0xed0a9f2
-0xa11b447
-0x75292a0
-0x3938f29
-0x1dd4df2e
-0x1915c29b
-0x1456e444
-0x1097f9f5
-0x28d8444a
-0x2c1959ff
-0x215a7f28
-0x259b6291
-0x3bdc3296
-0x3f1d2f23
-0x325e09fc
-0x369f144d
-0x42c17282
-0x46006f37
-0x4b4349f0
-0x4f825459
-0x51c5045e
-0x550419eb
-0x58473f34
-0x5c862285
-0x64c99f3a
-0x6008828f
-0x6d4ba458
-0x698ab9e1
-0x77cde9e6
-0x730cf453
-0x7e4fd28c
-0x7a8ecf3d
0x5d8a9099
0x594b8d2e
0x5408abf7
0x50c9b640
0x4e8ee645
0x4a4ffbf2 # 3407612.5f
0x470cdd2b
0x43cdc09c
0x7b827d21
0x7f436096
0x7200464f
0x76c15bf8
0x68860bfd
0x6c47164a
0x61043093
0x65c52d24
0x119b4be9
0x155a565e
0x18197087
0x1cd86d30
0x29f3d35
0x65e2082
0xb1d065b
0xfdc1bec
0x3793a651
0x3352bbe6
0x3e119d3f
0x3ad08088
0x2497d08d
0x2056cd3a
0x2d15ebe3
0x29d4f654
-0x3a56d987
-0x3e97c432
-0x33d4e2e9 # -4.4856412E7f
-0x3715ff60 # -479237.0f
-0x2952af5b
-0x2d93b2ee
-0x20d09435
-0x24118984
-0x1c5e343f
-0x189f298a
-0x15dc0f51
-0x111d12e8
-0xf5a42e3
-0xb9b5f56
-0x6d8798d
-0x219643c
-0x764702f7
-0x72861f42 # -7.6999573E-31f
-0x7fc53999
-0x7b042430
-0x6543742b
-0x6182699e
-0x6cc14f45
-0x680052f4
-0x504fef4f
-0x548ef2fa
-0x59cdd421
-0x5d0cc998
-0x434b9993
-0x478a8426
-0x4ac9a2fd
-0x4e08bf4c
.end array-data
.end method
.method private constructor <init>()V
.registers 1
.line 137
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static addWithOverflowDefault(JJJ)J
.registers 13
.param p0, "x" # J
.param p2, "y" # J
.param p4, "overflowResult" # J
.line 600
add-long v0, p0, p2
.line 602
.local v0, "result":J
xor-long v2, p0, v0
xor-long v4, p2, v0
and-long/2addr v2, v4
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-gez v6, :cond_e
.line 603
return-wide p4
.line 605
:cond_e
return-wide v0
.end method
.method public static areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 3
.param p0, "o1" # Ljava/lang/Object;
.param p1, "o2" # Ljava/lang/Object;
.line 242
if-nez p0, :cond_8
if-nez p1, :cond_6
const/4 v0, 0x1
goto :goto_c
:cond_6
const/4 v0, 0x0
goto :goto_c
:cond_8
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v0
:goto_c
return v0
.end method
.method public static binarySearchCeil(Ljava/util/List;Ljava/lang/Comparable;ZZ)I
.registers 7
.param p2, "inclusive" # Z
.param p3, "stayInBounds" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Ljava/lang/Comparable<",
"-TT;>;>(",
"Ljava/util/List<",
"+",
"Ljava/lang/Comparable<",
"-TT;>;>;TT;ZZ)I"
}
.end annotation
.line 816
.local p0, "list":Ljava/util/List;, "Ljava/util/List<+Ljava/lang/Comparable<-TT;>;>;"
.local p1, "value":Ljava/lang/Comparable;, "TT;"
invoke-static {p0, p1}, Ljava/util/Collections;->binarySearch(Ljava/util/List;Ljava/lang/Object;)I
move-result v0
.line 817
.local v0, "index":I
if-gez v0, :cond_9
.line 818
xor-int/lit8 v0, v0, -0x1
goto :goto_22
.line 820
:cond_9
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
.line 821
.local v1, "listSize":I
:goto_d
add-int/lit8 v0, v0, 0x1
if-ge v0, v1, :cond_1e
invoke-interface {p0, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Comparable;
invoke-interface {v2, p1}, Ljava/lang/Comparable;->compareTo(Ljava/lang/Object;)I
move-result v2
if-nez v2, :cond_1e
goto :goto_d
.line 822
:cond_1e
if-eqz p2, :cond_22
.line 823
add-int/lit8 v0, v0, -0x1
.line 826
.end local v1 # "listSize":I
:cond_22
:goto_22
if-eqz p3, :cond_2f
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v1
goto :goto_30
:cond_2f
move v1, v0
:goto_30
return v1
.end method
.method public static binarySearchCeil([IIZZ)I
.registers 6
.param p0, "array" # [I
.param p1, "value" # I
.param p2, "inclusive" # Z
.param p3, "stayInBounds" # Z
.line 746
invoke-static {p0, p1}, Ljava/util/Arrays;->binarySearch([II)I
move-result v0
.line 747
.local v0, "index":I
if-gez v0, :cond_9
.line 748
xor-int/lit8 v0, v0, -0x1
goto :goto_17
.line 750
:cond_9
:goto_9
add-int/lit8 v0, v0, 0x1
array-length v1, p0
if-ge v0, v1, :cond_13
aget v1, p0, v0
if-ne v1, p1, :cond_13
goto :goto_9
.line 751
:cond_13
if-eqz p2, :cond_17
.line 752
add-int/lit8 v0, v0, -0x1
.line 755
:cond_17
:goto_17
if-eqz p3, :cond_21
array-length v1, p0
add-int/lit8 v1, v1, -0x1
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v1
goto :goto_22
:cond_21
move v1, v0
:goto_22
return v1
.end method
.method public static binarySearchCeil([JJZZ)I
.registers 9
.param p0, "array" # [J
.param p1, "value" # J
.param p3, "inclusive" # Z
.param p4, "stayInBounds" # Z
.line 779
invoke-static {p0, p1, p2}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v0
.line 780
.local v0, "index":I
if-gez v0, :cond_9
.line 781
xor-int/lit8 v0, v0, -0x1
goto :goto_19
.line 783
:cond_9
:goto_9
add-int/lit8 v0, v0, 0x1
array-length v1, p0
if-ge v0, v1, :cond_15
aget-wide v1, p0, v0
cmp-long v3, v1, p1
if-nez v3, :cond_15
goto :goto_9
.line 784
:cond_15
if-eqz p3, :cond_19
.line 785
add-int/lit8 v0, v0, -0x1
.line 788
:cond_19
:goto_19
if-eqz p4, :cond_23
array-length v1, p0
add-int/lit8 v1, v1, -0x1
invoke-static {v1, v0}, Ljava/lang/Math;->min(II)I
move-result v1
goto :goto_24
:cond_23
move v1, v0
:goto_24
return v1
.end method
.method public static binarySearchFloor(Ljava/util/List;Ljava/lang/Comparable;ZZ)I
.registers 6
.param p2, "inclusive" # Z
.param p3, "stayInBounds" # Z
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Ljava/lang/Comparable<",
"-TT;>;>(",
"Ljava/util/List<",
"+",
"Ljava/lang/Comparable<",
"-TT;>;>;TT;ZZ)I"
}
.end annotation
.line 713
.local p0, "list":Ljava/util/List;, "Ljava/util/List<+Ljava/lang/Comparable<-TT;>;>;"
.local p1, "value":Ljava/lang/Comparable;, "TT;"
invoke-static {p0, p1}, Ljava/util/Collections;->binarySearch(Ljava/util/List;Ljava/lang/Object;)I
move-result v0
.line 714
.local v0, "index":I
if-gez v0, :cond_a
.line 715
add-int/lit8 v1, v0, 0x2
neg-int v0, v1
goto :goto_1f
.line 717
:cond_a
:goto_a
add-int/lit8 v0, v0, -0x1
if-ltz v0, :cond_1b
invoke-interface {p0, v0}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Comparable;
invoke-interface {v1, p1}, Ljava/lang/Comparable;->compareTo(Ljava/lang/Object;)I
move-result v1
if-nez v1, :cond_1b
goto :goto_a
.line 718
:cond_1b
if-eqz p2, :cond_1f
.line 719
add-int/lit8 v0, v0, 0x1
.line 722
:cond_1f
:goto_1f
if-eqz p3, :cond_27
const/4 v1, 0x0
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v1
goto :goto_28
:cond_27
move v1, v0
:goto_28
return v1
.end method
.method public static binarySearchFloor([IIZZ)I
.registers 6
.param p0, "array" # [I
.param p1, "value" # I
.param p2, "inclusive" # Z
.param p3, "stayInBounds" # Z
.line 645
invoke-static {p0, p1}, Ljava/util/Arrays;->binarySearch([II)I
move-result v0
.line 646
.local v0, "index":I
if-gez v0, :cond_a
.line 647
add-int/lit8 v1, v0, 0x2
neg-int v0, v1
goto :goto_17
.line 649
:cond_a
:goto_a
add-int/lit8 v0, v0, -0x1
if-ltz v0, :cond_13
aget v1, p0, v0
if-ne v1, p1, :cond_13
goto :goto_a
.line 650
:cond_13
if-eqz p2, :cond_17
.line 651
add-int/lit8 v0, v0, 0x1
.line 654
:cond_17
:goto_17
if-eqz p3, :cond_1f
const/4 v1, 0x0
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v1
goto :goto_20
:cond_1f
move v1, v0
:goto_20
return v1
.end method
.method public static binarySearchFloor([JJZZ)I
.registers 9
.param p0, "array" # [J
.param p1, "value" # J
.param p3, "inclusive" # Z
.param p4, "stayInBounds" # Z
.line 677
invoke-static {p0, p1, p2}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v0
.line 678
.local v0, "index":I
if-gez v0, :cond_a
.line 679
add-int/lit8 v1, v0, 0x2
neg-int v0, v1
goto :goto_19
.line 681
:cond_a
:goto_a
add-int/lit8 v0, v0, -0x1
if-ltz v0, :cond_15
aget-wide v1, p0, v0
cmp-long v3, v1, p1
if-nez v3, :cond_15
goto :goto_a
.line 682
:cond_15
if-eqz p3, :cond_19
.line 683
add-int/lit8 v0, v0, 0x1
.line 686
:cond_19
:goto_19
if-eqz p4, :cond_21
const/4 v1, 0x0
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
move-result v1
goto :goto_22
:cond_21
move v1, v0
:goto_22
return v1
.end method
.method public static castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(TT;)TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/qual/EnsuresNonNull;
value = {
"#1"
}
.end annotation
.line 292
.local p0, "value":Ljava/lang/Object;, "TT;"
return-object p0
.end method
.method public static castNonNullTypeArray([Ljava/lang/Object;)[Ljava/lang/Object;
.registers 1
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;)[TT;"
}
.end annotation
.annotation runtime Lorg/checkerframework/checker/nullness/qual/EnsuresNonNull;
value = {
"#1"
}
.end annotation
.line 299
.local p0, "value":[Ljava/lang/Object;, "[TT;"
return-object p0
.end method
.method public static ceilDivide(II)I
.registers 3
.param p0, "numerator" # I
.param p1, "denominator" # I
.line 541
add-int v0, p0, p1
add-int/lit8 v0, v0, -0x1
div-int/2addr v0, p1
return v0
.end method
.method public static ceilDivide(JJ)J
.registers 8
.param p0, "numerator" # J
.param p2, "denominator" # J
.line 552
add-long v0, p0, p2
const-wide/16 v2, 0x1
sub-long/2addr v0, v2
div-long/2addr v0, p2
return-wide v0
.end method
.method public static varargs checkCleartextTrafficPermitted([Landroid/net/Uri;)Z
.registers 8
.param p0, "uris" # [Landroid/net/Uri;
.line 208
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/4 v1, 0x1
const/16 v2, 0x18
if-ge v0, v2, :cond_8
.line 210
return v1
.line 212
:cond_8
array-length v0, p0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_b
if-ge v3, v0, :cond_33
aget-object v4, p0, v3
.line 213
.local v4, "uri":Landroid/net/Uri;
invoke-virtual {v4}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object v5
const-string v6, "http"
invoke-virtual {v6, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_30
.line 214
invoke-static {}, Landroid/security/NetworkSecurityPolicy;->getInstance()Landroid/security/NetworkSecurityPolicy;
move-result-object v5
.line 215
invoke-virtual {v4}, Landroid/net/Uri;->getHost()Ljava/lang/String;
move-result-object v6
invoke-static {v6}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/String;
invoke-virtual {v5, v6}, Landroid/security/NetworkSecurityPolicy;->isCleartextTrafficPermitted(Ljava/lang/String;)Z
move-result v5
if-nez v5, :cond_30
.line 217
return v2
.line 212
.end local v4 # "uri":Landroid/net/Uri;
:cond_30
add-int/lit8 v3, v3, 0x1
goto :goto_b
.line 220
:cond_33
return v1
.end method
.method public static closeQuietly(Lcom/google/android/exoplayer2/upstream/DataSource;)V
.registers 2
.param p0, "dataSource" # Lcom/google/android/exoplayer2/upstream/DataSource;
.line 374
if-eqz p0, :cond_8
.line 375
:try_start_2
invoke-interface {p0}, Lcom/google/android/exoplayer2/upstream/DataSource;->close()V
:try_end_5
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_5} :catch_6
goto :goto_8
.line 377
:catch_6
move-exception v0
goto :goto_9
.line 379
:cond_8
:goto_8
nop
.line 380
:goto_9
return-void
.end method
.method public static closeQuietly(Ljava/io/Closeable;)V
.registers 2
.param p0, "closeable" # Ljava/io/Closeable;
.line 390
if-eqz p0, :cond_8
.line 391
:try_start_2
invoke-interface {p0}, Ljava/io/Closeable;->close()V
:try_end_5
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_5} :catch_6
goto :goto_8
.line 393
:catch_6
move-exception v0
goto :goto_9
.line 395
:cond_8
:goto_8
nop
.line 396
:goto_9
return-void
.end method
.method public static compareLong(JJ)I
.registers 5
.param p0, "left" # J
.param p2, "right" # J
.line 838
cmp-long v0, p0, p2
if-gez v0, :cond_6
const/4 v0, -0x1
goto :goto_d
:cond_6
cmp-long v0, p0, p2
if-nez v0, :cond_c
const/4 v0, 0x0
goto :goto_d
:cond_c
const/4 v0, 0x1
:goto_d
return v0
.end method
.method public static constrainValue(FFF)F
.registers 4
.param p0, "value" # F
.param p1, "min" # F
.param p2, "max" # F
.line 588
invoke-static {p0, p2}, Ljava/lang/Math;->min(FF)F
move-result v0
invoke-static {p1, v0}, Ljava/lang/Math;->max(FF)F
move-result v0
return v0
.end method
.method public static constrainValue(III)I
.registers 4
.param p0, "value" # I
.param p1, "min" # I
.param p2, "max" # I
.line 564
invoke-static {p0, p2}, Ljava/lang/Math;->min(II)I
move-result v0
invoke-static {p1, v0}, Ljava/lang/Math;->max(II)I
move-result v0
return v0
.end method
.method public static constrainValue(JJJ)J
.registers 8
.param p0, "value" # J
.param p2, "min" # J
.param p4, "max" # J
.line 576
invoke-static {p0, p1, p4, p5}, Ljava/lang/Math;->min(JJ)J
move-result-wide v0
invoke-static {p2, p3, v0, v1}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
return-wide v0
.end method
.method public static contains([Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 7
.param p0, "items" # [Ljava/lang/Object;
.param p1, "item" # Ljava/lang/Object;
.line 256
array-length v0, p0
const/4 v1, 0x0
const/4 v2, 0x0
:goto_3
if-ge v2, v0, :cond_12
aget-object v3, p0, v2
.line 257
.local v3, "arrayItem":Ljava/lang/Object;
invoke-static {v3, p1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_f
.line 258
const/4 v0, 0x1
return v0
.line 256
.end local v3 # "arrayItem":Ljava/lang/Object;
:cond_f
add-int/lit8 v2, v2, 0x1
goto :goto_3
.line 261
:cond_12
return v1
.end method
.method public static crc([BIII)I
.registers 9
.param p0, "bytes" # [B
.param p1, "start" # I
.param p2, "end" # I
.param p3, "initialValue" # I
.line 1659
move v0, p1
.local v0, "i":I
:goto_1
if-ge v0, p2, :cond_17
.line 1660
shl-int/lit8 v1, p3, 0x8
sget-object v2, Lcom/google/android/exoplayer2/util/Util;->CRC32_BYTES_MSBF:[I
ushr-int/lit8 v3, p3, 0x18
aget-byte v4, p0, v0
and-int/lit16 v4, v4, 0xff
xor-int/2addr v3, v4
and-int/lit16 v3, v3, 0xff
aget v2, v2, v3
xor-int p3, v1, v2
.line 1659
add-int/lit8 v0, v0, 0x1
goto :goto_1
.line 1663
.end local v0 # "i":I
:cond_17
return p3
.end method
.method public static createHandler(Landroid/os/Handler$Callback;)Landroid/os/Handler;
.registers 2
.param p0, "callback" # Landroid/os/Handler$Callback;
.line 329
invoke-static {}, Lcom/google/android/exoplayer2/util/Util;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-static {v0, p0}, Lcom/google/android/exoplayer2/util/Util;->createHandler(Landroid/os/Looper;Landroid/os/Handler$Callback;)Landroid/os/Handler;
move-result-object v0
return-object v0
.end method
.method public static createHandler(Landroid/os/Looper;Landroid/os/Handler$Callback;)Landroid/os/Handler;
.registers 3
.param p0, "looper" # Landroid/os/Looper;
.param p1, "callback" # Landroid/os/Handler$Callback;
.line 345
new-instance v0, Landroid/os/Handler;
invoke-direct {v0, p0, p1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
return-object v0
.end method
.method public static createTempDirectory(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
.registers 3
.param p0, "context" # Landroid/content/Context;
.param p1, "prefix" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1637
invoke-static {p0, p1}, Lcom/google/android/exoplayer2/util/Util;->createTempFile(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
move-result-object v0
.line 1638
.local v0, "tempFile":Ljava/io/File;
invoke-virtual {v0}, Ljava/io/File;->delete()Z
.line 1639
invoke-virtual {v0}, Ljava/io/File;->mkdir()Z
.line 1640
return-object v0
.end method
.method public static createTempFile(Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
.registers 4
.param p0, "context" # Landroid/content/Context;
.param p1, "prefix" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1645
invoke-virtual {p0}, Landroid/content/Context;->getCacheDir()Ljava/io/File;
move-result-object v0
const/4 v1, 0x0
invoke-static {p1, v1, v0}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object v0
return-object v0
.end method
.method public static escapeFileName(Ljava/lang/String;)Ljava/lang/String;
.registers 7
.param p0, "fileName" # Ljava/lang/String;
.line 1525
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 1526
.local v0, "length":I
const/4 v1, 0x0
.line 1527
.local v1, "charactersToEscapeCount":I
const/4 v2, 0x0
.local v2, "i":I
:goto_6
if-ge v2, v0, :cond_17
.line 1528
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Util;->shouldEscapeCharacter(C)Z
move-result v3
if-eqz v3, :cond_14
.line 1529
add-int/lit8 v1, v1, 0x1
.line 1527
:cond_14
add-int/lit8 v2, v2, 0x1
goto :goto_6
.line 1532
.end local v2 # "i":I
:cond_17
if-nez v1, :cond_1a
.line 1533
return-object p0
.line 1536
:cond_1a
const/4 v2, 0x0
.line 1537
.restart local v2 # "i":I
new-instance v3, Ljava/lang/StringBuilder;
mul-int/lit8 v4, v1, 0x2
add-int/2addr v4, v0
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(I)V
.line 1538
.local v3, "builder":Ljava/lang/StringBuilder;
:goto_23
if-lez v1, :cond_45
.line 1539
add-int/lit8 v4, v2, 0x1
.end local v2 # "i":I
.local v4, "i":I
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 1540
.local v2, "c":C
invoke-static {v2}, Lcom/google/android/exoplayer2/util/Util;->shouldEscapeCharacter(C)Z
move-result v5
if-eqz v5, :cond_40
.line 1541
const/16 v5, 0x25
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-static {v2}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
move-result-object v5
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1542
add-int/lit8 v1, v1, -0x1
goto :goto_43
.line 1544
:cond_40
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 1546
.end local v2 # "c":C
:goto_43
move v2, v4
goto :goto_23
.line 1547
.end local v4 # "i":I
.local v2, "i":I
:cond_45
if-ge v2, v0, :cond_4a
.line 1548
invoke-virtual {v3, p0, v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
.line 1550
:cond_4a
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
return-object v4
.end method
.method public static varargs formatInvariant(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
.registers 3
.param p0, "format" # Ljava/lang/String;
.param p1, "args" # [Ljava/lang/Object;
.line 530
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-static {v0, p0, p1}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static fromUtf8Bytes([B)Ljava/lang/String;
.registers 3
.param p0, "bytes" # [B
.line 442
new-instance v0, Ljava/lang/String;
const-string v1, "UTF-8"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
invoke-direct {v0, p0, v1}, Ljava/lang/String;-><init>([BLjava/nio/charset/Charset;)V
return-object v0
.end method
.method public static fromUtf8Bytes([BII)Ljava/lang/String;
.registers 5
.param p0, "bytes" # [B
.param p1, "offset" # I
.param p2, "length" # I
.line 454
new-instance v0, Ljava/lang/String;
const-string v1, "UTF-8"
invoke-static {v1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v1
invoke-direct {v0, p0, p1, p2, v1}, Ljava/lang/String;-><init>([BIILjava/nio/charset/Charset;)V
return-object v0
.end method
.method public static getAudioContentTypeForStreamType(I)I
.registers 4
.param p0, "streamType" # I
.line 1342
const/4 v0, 0x1
if-eqz p0, :cond_14
const/4 v1, 0x4
if-eq p0, v0, :cond_13
const/4 v0, 0x2
if-eq p0, v0, :cond_13
if-eq p0, v1, :cond_13
const/4 v2, 0x5
if-eq p0, v2, :cond_13
const/16 v2, 0x8
if-eq p0, v2, :cond_13
.line 1354
return v0
.line 1348
:cond_13
return v1
.line 1350
:cond_14
return v0
.end method
.method public static getAudioTrackChannelConfig(I)I
.registers 5
.param p0, "channelCount" # I
.line 1253
const/4 v0, 0x0
packed-switch p0, :pswitch_data_28
.line 1281
return v0
.line 1269
:pswitch_5
sget v1, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v2, 0x17
const/16 v3, 0x18fc
if-lt v1, v2, :cond_e
.line 1270
return v3
.line 1271
:cond_e
const/16 v2, 0x15
if-lt v1, v2, :cond_13
.line 1273
return v3
.line 1278
:cond_13
return v0
.line 1267
:pswitch_14
const/16 v0, 0x4fc
return v0
.line 1265
:pswitch_17
const/16 v0, 0xfc
return v0
.line 1263
:pswitch_1a
const/16 v0, 0xdc
return v0
.line 1261
:pswitch_1d
const/16 v0, 0xcc
return v0
.line 1259
:pswitch_20
const/16 v0, 0x1c
return v0
.line 1257
:pswitch_23
const/16 v0, 0xc
return v0
.line 1255
:pswitch_26
const/4 v0, 0x4
return v0
:pswitch_data_28
.packed-switch 0x1
:pswitch_26
:pswitch_23
:pswitch_20
:pswitch_1d
:pswitch_1a
:pswitch_17
:pswitch_14
:pswitch_5
.end packed-switch
.end method
.method public static getAudioUsageForStreamType(I)I
.registers 3
.param p0, "streamType" # I
.line 1317
const/4 v0, 0x2
if-eqz p0, :cond_1c
const/4 v1, 0x1
if-eq p0, v1, :cond_19
if-eq p0, v0, :cond_17
const/4 v0, 0x4
if-eq p0, v0, :cond_16
const/4 v0, 0x5
if-eq p0, v0, :cond_15
const/16 v0, 0x8
if-eq p0, v0, :cond_13
.line 1333
return v1
.line 1321
:cond_13
const/4 v0, 0x3
return v0
.line 1323
:cond_15
return v0
.line 1319
:cond_16
return v0
.line 1325
:cond_17
const/4 v0, 0x6
return v0
.line 1327
:cond_19
const/16 v0, 0xd
return v0
.line 1329
:cond_1c
return v0
.end method
.method public static getBytesFromHexString(Ljava/lang/String;)[B
.registers 7
.param p0, "hexString" # Ljava/lang/String;
.line 1110
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
div-int/lit8 v0, v0, 0x2
new-array v0, v0, [B
.line 1111
.local v0, "data":[B
const/4 v1, 0x0
.local v1, "i":I
:goto_9
array-length v2, v0
if-ge v1, v2, :cond_2b
.line 1112
mul-int/lit8 v2, v1, 0x2
.line 1113
.local v2, "stringOffset":I
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Character;->digit(CI)I
move-result v3
shl-int/lit8 v3, v3, 0x4
add-int/lit8 v5, v2, 0x1
.line 1114
invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
invoke-static {v5, v4}, Ljava/lang/Character;->digit(CI)I
move-result v4
add-int/2addr v3, v4
int-to-byte v3, v3
aput-byte v3, v0, v1
.line 1111
.end local v2 # "stringOffset":I
add-int/lit8 v1, v1, 0x1
goto :goto_9
.line 1116
.end local v1 # "i":I
:cond_2b
return-object v0
.end method
.method public static getCodecsOfType(Ljava/lang/String;I)Ljava/lang/String;
.registers 9
.param p0, "codecs" # Ljava/lang/String;
.param p1, "trackType" # I
.line 1166
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->splitCodecs(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 1167
.local v0, "codecArray":[Ljava/lang/String;
array-length v1, v0
const/4 v2, 0x0
if-nez v1, :cond_9
.line 1168
return-object v2
.line 1170
:cond_9
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 1171
.local v1, "builder":Ljava/lang/StringBuilder;
array-length v3, v0
const/4 v4, 0x0
:goto_10
if-ge v4, v3, :cond_2b
aget-object v5, v0, v4
.line 1172
.local v5, "codec":Ljava/lang/String;
invoke-static {v5}, Lcom/google/android/exoplayer2/util/MimeTypes;->getTrackTypeOfCodec(Ljava/lang/String;)I
move-result v6
if-ne p1, v6, :cond_28
.line 1173
invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I
move-result v6
if-lez v6, :cond_25
.line 1174
const-string v6, ","
invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1176
:cond_25
invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1171
.end local v5 # "codec":Ljava/lang/String;
:cond_28
add-int/lit8 v4, v4, 0x1
goto :goto_10
.line 1179
:cond_2b
invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I
move-result v3
if-lez v3, :cond_35
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
:cond_35
return-object v2
.end method
.method public static getCommaDelimitedSimpleClassNames([Ljava/lang/Object;)Ljava/lang/String;
.registers 4
.param p0, "objects" # [Ljava/lang/Object;
.line 1126
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
.line 1127
.local v0, "stringBuilder":Ljava/lang/StringBuilder;
const/4 v1, 0x0
.local v1, "i":I
:goto_6
array-length v2, p0
if-ge v1, v2, :cond_23
.line 1128
aget-object v2, p0, v1
invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1129
array-length v2, p0
add-int/lit8 v2, v2, -0x1
if-ge v1, v2, :cond_20
.line 1130
const-string v2, ", "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1127
:cond_20
add-int/lit8 v1, v1, 0x1
goto :goto_6
.line 1133
.end local v1 # "i":I
:cond_23
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public static getCountryCode(Landroid/content/Context;)Ljava/lang/String;
.registers 4
.param p0, "context" # Landroid/content/Context;
.line 1712
if-eqz p0, :cond_1c
.line 1713
nop
.line 1714
const-string v0, "phone"
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/telephony/TelephonyManager;
.line 1715
.local v0, "telephonyManager":Landroid/telephony/TelephonyManager;
if-eqz v0, :cond_1c
.line 1716
invoke-virtual {v0}, Landroid/telephony/TelephonyManager;->getNetworkCountryIso()Ljava/lang/String;
move-result-object v1
.line 1717
.local v1, "countryCode":Ljava/lang/String;
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_1c
.line 1718
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Util;->toUpperInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
return-object v2
.line 1722
.end local v0 # "telephonyManager":Landroid/telephony/TelephonyManager;
.end local v1 # "countryCode":Ljava/lang/String;
:cond_1c
invoke-static {}, Ljava/util/Locale;->getDefault()Ljava/util/Locale;
move-result-object v0
invoke-virtual {v0}, Ljava/util/Locale;->getCountry()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->toUpperInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static getDefaultBufferSize(I)I
.registers 2
.param p0, "trackType" # I
.line 1492
const/high16 v0, 0x20000
packed-switch p0, :pswitch_data_1a
.line 1508
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 1506
:pswitch_b
const/4 v0, 0x0
return v0
.line 1504
:pswitch_d
return v0
.line 1502
:pswitch_e
return v0
.line 1500
:pswitch_f
return v0
.line 1498
:pswitch_10
const/high16 v0, 0xc80000
return v0
.line 1496
:pswitch_13
const/high16 v0, 0x360000
return v0
.line 1494
:pswitch_16
const/high16 v0, 0x1000000
return v0
nop
:pswitch_data_1a
.packed-switch 0x0
:pswitch_16
:pswitch_13
:pswitch_10
:pswitch_f
:pswitch_e
:pswitch_d
:pswitch_b
.end packed-switch
.end method
.method private static getDisplaySizeV16(Landroid/view/Display;Landroid/graphics/Point;)V
.registers 2
.param p0, "display" # Landroid/view/Display;
.param p1, "outSize" # Landroid/graphics/Point;
.line 1908
invoke-virtual {p0, p1}, Landroid/view/Display;->getSize(Landroid/graphics/Point;)V
.line 1909
return-void
.end method
.method private static getDisplaySizeV17(Landroid/view/Display;Landroid/graphics/Point;)V
.registers 2
.param p0, "display" # Landroid/view/Display;
.param p1, "outSize" # Landroid/graphics/Point;
.line 1903
invoke-virtual {p0, p1}, Landroid/view/Display;->getRealSize(Landroid/graphics/Point;)V
.line 1904
return-void
.end method
.method private static getDisplaySizeV23(Landroid/view/Display;Landroid/graphics/Point;)V
.registers 4
.param p0, "display" # Landroid/view/Display;
.param p1, "outSize" # Landroid/graphics/Point;
.line 1896
invoke-virtual {p0}, Landroid/view/Display;->getMode()Landroid/view/Display$Mode;
move-result-object v0
.line 1897
.local v0, "mode":Landroid/view/Display$Mode;
invoke-virtual {v0}, Landroid/view/Display$Mode;->getPhysicalWidth()I
move-result v1
iput v1, p1, Landroid/graphics/Point;->x:I
.line 1898
invoke-virtual {v0}, Landroid/view/Display$Mode;->getPhysicalHeight()I
move-result v1
iput v1, p1, Landroid/graphics/Point;->y:I
.line 1899
return-void
.end method
.method private static getDisplaySizeV9(Landroid/view/Display;Landroid/graphics/Point;)V
.registers 3
.param p0, "display" # Landroid/view/Display;
.param p1, "outSize" # Landroid/graphics/Point;
.line 1913
invoke-virtual {p0}, Landroid/view/Display;->getWidth()I
move-result v0
iput v0, p1, Landroid/graphics/Point;->x:I
.line 1914
invoke-virtual {p0}, Landroid/view/Display;->getHeight()I
move-result v0
iput v0, p1, Landroid/graphics/Point;->y:I
.line 1915
return-void
.end method
.method public static getDrmUuid(Ljava/lang/String;)Ljava/util/UUID;
.registers 6
.param p0, "drmScheme" # Ljava/lang/String;
.line 1400
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/String;->hashCode()I
move-result v1
const v2, -0x6ee3d111
const/4 v3, 0x2
const/4 v4, 0x1
if-eq v1, v2, :cond_2f
const v2, -0x537ab703
if-eq v1, v2, :cond_24
const v2, 0x2f1b28f2
if-eq v1, v2, :cond_1a
:cond_19
goto :goto_39
:cond_1a
const-string v1, "clearkey"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_19
const/4 v0, 0x2
goto :goto_3a
:cond_24
const-string/jumbo v1, "widevine"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_19
const/4 v0, 0x0
goto :goto_3a
:cond_2f
const-string v1, "playready"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_19
const/4 v0, 0x1
goto :goto_3a
:goto_39
const/4 v0, -0x1
:goto_3a
if-eqz v0, :cond_4e
if-eq v0, v4, :cond_4b
if-eq v0, v3, :cond_48
.line 1409
:try_start_40
invoke-static {p0}, Ljava/util/UUID;->fromString(Ljava/lang/String;)Ljava/util/UUID;
move-result-object v0
:try_end_44
.catch Ljava/lang/RuntimeException; {:try_start_40 .. :try_end_44} :catch_45
return-object v0
.line 1410
:catch_45
move-exception v0
.line 1411
.local v0, "e":Ljava/lang/RuntimeException;
const/4 v1, 0x0
return-object v1
.line 1406
.end local v0 # "e":Ljava/lang/RuntimeException;
:cond_48
sget-object v0, Lcom/google/android/exoplayer2/C;->CLEARKEY_UUID:Ljava/util/UUID;
return-object v0
.line 1404
:cond_4b
sget-object v0, Lcom/google/android/exoplayer2/C;->PLAYREADY_UUID:Ljava/util/UUID;
return-object v0
.line 1402
:cond_4e
sget-object v0, Lcom/google/android/exoplayer2/C;->WIDEVINE_UUID:Ljava/util/UUID;
return-object v0
.end method
.method public static getIntegerCodeForString(Ljava/lang/String;)I
.registers 5
.param p0, "string" # Ljava/lang/String;
.line 1093
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 1094
.local v0, "length":I
const/4 v1, 0x4
if-gt v0, v1, :cond_9
const/4 v1, 0x1
goto :goto_a
:cond_9
const/4 v1, 0x0
:goto_a
invoke-static {v1}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 1095
const/4 v1, 0x0
.line 1096
.local v1, "result":I
const/4 v2, 0x0
.local v2, "i":I
:goto_f
if-ge v2, v0, :cond_1b
.line 1097
shl-int/lit8 v1, v1, 0x8
.line 1098
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
or-int/2addr v1, v3
.line 1096
add-int/lit8 v2, v2, 0x1
goto :goto_f
.line 1100
.end local v2 # "i":I
:cond_1b
return v1
.end method
.method public static getLooper()Landroid/os/Looper;
.registers 2
.line 353
invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
move-result-object v0
.line 354
.local v0, "myLooper":Landroid/os/Looper;
if-eqz v0, :cond_8
move-object v1, v0
goto :goto_c
:cond_8
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
:goto_c
return-object v1
.end method
.method public static getMediaDurationForPlayoutDuration(JF)J
.registers 7
.param p0, "playoutDuration" # J
.param p2, "speed" # F
.line 1011
const/high16 v0, 0x3f800000 # 1.0f
cmpl-float v0, p2, v0
if-nez v0, :cond_7
.line 1012
return-wide p0
.line 1014
:cond_7
long-to-double v0, p0
float-to-double v2, p2
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
mul-double v0, v0, v2
invoke-static {v0, v1}, Ljava/lang/Math;->round(D)J
move-result-wide v0
return-wide v0
.end method
.method private static getMobileNetworkType(Landroid/net/NetworkInfo;)I
.registers 2
.param p0, "networkInfo" # Landroid/net/NetworkInfo;
.line 1918
invoke-virtual {p0}, Landroid/net/NetworkInfo;->getSubtype()I
move-result v0
packed-switch v0, :pswitch_data_12
.line 1943
:pswitch_7
const/4 v0, 0x6
return v0
.line 1939
:pswitch_9
const/4 v0, 0x2
return v0
.line 1937
:pswitch_b
const/4 v0, 0x5
return v0
.line 1935
:pswitch_d
const/4 v0, 0x4
return v0
.line 1921
:pswitch_f
const/4 v0, 0x3
return v0
nop
:pswitch_data_12
.packed-switch 0x1
:pswitch_f
:pswitch_f
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_d
:pswitch_b
:pswitch_d
:pswitch_d
:pswitch_7
:pswitch_d
:pswitch_9
.end packed-switch
.end method
.method public static getNetworkType(Landroid/content/Context;)I
.registers 6
.param p0, "context" # Landroid/content/Context;
.line 1674
const/4 v0, 0x0
if-nez p0, :cond_4
.line 1676
return v0
.line 1679
:cond_4
nop
.line 1680
const-string v1, "connectivity"
invoke-virtual {p0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/net/ConnectivityManager;
.line 1681
.local v1, "connectivityManager":Landroid/net/ConnectivityManager;
if-nez v1, :cond_10
.line 1682
return v0
.line 1684
:cond_10
invoke-virtual {v1}, Landroid/net/ConnectivityManager;->getActiveNetworkInfo()Landroid/net/NetworkInfo;
move-result-object v0
.line 1685
.local v0, "networkInfo":Landroid/net/NetworkInfo;
const/4 v2, 0x1
if-eqz v0, :cond_40
invoke-virtual {v0}, Landroid/net/NetworkInfo;->isConnected()Z
move-result v3
if-nez v3, :cond_1e
goto :goto_40
.line 1688
:cond_1e
invoke-virtual {v0}, Landroid/net/NetworkInfo;->getType()I
move-result v3
if-eqz v3, :cond_3b
if-eq v3, v2, :cond_39
const/4 v2, 0x4
if-eq v3, v2, :cond_3b
const/4 v2, 0x5
if-eq v3, v2, :cond_3b
const/4 v4, 0x6
if-eq v3, v4, :cond_38
const/16 v2, 0x9
if-eq v3, v2, :cond_36
.line 1700
const/16 v2, 0x8
return v2
.line 1698
:cond_36
const/4 v2, 0x7
return v2
.line 1692
:cond_38
return v2
.line 1690
:cond_39
const/4 v2, 0x2
return v2
.line 1696
:cond_3b
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getMobileNetworkType(Landroid/net/NetworkInfo;)I
move-result v2
return v2
.line 1686
:cond_40
:goto_40
return v2
.end method
.method public static getPcmEncoding(I)I
.registers 2
.param p0, "bitDepth" # I
.line 1206
const/16 v0, 0x8
if-eq p0, v0, :cond_1a
const/16 v0, 0x10
if-eq p0, v0, :cond_18
const/16 v0, 0x18
if-eq p0, v0, :cond_15
const/16 v0, 0x20
if-eq p0, v0, :cond_12
.line 1216
const/4 v0, 0x0
return v0
.line 1214
:cond_12
const/high16 v0, 0x40000000 # 2.0f
return v0
.line 1212
:cond_15
const/high16 v0, -0x80000000
return v0
.line 1210
:cond_18
const/4 v0, 0x2
return v0
.line 1208
:cond_1a
const/4 v0, 0x3
return v0
.end method
.method public static getPcmFrameSize(II)I
.registers 3
.param p0, "pcmEncoding" # I
.param p1, "channelCount" # I
.line 1293
const/high16 v0, -0x80000000
if-eq p0, v0, :cond_1f
const/high16 v0, 0x40000000 # 2.0f
if-eq p0, v0, :cond_1c
const/4 v0, 0x2
if-eq p0, v0, :cond_19
const/4 v0, 0x3
if-eq p0, v0, :cond_18
const/4 v0, 0x4
if-ne p0, v0, :cond_12
goto :goto_1c
.line 1308
:cond_12
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.line 1295
:cond_18
return p1
.line 1297
:cond_19
mul-int/lit8 v0, p1, 0x2
return v0
.line 1302
:cond_1c
:goto_1c
mul-int/lit8 v0, p1, 0x4
return v0
.line 1299
:cond_1f
mul-int/lit8 v0, p1, 0x3
return v0
.end method
.method public static getPhysicalDisplaySize(Landroid/content/Context;)Landroid/graphics/Point;
.registers 3
.param p0, "context" # Landroid/content/Context;
.line 1793
const-string/jumbo v0, "window"
invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/view/WindowManager;
.line 1794
.local v0, "windowManager":Landroid/view/WindowManager;
invoke-interface {v0}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;
move-result-object v1
invoke-static {p0, v1}, Lcom/google/android/exoplayer2/util/Util;->getPhysicalDisplaySize(Landroid/content/Context;Landroid/view/Display;)Landroid/graphics/Point;
move-result-object v1
return-object v1
.end method
.method public static getPhysicalDisplaySize(Landroid/content/Context;Landroid/view/Display;)Landroid/graphics/Point;
.registers 7
.param p0, "context" # Landroid/content/Context;
.param p1, "display" # Landroid/view/Display;
.line 1805
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x1c
if-gt v0, v1, :cond_96
invoke-virtual {p1}, Landroid/view/Display;->getDisplayId()I
move-result v0
if-nez v0, :cond_96
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->isTv(Landroid/content/Context;)Z
move-result v0
if-eqz v0, :cond_96
.line 1812
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MANUFACTURER:Ljava/lang/String;
const-string v2, "Sony"
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_3c
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
.line 1813
const-string v2, "BRAVIA"
invoke-virtual {v0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_3c
.line 1814
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
const-string v2, "com.sony.dtv.hardware.panel.qfhd"
invoke-virtual {v0, v2}, Landroid/content/pm/PackageManager;->hasSystemFeature(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_3c
.line 1815
new-instance v0, Landroid/graphics/Point;
const/16 v1, 0xf00
const/16 v2, 0x870
invoke-direct {v0, v1, v2}, Landroid/graphics/Point;-><init>(II)V
return-object v0
.line 1820
:cond_3c
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
if-ge v0, v1, :cond_48
.line 1822
const-string/jumbo v0, "sys.display-size"
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getSystemProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
goto :goto_50
:cond_48
nop
.line 1823
const-string/jumbo v0, "vendor.display-size"
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->getSystemProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
:goto_50
nop
.line 1825
.local v0, "displaySize":Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_96
.line 1827
:try_start_57
invoke-virtual {v0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
const-string/jumbo v2, "x"
invoke-static {v1, v2}, Lcom/google/android/exoplayer2/util/Util;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 1828
.local v1, "displaySizeParts":[Ljava/lang/String;
array-length v2, v1
const/4 v3, 0x2
if-ne v2, v3, :cond_7e
.line 1829
const/4 v2, 0x0
aget-object v2, v1, v2
invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v2
.line 1830
.local v2, "width":I
const/4 v3, 0x1
aget-object v3, v1, v3
invoke-static {v3}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v3
.line 1831
.local v3, "height":I
if-lez v2, :cond_7e
if-lez v3, :cond_7e
.line 1832
new-instance v4, Landroid/graphics/Point;
invoke-direct {v4, v2, v3}, Landroid/graphics/Point;-><init>(II)V
:try_end_7d
.catch Ljava/lang/NumberFormatException; {:try_start_57 .. :try_end_7d} :catch_7f
return-object v4
.line 1837
.end local v1 # "displaySizeParts":[Ljava/lang/String;
.end local v2 # "width":I
.end local v3 # "height":I
:cond_7e
goto :goto_80
.line 1835
:catch_7f
move-exception v1
.line 1838
:goto_80
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Invalid display size: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "Util"
invoke-static {v2, v1}, Lcom/google/android/exoplayer2/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)V
.line 1842
.end local v0 # "displaySize":Ljava/lang/String;
:cond_96
new-instance v0, Landroid/graphics/Point;
invoke-direct {v0}, Landroid/graphics/Point;-><init>()V
.line 1843
.local v0, "displaySize":Landroid/graphics/Point;
sget v1, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v2, 0x17
if-lt v1, v2, :cond_a5
.line 1844
invoke-static {p1, v0}, Lcom/google/android/exoplayer2/util/Util;->getDisplaySizeV23(Landroid/view/Display;Landroid/graphics/Point;)V
goto :goto_b8
.line 1845
:cond_a5
const/16 v2, 0x11
if-lt v1, v2, :cond_ad
.line 1846
invoke-static {p1, v0}, Lcom/google/android/exoplayer2/util/Util;->getDisplaySizeV17(Landroid/view/Display;Landroid/graphics/Point;)V
goto :goto_b8
.line 1847
:cond_ad
const/16 v2, 0x10
if-lt v1, v2, :cond_b5
.line 1848
invoke-static {p1, v0}, Lcom/google/android/exoplayer2/util/Util;->getDisplaySizeV16(Landroid/view/Display;Landroid/graphics/Point;)V
goto :goto_b8
.line 1850
:cond_b5
invoke-static {p1, v0}, Lcom/google/android/exoplayer2/util/Util;->getDisplaySizeV9(Landroid/view/Display;Landroid/graphics/Point;)V
.line 1852
:goto_b8
return-object v0
.end method
.method public static getPlayoutDurationForMediaDuration(JF)J
.registers 7
.param p0, "mediaDuration" # J
.param p2, "speed" # F
.line 1024
const/high16 v0, 0x3f800000 # 1.0f
cmpl-float v0, p2, v0
if-nez v0, :cond_7
.line 1025
return-wide p0
.line 1027
:cond_7
long-to-double v0, p0
float-to-double v2, p2
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v0, v2
invoke-static {v0, v1}, Ljava/lang/Math;->round(D)J
move-result-wide v0
return-wide v0
.end method
.method public static getRendererCapabilities(Lcom/google/android/exoplayer2/RenderersFactory;Lcom/google/android/exoplayer2/drm/DrmSessionManager;)[Lcom/google/android/exoplayer2/RendererCapabilities;
.registers 9
.param p0, "renderersFactory" # Lcom/google/android/exoplayer2/RenderersFactory;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/RenderersFactory;",
"Lcom/google/android/exoplayer2/drm/DrmSessionManager<",
"Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;",
">;)[",
"Lcom/google/android/exoplayer2/RendererCapabilities;"
}
.end annotation
.line 1866
.local p1, "drmSessionManager":Lcom/google/android/exoplayer2/drm/DrmSessionManager;, "Lcom/google/android/exoplayer2/drm/DrmSessionManager<Lcom/google/android/exoplayer2/drm/FrameworkMediaCrypto;>;"
new-instance v1, Landroid/os/Handler;
invoke-direct {v1}, Landroid/os/Handler;-><init>()V
new-instance v2, Lcom/google/android/exoplayer2/util/Util$1;
invoke-direct {v2}, Lcom/google/android/exoplayer2/util/Util$1;-><init>()V
new-instance v3, Lcom/google/android/exoplayer2/util/Util$2;
invoke-direct {v3}, Lcom/google/android/exoplayer2/util/Util$2;-><init>()V
sget-object v4, Lcom/google/android/exoplayer2/util/-$$Lambda$Util$Re8Vg9XyGFeMHzExHNw9i73q-Y8;->INSTANCE:Lcom/google/android/exoplayer2/util/-$$Lambda$Util$Re8Vg9XyGFeMHzExHNw9i73q-Y8;
sget-object v5, Lcom/google/android/exoplayer2/util/-$$Lambda$Util$M3KUmpUnPzRNYEBE_--Y1k2KDhE;->INSTANCE:Lcom/google/android/exoplayer2/util/-$$Lambda$Util$M3KUmpUnPzRNYEBE_--Y1k2KDhE;
.line 1867
move-object v0, p0
move-object v6, p1
invoke-interface/range {v0 .. v6}, Lcom/google/android/exoplayer2/RenderersFactory;->createRenderers(Landroid/os/Handler;Lcom/google/android/exoplayer2/video/VideoRendererEventListener;Lcom/google/android/exoplayer2/audio/AudioRendererEventListener;Lcom/google/android/exoplayer2/text/TextOutput;Lcom/google/android/exoplayer2/metadata/MetadataOutput;Lcom/google/android/exoplayer2/drm/DrmSessionManager;)[Lcom/google/android/exoplayer2/Renderer;
move-result-object v0
.line 1874
.local v0, "renderers":[Lcom/google/android/exoplayer2/Renderer;
array-length v1, v0
new-array v1, v1, [Lcom/google/android/exoplayer2/RendererCapabilities;
.line 1875
.local v1, "capabilities":[Lcom/google/android/exoplayer2/RendererCapabilities;
const/4 v2, 0x0
.local v2, "i":I
:goto_1d
array-length v3, v0
if-ge v2, v3, :cond_2b
.line 1876
aget-object v3, v0, v2
invoke-interface {v3}, Lcom/google/android/exoplayer2/Renderer;->getCapabilities()Lcom/google/android/exoplayer2/RendererCapabilities;
move-result-object v3
aput-object v3, v1, v2
.line 1875
add-int/lit8 v2, v2, 0x1
goto :goto_1d
.line 1878
.end local v2 # "i":I
:cond_2b
return-object v1
.end method
.method public static getStreamTypeForAudioUsage(I)I
.registers 2
.param p0, "usage" # I
.line 1363
const/16 v0, 0xd
if-eq p0, v0, :cond_14
packed-switch p0, :pswitch_data_16
.line 1388
const/4 v0, 0x3
return v0
.line 1377
:pswitch_9
const/4 v0, 0x2
return v0
.line 1383
:pswitch_b
const/4 v0, 0x5
return v0
.line 1375
:pswitch_d
const/4 v0, 0x4
return v0
.line 1373
:pswitch_f
const/16 v0, 0x8
return v0
.line 1371
:pswitch_12
const/4 v0, 0x0
return v0
.line 1369
:cond_14
const/4 v0, 0x1
return v0
:pswitch_data_16
.packed-switch 0x2
:pswitch_12
:pswitch_f
:pswitch_d
:pswitch_b
:pswitch_9
:pswitch_b
:pswitch_b
:pswitch_b
:pswitch_b
.end packed-switch
.end method
.method public static getStringForTime(Ljava/lang/StringBuilder;Ljava/util/Formatter;J)Ljava/lang/String;
.registers 21
.param p0, "builder" # Ljava/lang/StringBuilder;
.param p1, "formatter" # Ljava/util/Formatter;
.param p2, "timeMs" # J
.line 1471
move-object/from16 v0, p1
const-wide v1, -0x7fffffffffffffffL # -4.9E-324
cmp-long v3, p2, v1
if-nez v3, :cond_e
.line 1472
const-wide/16 v1, 0x0
.end local p2 # "timeMs":J
.local v1, "timeMs":J
goto :goto_10
.line 1471
.end local v1 # "timeMs":J
.restart local p2 # "timeMs":J
:cond_e
move-wide/from16 v1, p2
.line 1474
.end local p2 # "timeMs":J
.restart local v1 # "timeMs":J
:goto_10
const-wide/16 v3, 0x1f4
add-long/2addr v3, v1
const-wide/16 v5, 0x3e8
div-long/2addr v3, v5
.line 1475
.local v3, "totalSeconds":J
const-wide/16 v5, 0x3c
rem-long v7, v3, v5
.line 1476
.local v7, "seconds":J
div-long v9, v3, v5
rem-long/2addr v9, v5
.line 1477
.local v9, "minutes":J
const-wide/16 v5, 0xe10
div-long v5, v3, v5
.line 1478
.local v5, "hours":J
const/4 v11, 0x0
move-object/from16 v12, p0
invoke-virtual {v12, v11}, Ljava/lang/StringBuilder;->setLength(I)V
.line 1479
const-wide/16 v13, 0x0
const/4 v15, 0x2
cmp-long v16, v5, v13
if-lez v16, :cond_4f
const/4 v13, 0x3
new-array v13, v13, [Ljava/lang/Object;
invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v14
aput-object v14, v13, v11
invoke-static {v9, v10}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v11
const/4 v14, 0x1
aput-object v11, v13, v14
invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v11
aput-object v11, v13, v15
const-string v11, "%d:%02d:%02d"
invoke-virtual {v0, v11, v13}, Ljava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
move-result-object v11
invoke-virtual {v11}, Ljava/util/Formatter;->toString()Ljava/lang/String;
move-result-object v11
goto :goto_68
:cond_4f
new-array v13, v15, [Ljava/lang/Object;
.line 1480
invoke-static {v9, v10}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v14
aput-object v14, v13, v11
invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v11
const/4 v14, 0x1
aput-object v11, v13, v14
const-string v11, "%02d:%02d"
invoke-virtual {v0, v11, v13}, Ljava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
move-result-object v11
invoke-virtual {v11}, Ljava/util/Formatter;->toString()Ljava/lang/String;
move-result-object v11
.line 1479
:goto_68
return-object v11
.end method
.method private static getSystemProperty(Ljava/lang/String;)Ljava/lang/String;
.registers 7
.param p0, "name" # Ljava/lang/String;
.line 1885
:try_start_0
const-string v0, "android.os.SystemProperties"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 1886
.local v0, "systemProperties":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
const-string v1, "get"
const/4 v2, 0x1
new-array v3, v2, [Ljava/lang/Class;
const-class v4, Ljava/lang/String;
const/4 v5, 0x0
aput-object v4, v3, v5
invoke-virtual {v0, v1, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
.line 1887
.local v1, "getMethod":Ljava/lang/reflect/Method;
new-array v2, v2, [Ljava/lang/Object;
aput-object p0, v2, v5
invoke-virtual {v1, v0, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
:try_end_1e
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_1e} :catch_1f
return-object v2
.line 1888
.end local v0 # "systemProperties":Ljava/lang/Class;, "Ljava/lang/Class<*>;"
.end local v1 # "getMethod":Ljava/lang/reflect/Method;
:catch_1f
move-exception v0
.line 1889
.local v0, "e":Ljava/lang/Exception;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Failed to read system property "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "Util"
invoke-static {v2, v1, v0}, Lcom/google/android/exoplayer2/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 1890
const/4 v1, 0x0
return-object v1
.end method
.method public static getUserAgent(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p0, "context" # Landroid/content/Context;
.param p1, "applicationName" # Ljava/lang/String;
.line 1146
:try_start_0
invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v0
.line 1147
.local v0, "packageName":Ljava/lang/String;
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
const/4 v2, 0x0
invoke-virtual {v1, v0, v2}, Landroid/content/pm/PackageManager;->getPackageInfo(Ljava/lang/String;I)Landroid/content/pm/PackageInfo;
move-result-object v1
.line 1148
.local v1, "info":Landroid/content/pm/PackageInfo;
iget-object v2, v1, Landroid/content/pm/PackageInfo;->versionName:Ljava/lang/String;
:try_end_f
.catch Landroid/content/pm/PackageManager$NameNotFoundException; {:try_start_0 .. :try_end_f} :catch_11
move-object v0, v2
.line 1151
.end local v1 # "info":Landroid/content/pm/PackageInfo;
.local v0, "versionName":Ljava/lang/String;
goto :goto_15
.line 1149
.end local v0 # "versionName":Ljava/lang/String;
:catch_11
move-exception v0
.line 1150
.local v0, "e":Landroid/content/pm/PackageManager$NameNotFoundException;
const-string v1, "?"
move-object v0, v1
.line 1152
.local v0, "versionName":Ljava/lang/String;
:goto_15
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "/"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, " (Linux;Android "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v2, Landroid/os/Build$VERSION;->RELEASE:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ") "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "ExoPlayerLib/2.9.4"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public static getUtf8Bytes(Ljava/lang/String;)[B
.registers 2
.param p0, "value" # Ljava/lang/String;
.line 464
const-string v0, "UTF-8"
invoke-static {v0}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset;
move-result-object v0
invoke-virtual {p0, v0}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B
move-result-object v0
return-object v0
.end method
.method public static inferContentType(Landroid/net/Uri;)I
.registers 3
.param p0, "uri" # Landroid/net/Uri;
.line 1438
invoke-virtual {p0}, Landroid/net/Uri;->getPath()Ljava/lang/String;
move-result-object v0
.line 1439
.local v0, "path":Ljava/lang/String;
if-nez v0, :cond_8
const/4 v1, 0x3
goto :goto_c
:cond_8
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->inferContentType(Ljava/lang/String;)I
move-result v1
:goto_c
return v1
.end method
.method public static inferContentType(Landroid/net/Uri;Ljava/lang/String;)I
.registers 4
.param p0, "uri" # Landroid/net/Uri;
.param p1, "overrideExtension" # Ljava/lang/String;
.line 1425
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_b
.line 1426
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->inferContentType(Landroid/net/Uri;)I
move-result v0
goto :goto_20
:cond_b
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "."
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 v0
.line 1427
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->inferContentType(Ljava/lang/String;)I
move-result v0
.line 1425
:goto_20
return v0
.end method
.method public static inferContentType(Ljava/lang/String;)I
.registers 2
.param p0, "fileName" # Ljava/lang/String;
.line 1450
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
.line 1451
const-string v0, ".mpd"
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_e
.line 1452
const/4 v0, 0x0
return v0
.line 1453
:cond_e
const-string v0, ".m3u8"
invoke-virtual {p0, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_18
.line 1454
const/4 v0, 0x2
return v0
.line 1455
:cond_18
const-string v0, ".*\\.ism(l)?(/manifest(\\(.+\\))?)?"
invoke-virtual {p0, v0}, Ljava/lang/String;->matches(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_22
.line 1456
const/4 v0, 0x1
return v0
.line 1458
:cond_22
const/4 v0, 0x3
return v0
.end method
.method public static inflate(Lcom/google/android/exoplayer2/util/ParsableByteArray;Lcom/google/android/exoplayer2/util/ParsableByteArray;Ljava/util/zip/Inflater;)Z
.registers 8
.param p0, "input" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p1, "output" # Lcom/google/android/exoplayer2/util/ParsableByteArray;
.param p2, "inflater" # Ljava/util/zip/Inflater;
.line 1739
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v0
const/4 v1, 0x0
if-gtz v0, :cond_8
.line 1740
return v1
.line 1742
:cond_8
iget-object v0, p1, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
.line 1743
.local v0, "outputData":[B
array-length v2, v0
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v3
if-ge v2, v3, :cond_19
.line 1744
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v2
mul-int/lit8 v2, v2, 0x2
new-array v0, v2, [B
.line 1746
:cond_19
if-nez p2, :cond_21
.line 1747
new-instance v2, Ljava/util/zip/Inflater;
invoke-direct {v2}, Ljava/util/zip/Inflater;-><init>()V
move-object p2, v2
.line 1749
:cond_21
iget-object v2, p0, Lcom/google/android/exoplayer2/util/ParsableByteArray;->data:[B
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->getPosition()I
move-result v3
invoke-virtual {p0}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->bytesLeft()I
move-result v4
invoke-virtual {p2, v2, v3, v4}, Ljava/util/zip/Inflater;->setInput([BII)V
.line 1751
const/4 v2, 0x0
.line 1753
.local v2, "outputSize":I
:cond_2f
:goto_2f
:try_start_2f
array-length v3, v0
sub-int/2addr v3, v2
invoke-virtual {p2, v0, v2, v3}, Ljava/util/zip/Inflater;->inflate([BII)I
move-result v3
add-int/2addr v2, v3
.line 1754
invoke-virtual {p2}, Ljava/util/zip/Inflater;->finished()Z
move-result v3
if-eqz v3, :cond_44
.line 1755
invoke-virtual {p1, v0, v2}, Lcom/google/android/exoplayer2/util/ParsableByteArray;->reset([BI)V
:try_end_3f
.catch Ljava/util/zip/DataFormatException; {:try_start_2f .. :try_end_3f} :catch_67
.catchall {:try_start_2f .. :try_end_3f} :catchall_62
.line 1756
const/4 v1, 0x1
.line 1768
invoke-virtual {p2}, Ljava/util/zip/Inflater;->reset()V
.line 1756
return v1
.line 1758
:cond_44
:try_start_44
invoke-virtual {p2}, Ljava/util/zip/Inflater;->needsDictionary()Z
move-result v3
if-nez v3, :cond_5d
invoke-virtual {p2}, Ljava/util/zip/Inflater;->needsInput()Z
move-result v3
if-eqz v3, :cond_51
goto :goto_5d
.line 1761
:cond_51
array-length v3, v0
if-ne v2, v3, :cond_2f
.line 1762
array-length v3, v0
mul-int/lit8 v3, v3, 0x2
invoke-static {v0, v3}, Ljava/util/Arrays;->copyOf([BI)[B
move-result-object v3
:try_end_5b
.catch Ljava/util/zip/DataFormatException; {:try_start_44 .. :try_end_5b} :catch_67
.catchall {:try_start_44 .. :try_end_5b} :catchall_62
move-object v0, v3
goto :goto_2f
.line 1759
:cond_5d
:goto_5d
nop
.line 1768
invoke-virtual {p2}, Ljava/util/zip/Inflater;->reset()V
.line 1759
return v1
.line 1768
.end local v2 # "outputSize":I
:catchall_62
move-exception v1
invoke-virtual {p2}, Ljava/util/zip/Inflater;->reset()V
.line 1769
throw v1
.line 1765
:catch_67
move-exception v2
.line 1766
.local v2, "e":Ljava/util/zip/DataFormatException;
nop
.line 1768
invoke-virtual {p2}, Ljava/util/zip/Inflater;->reset()V
.line 1766
return v1
.end method
.method public static isEncodingHighResolutionIntegerPcm(I)Z
.registers 2
.param p0, "encoding" # I
.line 1241
const/high16 v0, -0x80000000
if-eq p0, v0, :cond_b
const/high16 v0, 0x40000000 # 2.0f
if-ne p0, v0, :cond_9
goto :goto_b
:cond_9
const/4 v0, 0x0
goto :goto_c
:cond_b
:goto_b
const/4 v0, 0x1
:goto_c
return v0
.end method
.method public static isEncodingLinearPcm(I)Z
.registers 2
.param p0, "encoding" # I
.line 1227
const/4 v0, 0x3
if-eq p0, v0, :cond_14
const/4 v0, 0x2
if-eq p0, v0, :cond_14
const/high16 v0, -0x80000000
if-eq p0, v0, :cond_14
const/high16 v0, 0x40000000 # 2.0f
if-eq p0, v0, :cond_14
const/4 v0, 0x4
if-ne p0, v0, :cond_12
goto :goto_14
:cond_12
const/4 v0, 0x0
goto :goto_15
:cond_14
:goto_14
const/4 v0, 0x1
:goto_15
return v0
.end method
.method public static isLinebreak(I)Z
.registers 2
.param p0, "c" # I
.line 501
const/16 v0, 0xa
if-eq p0, v0, :cond_b
const/16 v0, 0xd
if-ne p0, v0, :cond_9
goto :goto_b
:cond_9
const/4 v0, 0x0
goto :goto_c
:cond_b
:goto_b
const/4 v0, 0x1
:goto_c
return v0
.end method
.method public static isLocalFileUri(Landroid/net/Uri;)Z
.registers 3
.param p0, "uri" # Landroid/net/Uri;
.line 229
invoke-virtual {p0}, Landroid/net/Uri;->getScheme()Ljava/lang/String;
move-result-object v0
.line 230
.local v0, "scheme":Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_15
const-string v1, "file"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_13
goto :goto_15
:cond_13
const/4 v1, 0x0
goto :goto_16
:cond_15
:goto_15
const/4 v1, 0x1
:goto_16
return v1
.end method
.method public static isTv(Landroid/content/Context;)Z
.registers 4
.param p0, "context" # Landroid/content/Context;
.line 1780
nop
.line 1781
invoke-virtual {p0}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string/jumbo v1, "uimode"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/app/UiModeManager;
.line 1782
.local v0, "uiModeManager":Landroid/app/UiModeManager;
if-eqz v0, :cond_19
.line 1783
invoke-virtual {v0}, Landroid/app/UiModeManager;->getCurrentModeType()I
move-result v1
const/4 v2, 0x4
if-ne v1, v2, :cond_19
const/4 v1, 0x1
goto :goto_1a
:cond_19
const/4 v1, 0x0
.line 1782
:goto_1a
return v1
.end method
.method static synthetic lambda$getRendererCapabilities$1(Ljava/util/List;)V
.registers 1
.param p0, "cues" # Ljava/util/List;
.line 1871
return-void
.end method
.method static synthetic lambda$getRendererCapabilities$2(Lcom/google/android/exoplayer2/metadata/Metadata;)V
.registers 1
.param p0, "metadata" # Lcom/google/android/exoplayer2/metadata/Metadata;
.line 1872
return-void
.end method
.method static synthetic lambda$newSingleThreadExecutor$0(Ljava/lang/String;Ljava/lang/Runnable;)Ljava/lang/Thread;
.registers 3
.param p0, "threadName" # Ljava/lang/String;
.param p1, "runnable" # Ljava/lang/Runnable;
.line 364
new-instance v0, Ljava/lang/Thread;
invoke-direct {v0, p1, p0}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;Ljava/lang/String;)V
return-object v0
.end method
.method public static varargs maybeRequestReadExternalStoragePermission(Landroid/app/Activity;[Landroid/net/Uri;)Z
.registers 7
.param p0, "activity" # Landroid/app/Activity;
.param p1, "uris" # [Landroid/net/Uri;
.line 183
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/4 v1, 0x0
const/16 v2, 0x17
if-ge v0, v2, :cond_8
.line 184
return v1
.line 186
:cond_8
array-length v0, p1
const/4 v2, 0x0
:goto_a
if-ge v2, v0, :cond_28
aget-object v3, p1, v2
.line 187
.local v3, "uri":Landroid/net/Uri;
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Util;->isLocalFileUri(Landroid/net/Uri;)Z
move-result v4
if-eqz v4, :cond_25
.line 188
const-string v0, "android.permission.READ_EXTERNAL_STORAGE"
invoke-virtual {p0, v0}, Landroid/app/Activity;->checkSelfPermission(Ljava/lang/String;)I
move-result v2
if-eqz v2, :cond_28
.line 190
filled-new-array {v0}, [Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0, v1}, Landroid/app/Activity;->requestPermissions([Ljava/lang/String;I)V
.line 191
const/4 v0, 0x1
return v0
.line 186
.end local v3 # "uri":Landroid/net/Uri;
:cond_25
add-int/lit8 v2, v2, 0x1
goto :goto_a
.line 196
:cond_28
return v1
.end method
.method public static newSingleThreadExecutor(Ljava/lang/String;)Ljava/util/concurrent/ExecutorService;
.registers 2
.param p0, "threadName" # Ljava/lang/String;
.line 364
new-instance v0, Lcom/google/android/exoplayer2/util/-$$Lambda$Util$MRC4FgxCpRGDforKj-F0m_7VaCA;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/util/-$$Lambda$Util$MRC4FgxCpRGDforKj-F0m_7VaCA;-><init>(Ljava/lang/String;)V
invoke-static {v0}, Ljava/util/concurrent/Executors;->newSingleThreadExecutor(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ExecutorService;
move-result-object v0
return-object v0
.end method
.method public static normalizeLanguageCode(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.param p0, "language" # Ljava/lang/String;
.line 429
if-nez p0, :cond_4
const/4 v0, 0x0
goto :goto_d
:cond_4
:try_start_4
new-instance v0, Ljava/util/Locale;
invoke-direct {v0, p0}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/util/Locale;->getISO3Language()Ljava/lang/String;
move-result-object v0
:try_end_d
.catch Ljava/util/MissingResourceException; {:try_start_4 .. :try_end_d} :catch_e
:goto_d
return-object v0
.line 430
:catch_e
move-exception v0
.line 431
.local v0, "e":Ljava/util/MissingResourceException;
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
return-object v1
.end method
.method public static nullSafeArrayCopy([Ljava/lang/Object;I)[Ljava/lang/Object;
.registers 3
.param p1, "length" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;I)[TT;"
}
.end annotation
.line 312
.local p0, "input":[Ljava/lang/Object;, "[TT;"
array-length v0, p0
if-gt p1, v0, :cond_5
const/4 v0, 0x1
goto :goto_6
:cond_5
const/4 v0, 0x0
:goto_6
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkArgument(Z)V
.line 313
invoke-static {p0, p1}, Ljava/util/Arrays;->copyOf([Ljava/lang/Object;I)[Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public static parseXsDateTime(Ljava/lang/String;)J
.registers 12
.param p0, "value" # Ljava/lang/String;
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ParserException;
}
.end annotation
.line 881
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->XS_DATE_TIME_PATTERN:Ljava/util/regex/Pattern;
invoke-virtual {v0, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
.line 882
.local v0, "matcher":Ljava/util/regex/Matcher;
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v1
if-eqz v1, :cond_d7
.line 887
const/16 v1, 0x9
invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v2
if-nez v2, :cond_16
.line 889
const/4 v1, 0x0
.local v1, "timezoneShift":I
goto :goto_4b
.line 890
.end local v1 # "timezoneShift":I
:cond_16
invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v1
const-string v2, "Z"
invoke-virtual {v1, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_24
.line 891
const/4 v1, 0x0
.restart local v1 # "timezoneShift":I
goto :goto_4b
.line 893
.end local v1 # "timezoneShift":I
:cond_24
const/16 v1, 0xc
invoke-virtual {v0, v1}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v1
mul-int/lit8 v1, v1, 0x3c
const/16 v2, 0xd
.line 894
invoke-virtual {v0, v2}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v2
invoke-static {v2}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v2
add-int/2addr v1, v2
.line 895
.restart local v1 # "timezoneShift":I
const/16 v2, 0xb
invoke-virtual {v0, v2}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v2
const-string v3, "-"
invoke-virtual {v3, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_4b
.line 896
mul-int/lit8 v1, v1, -0x1
.line 900
:cond_4b
:goto_4b
new-instance v2, Ljava/util/GregorianCalendar;
const-string v3, "GMT"
invoke-static {v3}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone;
move-result-object v3
invoke-direct {v2, v3}, Ljava/util/GregorianCalendar;-><init>(Ljava/util/TimeZone;)V
.line 902
.local v2, "dateTime":Ljava/util/Calendar;
invoke-virtual {v2}, Ljava/util/Calendar;->clear()V
.line 904
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v5
const/4 v4, 0x2
.line 905
invoke-virtual {v0, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v4
add-int/lit8 v6, v4, -0x1
.line 906
const/4 v3, 0x3
invoke-virtual {v0, v3}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v7
const/4 v4, 0x4
.line 907
invoke-virtual {v0, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v8
const/4 v4, 0x5
.line 908
invoke-virtual {v0, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v9
const/4 v4, 0x6
.line 909
invoke-virtual {v0, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v10
.line 904
move-object v4, v2
invoke-virtual/range {v4 .. v10}, Ljava/util/Calendar;->set(IIIIII)V
.line 910
const/16 v4, 0x8
invoke-virtual {v0, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v5
if-nez v5, :cond_c9
.line 911
new-instance v5, Ljava/math/BigDecimal;
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "0."
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v4}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v5, v4}, Ljava/math/BigDecimal;-><init>(Ljava/lang/String;)V
move-object v4, v5
.line 913
.local v4, "bd":Ljava/math/BigDecimal;
const/16 v5, 0xe
invoke-virtual {v4, v3}, Ljava/math/BigDecimal;->movePointRight(I)Ljava/math/BigDecimal;
move-result-object v3
invoke-virtual {v3}, Ljava/math/BigDecimal;->intValue()I
move-result v3
invoke-virtual {v2, v5, v3}, Ljava/util/Calendar;->set(II)V
.line 916
.end local v4 # "bd":Ljava/math/BigDecimal;
:cond_c9
invoke-virtual {v2}, Ljava/util/Calendar;->getTimeInMillis()J
move-result-wide v3
.line 917
.local v3, "time":J
if-eqz v1, :cond_d6
.line 918
const v5, 0xea60
mul-int v5, v5, v1
int-to-long v5, v5
sub-long/2addr v3, v5
.line 921
:cond_d6
return-wide v3
.line 883
.end local v1 # "timezoneShift":I
.end local v2 # "dateTime":Ljava/util/Calendar;
.end local v3 # "time":J
:cond_d7
new-instance v1, Lcom/google/android/exoplayer2/ParserException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Invalid date/time format: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/ParserException;-><init>(Ljava/lang/String;)V
throw v1
.end method
.method public static parseXsDuration(Ljava/lang/String;)J
.registers 20
.param p0, "value" # Ljava/lang/String;
.line 848
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->XS_DURATION_PATTERN:Ljava/util/regex/Pattern;
move-object/from16 v1, p0
invoke-virtual {v0, v1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v0
.line 849
.local v0, "matcher":Ljava/util/regex/Matcher;
invoke-virtual {v0}, Ljava/util/regex/Matcher;->matches()Z
move-result v2
const-wide v3, 0x408f400000000000L # 1000.0
const-wide v5, 0x40ac200000000000L # 3600.0
if-eqz v2, :cond_9c
.line 850
const/4 v2, 0x1
invoke-virtual {v0, v2}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v7
invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v7
xor-int/2addr v2, v7
.line 853
.local v2, "negated":Z
const/4 v7, 0x3
invoke-virtual {v0, v7}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v7
.line 854
.local v7, "years":Ljava/lang/String;
const-wide/16 v8, 0x0
if-eqz v7, :cond_37
invoke-static {v7}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v10
const-wide v12, 0x417e1852c0000000L # 3.1556908E7
mul-double v10, v10, v12
goto :goto_38
:cond_37
move-wide v10, v8
.line 855
.local v10, "durationSeconds":D
:goto_38
const/4 v12, 0x5
invoke-virtual {v0, v12}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v12
.line 856
.local v12, "months":Ljava/lang/String;
if-eqz v12, :cond_4b
invoke-static {v12}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v13
const-wide v15, 0x4144103580000000L # 2629739.0
mul-double v13, v13, v15
goto :goto_4c
:cond_4b
move-wide v13, v8
:goto_4c
add-double/2addr v10, v13
.line 857
const/4 v13, 0x7
invoke-virtual {v0, v13}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v13
.line 858
.local v13, "days":Ljava/lang/String;
if-eqz v13, :cond_60
invoke-static {v13}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v14
const-wide v16, 0x40f5180000000000L # 86400.0
mul-double v14, v14, v16
goto :goto_61
:cond_60
move-wide v14, v8
:goto_61
add-double/2addr v10, v14
.line 859
const/16 v14, 0xa
invoke-virtual {v0, v14}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v14
.line 860
.local v14, "hours":Ljava/lang/String;
if-eqz v14, :cond_71
invoke-static {v14}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v15
mul-double v15, v15, v5
goto :goto_72
:cond_71
move-wide v15, v8
:goto_72
add-double/2addr v10, v15
.line 861
const/16 v5, 0xc
invoke-virtual {v0, v5}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v5
.line 862
.local v5, "minutes":Ljava/lang/String;
if-eqz v5, :cond_84
invoke-static {v5}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v15
const-wide/high16 v17, 0x404e000000000000L # 60.0
mul-double v15, v15, v17
goto :goto_85
:cond_84
move-wide v15, v8
:goto_85
add-double/2addr v10, v15
.line 863
const/16 v6, 0xe
invoke-virtual {v0, v6}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v6
.line 864
.local v6, "seconds":Ljava/lang/String;
if-eqz v6, :cond_92
invoke-static {v6}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v8
:cond_92
add-double/2addr v10, v8
.line 865
mul-double v3, v3, v10
double-to-long v3, v3
.line 866
.local v3, "durationMillis":J
if-eqz v2, :cond_9a
neg-long v8, v3
goto :goto_9b
:cond_9a
move-wide v8, v3
:goto_9b
return-wide v8
.line 868
.end local v2 # "negated":Z
.end local v3 # "durationMillis":J
.end local v5 # "minutes":Ljava/lang/String;
.end local v6 # "seconds":Ljava/lang/String;
.end local v7 # "years":Ljava/lang/String;
.end local v10 # "durationSeconds":D
.end local v12 # "months":Ljava/lang/String;
.end local v13 # "days":Ljava/lang/String;
.end local v14 # "hours":Ljava/lang/String;
:cond_9c
invoke-static/range {p0 .. p0}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide v7
mul-double v7, v7, v5
mul-double v7, v7, v3
double-to-long v2, v7
return-wide v2
.end method
.method public static readBoolean(Landroid/os/Parcel;)Z
.registers 2
.param p0, "parcel" # Landroid/os/Parcel;
.line 406
invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
move-result v0
if-eqz v0, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
return v0
.end method
.method public static recursiveDelete(Ljava/io/File;)V
.registers 5
.param p0, "fileOrDirectory" # Ljava/io/File;
.line 1626
invoke-virtual {p0}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v0
.line 1627
.local v0, "directoryFiles":[Ljava/io/File;
if-eqz v0, :cond_12
.line 1628
array-length v1, v0
const/4 v2, 0x0
:goto_8
if-ge v2, v1, :cond_12
aget-object v3, v0, v2
.line 1629
.local v3, "child":Ljava/io/File;
invoke-static {v3}, Lcom/google/android/exoplayer2/util/Util;->recursiveDelete(Ljava/io/File;)V
.line 1628
.end local v3 # "child":Ljava/io/File;
add-int/lit8 v2, v2, 0x1
goto :goto_8
.line 1632
:cond_12
invoke-virtual {p0}, Ljava/io/File;->delete()Z
.line 1633
return-void
.end method
.method public static removeRange(Ljava/util/List;II)V
.registers 4
.param p1, "fromIndex" # I
.param p2, "toIndex" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/util/List<",
"TT;>;II)V"
}
.end annotation
.line 276
.local p0, "list":Ljava/util/List;, "Ljava/util/List<TT;>;"
if-ltz p1, :cond_14
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
if-gt p2, v0, :cond_14
if-gt p1, p2, :cond_14
.line 278
if-eq p1, p2, :cond_13
.line 280
invoke-interface {p0, p1, p2}, Ljava/util/List;->subList(II)Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->clear()V
.line 282
:cond_13
return-void
.line 277
:cond_14
new-instance v0, Ljava/lang/IllegalArgumentException;
invoke-direct {v0}, Ljava/lang/IllegalArgumentException;-><init>()V
throw v0
.end method
.method public static resolveSeekPositionUs(JLcom/google/android/exoplayer2/SeekParameters;JJ)J
.registers 20
.param p0, "positionUs" # J
.param p2, "seekParameters" # Lcom/google/android/exoplayer2/SeekParameters;
.param p3, "firstSyncUs" # J
.param p5, "secondSyncUs" # J
.line 1043
move-object v6, p2
sget-object v0, Lcom/google/android/exoplayer2/SeekParameters;->EXACT:Lcom/google/android/exoplayer2/SeekParameters;
invoke-virtual {v0, p2}, Lcom/google/android/exoplayer2/SeekParameters;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_a
.line 1044
return-wide p0
.line 1046
:cond_a
iget-wide v2, v6, Lcom/google/android/exoplayer2/SeekParameters;->toleranceBeforeUs:J
const-wide/high16 v4, -0x8000000000000000L
.line 1047
move-wide v0, p0
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/util/Util;->subtractWithOverflowDefault(JJJ)J
move-result-wide v7
.line 1048
.local v7, "minPositionUs":J
iget-wide v2, v6, Lcom/google/android/exoplayer2/SeekParameters;->toleranceAfterUs:J
const-wide v4, 0x7fffffffffffffffL
.line 1049
invoke-static/range {v0 .. v5}, Lcom/google/android/exoplayer2/util/Util;->addWithOverflowDefault(JJJ)J
move-result-wide v0
.line 1050
.local v0, "maxPositionUs":J
const/4 v2, 0x1
const/4 v3, 0x0
cmp-long v4, v7, p3
if-gtz v4, :cond_2a
cmp-long v4, p3, v0
if-gtz v4, :cond_2a
const/4 v4, 0x1
goto :goto_2b
:cond_2a
const/4 v4, 0x0
.line 1051
.local v4, "firstSyncPositionValid":Z
:goto_2b
cmp-long v5, v7, p5
if-gtz v5, :cond_34
cmp-long v5, p5, v0
if-gtz v5, :cond_34
goto :goto_35
:cond_34
const/4 v2, 0x0
.line 1053
.local v2, "secondSyncPositionValid":Z
:goto_35
if-eqz v4, :cond_4b
if-eqz v2, :cond_4b
.line 1054
sub-long v9, p3, p0
invoke-static {v9, v10}, Ljava/lang/Math;->abs(J)J
move-result-wide v9
sub-long v11, p5, p0
invoke-static {v11, v12}, Ljava/lang/Math;->abs(J)J
move-result-wide v11
cmp-long v3, v9, v11
if-gtz v3, :cond_4a
.line 1055
return-wide p3
.line 1057
:cond_4a
return-wide p5
.line 1059
:cond_4b
if-eqz v4, :cond_4e
.line 1060
return-wide p3
.line 1061
:cond_4e
if-eqz v2, :cond_51
.line 1062
return-wide p5
.line 1064
:cond_51
return-wide v7
.end method
.method public static scaleLargeTimestamp(JJJ)J
.registers 11
.param p0, "timestamp" # J
.param p2, "multiplier" # J
.param p4, "divisor" # J
.line 936
const-wide/16 v0, 0x0
cmp-long v2, p4, p2
if-ltz v2, :cond_11
rem-long v2, p4, p2
cmp-long v4, v2, v0
if-nez v4, :cond_11
.line 937
div-long v0, p4, p2
.line 938
.local v0, "divisionFactor":J
div-long v2, p0, v0
return-wide v2
.line 939
.end local v0 # "divisionFactor":J
:cond_11
cmp-long v2, p4, p2
if-gez v2, :cond_20
rem-long v2, p2, p4
cmp-long v4, v2, v0
if-nez v4, :cond_20
.line 940
div-long v0, p2, p4
.line 941
.local v0, "multiplicationFactor":J
mul-long v2, p0, v0
return-wide v2
.line 943
.end local v0 # "multiplicationFactor":J
:cond_20
long-to-double v0, p2
long-to-double v2, p4
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v0, v2
.line 944
.local v0, "multiplicationFactor":D
long-to-double v2, p0
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
mul-double v2, v2, v0
double-to-long v2, v2
return-wide v2
.end method
.method public static scaleLargeTimestamps(Ljava/util/List;JJ)[J
.registers 11
.param p1, "multiplier" # J
.param p3, "divisor" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Ljava/lang/Long;",
">;JJ)[J"
}
.end annotation
.line 957
.local p0, "timestamps":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Long;>;"
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
new-array v0, v0, [J
.line 958
.local v0, "scaledTimestamps":[J
const-wide/16 v1, 0x0
cmp-long v3, p3, p1
if-ltz v3, :cond_29
rem-long v3, p3, p1
cmp-long v5, v3, v1
if-nez v5, :cond_29
.line 959
div-long v1, p3, p1
.line 960
.local v1, "divisionFactor":J
const/4 v3, 0x0
.local v3, "i":I
:goto_15
array-length v4, v0
if-ge v3, v4, :cond_28
.line 961
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Long;
invoke-virtual {v4}, Ljava/lang/Long;->longValue()J
move-result-wide v4
div-long/2addr v4, v1
aput-wide v4, v0, v3
.line 960
add-int/lit8 v3, v3, 0x1
goto :goto_15
.line 963
.end local v1 # "divisionFactor":J
.end local v3 # "i":I
:cond_28
goto :goto_6e
:cond_29
cmp-long v3, p3, p1
if-gez v3, :cond_4b
rem-long v3, p1, p3
cmp-long v5, v3, v1
if-nez v5, :cond_4b
.line 964
div-long v1, p1, p3
.line 965
.local v1, "multiplicationFactor":J
const/4 v3, 0x0
.restart local v3 # "i":I
:goto_36
array-length v4, v0
if-ge v3, v4, :cond_4a
.line 966
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Long;
invoke-virtual {v4}, Ljava/lang/Long;->longValue()J
move-result-wide v4
mul-long v4, v4, v1
aput-wide v4, v0, v3
.line 965
add-int/lit8 v3, v3, 0x1
goto :goto_36
.line 968
.end local v1 # "multiplicationFactor":J
.end local v3 # "i":I
:cond_4a
goto :goto_6e
.line 969
:cond_4b
long-to-double v1, p1
long-to-double v3, p3
invoke-static {v1, v2}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v1, v3
.line 970
.local v1, "multiplicationFactor":D
const/4 v3, 0x0
.restart local v3 # "i":I
:goto_55
array-length v4, v0
if-ge v3, v4, :cond_6e
.line 971
invoke-interface {p0, v3}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/Long;
invoke-virtual {v4}, Ljava/lang/Long;->longValue()J
move-result-wide v4
long-to-double v4, v4
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
mul-double v4, v4, v1
double-to-long v4, v4
aput-wide v4, v0, v3
.line 970
add-int/lit8 v3, v3, 0x1
goto :goto_55
.line 974
.end local v1 # "multiplicationFactor":D
.end local v3 # "i":I
:cond_6e
:goto_6e
return-object v0
.end method
.method public static scaleLargeTimestampsInPlace([JJJ)V
.registers 10
.param p0, "timestamps" # [J
.param p1, "multiplier" # J
.param p3, "divisor" # J
.line 985
const-wide/16 v0, 0x0
cmp-long v2, p3, p1
if-ltz v2, :cond_1b
rem-long v2, p3, p1
cmp-long v4, v2, v0
if-nez v4, :cond_1b
.line 986
div-long v0, p3, p1
.line 987
.local v0, "divisionFactor":J
const/4 v2, 0x0
.local v2, "i":I
:goto_f
array-length v3, p0
if-ge v2, v3, :cond_1a
.line 988
aget-wide v3, p0, v2
div-long/2addr v3, v0
aput-wide v3, p0, v2
.line 987
add-int/lit8 v2, v2, 0x1
goto :goto_f
.line 990
.end local v0 # "divisionFactor":J
.end local v2 # "i":I
:cond_1a
goto :goto_50
:cond_1b
cmp-long v2, p3, p1
if-gez v2, :cond_35
rem-long v2, p1, p3
cmp-long v4, v2, v0
if-nez v4, :cond_35
.line 991
div-long v0, p1, p3
.line 992
.local v0, "multiplicationFactor":J
const/4 v2, 0x0
.restart local v2 # "i":I
:goto_28
array-length v3, p0
if-ge v2, v3, :cond_34
.line 993
aget-wide v3, p0, v2
mul-long v3, v3, v0
aput-wide v3, p0, v2
.line 992
add-int/lit8 v2, v2, 0x1
goto :goto_28
.line 995
.end local v0 # "multiplicationFactor":J
.end local v2 # "i":I
:cond_34
goto :goto_50
.line 996
:cond_35
long-to-double v0, p1
long-to-double v2, p3
invoke-static {v0, v1}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v2, v3}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v0, v2
.line 997
.local v0, "multiplicationFactor":D
const/4 v2, 0x0
.restart local v2 # "i":I
:goto_3f
array-length v3, p0
if-ge v2, v3, :cond_50
.line 998
aget-wide v3, p0, v2
long-to-double v3, v3
invoke-static {v3, v4}, Ljava/lang/Double;->isNaN(D)Z
mul-double v3, v3, v0
double-to-long v3, v3
aput-wide v3, p0, v2
.line 997
add-int/lit8 v2, v2, 0x1
goto :goto_3f
.line 1001
.end local v0 # "multiplicationFactor":D
.end local v2 # "i":I
:cond_50
:goto_50
return-void
.end method
.method private static shouldEscapeCharacter(C)Z
.registers 2
.param p0, "c" # C
.line 1554
const/16 v0, 0x22
if-eq p0, v0, :cond_2a
const/16 v0, 0x25
if-eq p0, v0, :cond_2a
const/16 v0, 0x2a
if-eq p0, v0, :cond_2a
const/16 v0, 0x2f
if-eq p0, v0, :cond_2a
const/16 v0, 0x3a
if-eq p0, v0, :cond_2a
const/16 v0, 0x3c
if-eq p0, v0, :cond_2a
const/16 v0, 0x5c
if-eq p0, v0, :cond_2a
const/16 v0, 0x7c
if-eq p0, v0, :cond_2a
const/16 v0, 0x3e
if-eq p0, v0, :cond_2a
const/16 v0, 0x3f
if-eq p0, v0, :cond_2a
.line 1567
const/4 v0, 0x0
return v0
.line 1565
:cond_2a
const/4 v0, 0x1
return v0
.end method
.method public static sneakyThrow(Ljava/lang/Throwable;)V
.registers 1
.param p0, "t" # Ljava/lang/Throwable;
.line 1616
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->sneakyThrowInternal(Ljava/lang/Throwable;)V
.line 1617
return-void
.end method
.method private static sneakyThrowInternal(Ljava/lang/Throwable;)V
.registers 1
.param p0, "t" # Ljava/lang/Throwable;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Throwable;",
">(",
"Ljava/lang/Throwable;",
")V^TT;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Throwable;
}
.end annotation
.line 1621
throw p0
.end method
.method public static split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
.registers 3
.param p0, "value" # Ljava/lang/String;
.param p1, "regex" # Ljava/lang/String;
.line 477
const/4 v0, -0x1
invoke-virtual {p0, p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static splitAtFirst(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
.registers 3
.param p0, "value" # Ljava/lang/String;
.param p1, "regex" # Ljava/lang/String;
.line 491
const/4 v0, 0x2
invoke-virtual {p0, p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static splitCodecs(Ljava/lang/String;)[Ljava/lang/String;
.registers 3
.param p0, "codecs" # Ljava/lang/String;
.line 1189
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_a
.line 1190
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/String;
return-object v0
.line 1192
:cond_a
invoke-virtual {p0}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v0
const-string v1, "(\\s*,\\s*)"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->split(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static startForegroundService(Landroid/content/Context;Landroid/content/Intent;)Landroid/content/ComponentName;
.registers 4
.param p0, "context" # Landroid/content/Context;
.param p1, "intent" # Landroid/content/Intent;
.line 166
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x1a
if-lt v0, v1, :cond_b
.line 167
invoke-virtual {p0, p1}, Landroid/content/Context;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
move-result-object v0
return-object v0
.line 169
:cond_b
invoke-virtual {p0, p1}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
move-result-object v0
return-object v0
.end method
.method public static subtractWithOverflowDefault(JJJ)J
.registers 13
.param p0, "x" # J
.param p2, "y" # J
.param p4, "overflowResult" # J
.line 617
sub-long v0, p0, p2
.line 619
.local v0, "result":J
xor-long v2, p0, p2
xor-long v4, p0, v0
and-long/2addr v2, v4
const-wide/16 v4, 0x0
cmp-long v6, v2, v4
if-gez v6, :cond_e
.line 620
return-wide p4
.line 622
:cond_e
return-wide v0
.end method
.method public static toArray(Ljava/util/List;)[I
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Ljava/lang/Integer;",
">;)[I"
}
.end annotation
.line 1075
.local p0, "list":Ljava/util/List;, "Ljava/util/List<Ljava/lang/Integer;>;"
if-nez p0, :cond_4
.line 1076
const/4 v0, 0x0
return-object v0
.line 1078
:cond_4
invoke-interface {p0}, Ljava/util/List;->size()I
move-result v0
.line 1079
.local v0, "length":I
new-array v1, v0, [I
.line 1080
.local v1, "intArray":[I
const/4 v2, 0x0
.local v2, "i":I
:goto_b
if-ge v2, v0, :cond_1c
.line 1081
invoke-interface {p0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
aput v3, v1, v2
.line 1080
add-int/lit8 v2, v2, 0x1
goto :goto_b
.line 1083
.end local v2 # "i":I
:cond_1c
return-object v1
.end method
.method public static toByteArray(Ljava/io/InputStream;)[B
.registers 6
.param p0, "inputStream" # Ljava/io/InputStream;
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 148
const/16 v0, 0x1000
new-array v0, v0, [B
.line 149
.local v0, "buffer":[B
new-instance v1, Ljava/io/ByteArrayOutputStream;
invoke-direct {v1}, Ljava/io/ByteArrayOutputStream;-><init>()V
.line 151
.local v1, "outputStream":Ljava/io/ByteArrayOutputStream;
:goto_9
invoke-virtual {p0, v0}, Ljava/io/InputStream;->read([B)I
move-result v2
move v3, v2
.local v3, "bytesRead":I
const/4 v4, -0x1
if-eq v2, v4, :cond_16
.line 152
const/4 v2, 0x0
invoke-virtual {v1, v0, v2, v3}, Ljava/io/ByteArrayOutputStream;->write([BII)V
goto :goto_9
.line 154
:cond_16
invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B
move-result-object v2
return-object v2
.end method
.method public static toLowerInvariant(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "text" # Ljava/lang/String;
.line 511
if-nez p0, :cond_4
move-object v0, p0
goto :goto_a
:cond_4
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {p0, v0}, Ljava/lang/String;->toLowerCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v0
:goto_a
return-object v0
.end method
.method public static toUpperInvariant(Ljava/lang/String;)Ljava/lang/String;
.registers 2
.param p0, "text" # Ljava/lang/String;
.line 521
if-nez p0, :cond_4
move-object v0, p0
goto :goto_a
:cond_4
sget-object v0, Ljava/util/Locale;->US:Ljava/util/Locale;
invoke-virtual {p0, v0}, Ljava/lang/String;->toUpperCase(Ljava/util/Locale;)Ljava/lang/String;
move-result-object v0
:goto_a
return-object v0
.end method
.method public static unescapeFileName(Ljava/lang/String;)Ljava/lang/String;
.registers 9
.param p0, "fileName" # Ljava/lang/String;
.line 1581
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 1582
.local v0, "length":I
const/4 v1, 0x0
.line 1583
.local v1, "percentCharacterCount":I
const/4 v2, 0x0
.local v2, "i":I
:goto_6
if-ge v2, v0, :cond_15
.line 1584
invoke-virtual {p0, v2}, Ljava/lang/String;->charAt(I)C
move-result v3
const/16 v4, 0x25
if-ne v3, v4, :cond_12
.line 1585
add-int/lit8 v1, v1, 0x1
.line 1583
:cond_12
add-int/lit8 v2, v2, 0x1
goto :goto_6
.line 1588
.end local v2 # "i":I
:cond_15
if-nez v1, :cond_18
.line 1589
return-object p0
.line 1592
:cond_18
mul-int/lit8 v2, v1, 0x2
sub-int v2, v0, v2
.line 1593
.local v2, "expectedLength":I
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3, v2}, Ljava/lang/StringBuilder;-><init>(I)V
.line 1594
.local v3, "builder":Ljava/lang/StringBuilder;
sget-object v4, Lcom/google/android/exoplayer2/util/Util;->ESCAPED_CHARACTER_PATTERN:Ljava/util/regex/Pattern;
invoke-virtual {v4, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v4
.line 1595
.local v4, "matcher":Ljava/util/regex/Matcher;
const/4 v5, 0x0
.line 1596
.local v5, "startOfNotEscaped":I
:goto_28
if-lez v1, :cond_4e
invoke-virtual {v4}, Ljava/util/regex/Matcher;->find()Z
move-result v6
if-eqz v6, :cond_4e
.line 1597
const/4 v6, 0x1
invoke-virtual {v4, v6}, Ljava/util/regex/Matcher;->group(I)Ljava/lang/String;
move-result-object v6
const/16 v7, 0x10
invoke-static {v6, v7}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I
move-result v6
int-to-char v6, v6
.line 1598
.local v6, "unescapedCharacter":C
invoke-virtual {v4}, Ljava/util/regex/Matcher;->start()I
move-result v7
invoke-virtual {v3, p0, v5, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
invoke-virtual {v3, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 1599
invoke-virtual {v4}, Ljava/util/regex/Matcher;->end()I
move-result v5
.line 1600
nop
.end local v6 # "unescapedCharacter":C
add-int/lit8 v1, v1, -0x1
.line 1601
goto :goto_28
.line 1602
:cond_4e
if-ge v5, v0, :cond_53
.line 1603
invoke-virtual {v3, p0, v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
.line 1605
:cond_53
invoke-virtual {v3}, Ljava/lang/StringBuilder;->length()I
move-result v6
if-eq v6, v2, :cond_5b
.line 1606
const/4 v6, 0x0
return-object v6
.line 1608
:cond_5b
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
return-object v6
.end method
.method public static writeBoolean(Landroid/os/Parcel;Z)V
.registers 2
.param p0, "parcel" # Landroid/os/Parcel;
.param p1, "value" # Z
.line 417
invoke-virtual {p0, p1}, Landroid/os/Parcel;->writeInt(I)V
.line 418
return-void
.end method