Files
rr3-apk/smali_classes2/com/google/android/exoplayer2/util/Util.smali
Daniel Elliott 6ffa31962e V14.0.1 Ultimate: Killswitch removed + offline features + crash fix
- Decompiled RealRacing3 v14.0.1 (versionCode 14001)
- Patched EnvironmentDataContainer.getLatestAppVersionCheckResult() to always return 0 (APP_VERSION_OK)
- Copied all offline managers from v13: LocalSaveManager, OfflineModeManager, OfflineCurrencyManager, OfflineEventsManager
- Applied delayed initialization fix to MainActivity (500ms Handler.postDelayed)
- Added MainActivity\ inner class with try-catch wrapper
- Server killswitch completely bypassed - game will work after March 2026 shutdown
- Compatible with v13 APKs (same signing key: rr3-release.keystore)

This is the ULTIMATE EDITION: Latest game version + no killswitch + offline mode + crash fixed

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 22:36:51 -08:00

1522 lines
29 KiB
Smali

.class public abstract Lcom/google/android/exoplayer2/util/Util;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final CRC32_BYTES_MSBF:[I
.field public static final CRC8_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 public static final ESCAPED_CHARACTER_PATTERN:Ljava/util/regex/Pattern;
.field public static final ISM_URL_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 public static final XS_DATE_TIME_PATTERN:Ljava/util/regex/Pattern;
.field public static final XS_DURATION_PATTERN:Ljava/util/regex/Pattern;
.field public static final additionalIsoLanguageReplacements:[Ljava/lang/String;
.field public static final isoLegacyTagReplacements:[Ljava/lang/String;
.field public static languageTagReplacementMap:Ljava/util/HashMap;
# direct methods
.method static constructor <clinit>()V
.locals 87
.line 108
sget-object v0, Landroid/os/Build$VERSION;->CODENAME:Ljava/lang/String;
const-string v1, "S"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_0
const/16 v0, 0x1f
goto :goto_0
:cond_0
const-string v1, "R"
.line 110
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_1
const/16 v0, 0x1e
goto :goto_0
:cond_1
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
:goto_0
sput v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
.line 116
sget-object v1, Landroid/os/Build;->DEVICE:Ljava/lang/String;
sput-object v1, Lcom/google/android/exoplayer2/util/Util;->DEVICE:Ljava/lang/String;
.line 122
sget-object v2, Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
sput-object v2, Lcom/google/android/exoplayer2/util/Util;->MANUFACTURER:Ljava/lang/String;
.line 128
sget-object v3, Landroid/os/Build;->MODEL:Ljava/lang/String;
sput-object v3, Lcom/google/android/exoplayer2/util/Util;->MODEL:Ljava/lang/String;
.line 131
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
add-int/lit8 v4, v4, 0x11
invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v5
add-int/2addr v4, v5
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v5
add-int/2addr v4, v5
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5, v4}, Ljava/lang/StringBuilder;-><init>(I)V
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, ", "
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5}, 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;
const/4 v0, 0x0
new-array v0, v0, [B
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->EMPTY_BYTE_ARRAY:[B
const-string v0, "(\\d\\d\\d\\d)\\-(\\d\\d)\\-(\\d\\d)[Tt](\\d\\d):(\\d\\d):(\\d\\d)([\\.,](\\d+))?([Zz]|((\\+|\\-)(\\d?\\d):?(\\d\\d)))?"
.line 139
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;
const-string v0, "^(-)?P(([0-9]*)Y)?(([0-9]*)M)?(([0-9]*)D)?(T(([0-9]*)H)?(([0-9]*)M)?(([0-9.]*)S)?)?$"
.line 144
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;
const-string v0, "%([A-Fa-f0-9]{2})"
.line 147
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;
const-string v0, ".*\\.isml?(?:/(manifest(.*))?)?"
.line 150
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;->ISM_URL_PATTERN:Ljava/util/regex/Pattern;
const-string v1, "alb"
const-string v2, "sq"
const-string v3, "arm"
const-string v4, "hy"
const-string v5, "baq"
const-string v6, "eu"
const-string v7, "bur"
const-string v8, "my"
const-string v9, "tib"
const-string v10, "bo"
const-string v11, "chi"
const-string v12, "zh"
const-string v13, "cze"
const-string v14, "cs"
const-string v15, "dut"
const-string v16, "nl"
const-string v17, "ger"
const-string v18, "de"
const-string v19, "gre"
const-string v20, "el"
const-string v21, "fre"
const-string v22, "fr"
const-string v23, "geo"
const-string v24, "ka"
const-string v25, "ice"
const-string v26, "is"
const-string v27, "mac"
const-string v28, "mk"
const-string v29, "mao"
const-string v30, "mi"
const-string v31, "may"
const-string v32, "ms"
const-string v33, "per"
const-string v34, "fa"
const-string v35, "rum"
const-string v36, "ro"
const-string v37, "scc"
const-string v38, "hbs-srp"
const-string v39, "slo"
const-string v40, "sk"
const-string v41, "wel"
const-string v42, "cy"
const-string v43, "id"
const-string v44, "ms-ind"
const-string v45, "iw"
const-string v46, "he"
const-string v47, "heb"
const-string v48, "he"
const-string v49, "ji"
const-string v50, "yi"
const-string v51, "in"
const-string v52, "ms-ind"
const-string v53, "ind"
const-string v54, "ms-ind"
const-string v55, "nb"
const-string v56, "no-nob"
const-string v57, "nob"
const-string v58, "no-nob"
const-string v59, "nn"
const-string v60, "no-nno"
const-string v61, "nno"
const-string v62, "no-nno"
const-string v63, "tw"
const-string v64, "ak-twi"
const-string v65, "twi"
const-string v66, "ak-twi"
const-string v67, "bs"
const-string v68, "hbs-bos"
const-string v69, "bos"
const-string v70, "hbs-bos"
const-string v71, "hr"
const-string v72, "hbs-hrv"
const-string v73, "hrv"
const-string v74, "hbs-hrv"
const-string v75, "sr"
const-string v76, "hbs-srp"
const-string v77, "srp"
const-string v78, "hbs-srp"
const-string v79, "cmn"
const-string v80, "zh-cmn"
const-string v81, "hak"
const-string v82, "zh-hak"
const-string v83, "nan"
const-string v84, "zh-nan"
const-string v85, "hsn"
const-string v86, "zh-hsn"
filled-new-array/range {v1 .. v86}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->additionalIsoLanguageReplacements:[Ljava/lang/String;
const-string v1, "i-lux"
const-string v2, "lb"
const-string v3, "i-hak"
const-string v4, "zh-hak"
const-string v5, "i-navajo"
const-string v6, "nv"
const-string v7, "no-bok"
const-string v8, "no-nob"
const-string v9, "no-nyn"
const-string v10, "no-nno"
const-string v11, "zh-guoyu"
const-string v12, "zh-cmn"
const-string v13, "zh-hakka"
const-string v14, "zh-hak"
const-string v15, "zh-min-nan"
const-string v16, "zh-nan"
const-string v17, "zh-xiang"
const-string v18, "zh-hsn"
filled-new-array/range {v1 .. v18}, [Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->isoLegacyTagReplacements:[Ljava/lang/String;
const/16 v0, 0x100
new-array v1, v0, [I
fill-array-data v1, :array_0
sput-object v1, Lcom/google/android/exoplayer2/util/Util;->CRC32_BYTES_MSBF:[I
new-array v0, v0, [I
fill-array-data v0, :array_1
sput-object v0, Lcom/google/android/exoplayer2/util/Util;->CRC8_BYTES_MSBF:[I
return-void
:array_0
.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.2545494E8f
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
:array_1
.array-data 4
0x0
0x7
0xe
0x9
0x1c
0x1b
0x12
0x15
0x38
0x3f
0x36
0x31
0x24
0x23
0x2a
0x2d
0x70
0x77
0x7e
0x79
0x6c
0x6b
0x62
0x65
0x48
0x4f
0x46
0x41
0x54
0x53
0x5a
0x5d
0xe0
0xe7
0xee
0xe9
0xfc
0xfb
0xf2
0xf5
0xd8
0xdf
0xd6
0xd1
0xc4
0xc3
0xca
0xcd
0x90
0x97
0x9e
0x99
0x8c
0x8b
0x82
0x85
0xa8
0xaf
0xa6
0xa1
0xb4
0xb3
0xba
0xbd
0xc7
0xc0
0xc9
0xce
0xdb
0xdc
0xd5
0xd2
0xff
0xf8
0xf1
0xf6
0xe3
0xe4
0xed
0xea
0xb7
0xb0
0xb9
0xbe
0xab
0xac
0xa5
0xa2
0x8f
0x88
0x81
0x86
0x93
0x94
0x9d
0x9a
0x27
0x20
0x29
0x2e
0x3b
0x3c
0x35
0x32
0x1f
0x18
0x11
0x16
0x3
0x4
0xd
0xa
0x57
0x50
0x59
0x5e
0x4b
0x4c
0x45
0x42
0x6f
0x68
0x61
0x66
0x73
0x74
0x7d
0x7a
0x89
0x8e
0x87
0x80
0x95
0x92
0x9b
0x9c
0xb1
0xb6
0xbf
0xb8
0xad
0xaa
0xa3
0xa4
0xf9
0xfe
0xf7
0xf0
0xe5
0xe2
0xeb
0xec
0xc1
0xc6
0xcf
0xc8
0xdd
0xda
0xd3
0xd4
0x69
0x6e
0x67
0x60
0x75
0x72
0x7b
0x7c
0x51
0x56
0x5f
0x58
0x4d
0x4a
0x43
0x44
0x19
0x1e
0x17
0x10
0x5
0x2
0xb
0xc
0x21
0x26
0x2f
0x28
0x3d
0x3a
0x33
0x34
0x4e
0x49
0x40
0x47
0x52
0x55
0x5c
0x5b
0x76
0x71
0x78
0x7f
0x6a
0x6d
0x64
0x63
0x3e
0x39
0x30
0x37
0x22
0x25
0x2c
0x2b
0x6
0x1
0x8
0xf
0x1a
0x1d
0x14
0x13
0xae
0xa9
0xa0
0xa7
0xb2
0xb5
0xbc
0xbb
0x96
0x91
0x98
0x9f
0x8a
0x8d
0x84
0x83
0xde
0xd9
0xd0
0xd7
0xc2
0xc5
0xcc
0xcb
0xe6
0xe1
0xe8
0xef
0xfa
0xfd
0xf4
0xf3
.end array-data
.end method
.method public static areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
.locals 0
if-nez p0, :cond_1
if-nez p1, :cond_0
const/4 p0, 0x1
goto :goto_0
:cond_0
const/4 p0, 0x0
goto :goto_0
.line 292
:cond_1
invoke-virtual {p0, p1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result p0
:goto_0
return p0
.end method
.method public static castNonNull(Ljava/lang/Object;)Ljava/lang/Object;
.locals 0
return-object p0
.end method
.method public static constrainValue(III)I
.locals 0
.line 802
invoke-static {p0, p2}, Ljava/lang/Math;->min(II)I
move-result p0
invoke-static {p1, p0}, Ljava/lang/Math;->max(II)I
move-result p0
return p0
.end method
.method public static constrainValue(JJJ)J
.locals 0
.line 814
invoke-static {p0, p1, p4, p5}, Ljava/lang/Math;->min(JJ)J
move-result-wide p0
invoke-static {p2, p3, p0, p1}, Ljava/lang/Math;->max(JJ)J
move-result-wide p0
return-wide p0
.end method
.method public static createIsoLanguageReplacementMap()Ljava/util/HashMap;
.locals 8
.line 2479
invoke-static {}, Ljava/util/Locale;->getISOLanguages()[Ljava/lang/String;
move-result-object v0
.line 2480
new-instance v1, Ljava/util/HashMap;
array-length v2, v0
sget-object v3, Lcom/google/android/exoplayer2/util/Util;->additionalIsoLanguageReplacements:[Ljava/lang/String;
array-length v3, v3
add-int/2addr v2, v3
invoke-direct {v1, v2}, Ljava/util/HashMap;-><init>(I)V
.line 2483
array-length v2, v0
const/4 v3, 0x0
move v4, v3
:goto_0
if-ge v4, v2, :cond_1
aget-object v5, v0, v4
.line 2486
:try_start_0
new-instance v6, Ljava/util/Locale;
invoke-direct {v6, v5}, Ljava/util/Locale;-><init>(Ljava/lang/String;)V
invoke-virtual {v6}, Ljava/util/Locale;->getISO3Language()Ljava/lang/String;
move-result-object v6
.line 2487
invoke-static {v6}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v7
if-nez v7, :cond_0
.line 2488
invoke-virtual {v1, v6, v5}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_0
.catch Ljava/util/MissingResourceException; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
:cond_0
add-int/lit8 v4, v4, 0x1
goto :goto_0
:cond_1
:goto_1
sget-object v0, Lcom/google/android/exoplayer2/util/Util;->additionalIsoLanguageReplacements:[Ljava/lang/String;
.line 2495
array-length v2, v0
if-ge v3, v2, :cond_2
.line 2496
aget-object v2, v0, v3
add-int/lit8 v4, v3, 0x1
aget-object v0, v0, v4
invoke-virtual {v1, v2, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
add-int/lit8 v3, v3, 0x2
goto :goto_1
:cond_2
return-object v1
.end method
.method public static varargs formatInvariant(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
.locals 1
.line 768
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 p0
return-object p0
.end method
.method public static getStringForTime(Ljava/lang/StringBuilder;Ljava/util/Formatter;J)Ljava/lang/String;
.locals 9
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long v0, p2, v0
const-wide/16 v1, 0x0
if-nez v0, :cond_0
move-wide p2, v1
:cond_0
cmp-long v0, p2, v1
if-gez v0, :cond_1
const-string v0, "-"
goto :goto_0
:cond_1
const-string v0, ""
.line 1924
:goto_0
invoke-static {p2, p3}, Ljava/lang/Math;->abs(J)J
move-result-wide p2
const-wide/16 v3, 0x1f4
add-long/2addr p2, v3
const-wide/16 v3, 0x3e8
.line 1925
div-long/2addr p2, v3
const-wide/16 v3, 0x3c
.line 1926
rem-long v5, p2, v3
.line 1927
div-long v7, p2, v3
rem-long/2addr v7, v3
const-wide/16 v3, 0xe10
.line 1928
div-long/2addr p2, v3
const/4 v3, 0x0
.line 1929
invoke-virtual {p0, v3}, Ljava/lang/StringBuilder;->setLength(I)V
cmp-long p0, p2, v1
if-lez p0, :cond_2
.line 1931
invoke-static {p2, p3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p3
filled-new-array {v0, p0, p2, p3}, [Ljava/lang/Object;
move-result-object p0
const-string p2, "%s%d:%02d:%02d"
invoke-virtual {p1, p2, p0}, Ljava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
move-result-object p0
invoke-virtual {p0}, Ljava/util/Formatter;->toString()Ljava/lang/String;
move-result-object p0
goto :goto_1
.line 1932
:cond_2
invoke-static {v7, v8}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p0
invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
filled-new-array {v0, p0, p2}, [Ljava/lang/Object;
move-result-object p0
const-string p2, "%s%02d:%02d"
invoke-virtual {p1, p2, p0}, Ljava/util/Formatter;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/util/Formatter;
move-result-object p0
invoke-virtual {p0}, Ljava/util/Formatter;->toString()Ljava/lang/String;
move-result-object p0
:goto_1
return-object p0
.end method
.method public static maybeReplaceLegacyLanguageTags(Ljava/lang/String;)Ljava/lang/String;
.locals 3
const/4 v0, 0x0
:goto_0
sget-object v1, Lcom/google/android/exoplayer2/util/Util;->isoLegacyTagReplacements:[Ljava/lang/String;
.line 2521
array-length v2, v1
if-ge v0, v2, :cond_2
.line 2522
aget-object v2, v1, v0
invoke-virtual {p0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_1
add-int/lit8 v2, v0, 0x1
.line 2523
aget-object v2, v1, v2
invoke-static {v2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
aget-object v0, v1, v0
.line 2524
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_0
invoke-virtual {v2, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
goto :goto_1
:cond_0
new-instance p0, Ljava/lang/String;
invoke-direct {p0, v2}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
:goto_1
return-object p0
:cond_1
add-int/lit8 v0, v0, 0x2
goto :goto_0
:cond_2
return-object p0
.end method
.method public static normalizeLanguageCode(Ljava/lang/String;)Ljava/lang/String;
.locals 2
if-nez p0, :cond_0
const/4 p0, 0x0
return-object p0
:cond_0
const/16 v0, 0x5f
const/16 v1, 0x2d
.line 671
invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v0
.line 672
invoke-virtual {v0}, Ljava/lang/String;->isEmpty()Z
move-result v1
if-nez v1, :cond_2
const-string v1, "und"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_1
goto :goto_0
:cond_1
move-object p0, v0
.line 676
:cond_2
:goto_0
invoke-static {p0}, Lcom/google/common/base/Ascii;->toLowerCase(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string v0, "-"
.line 677
invoke-static {p0, v0}, Lcom/google/android/exoplayer2/util/Util;->splitAtFirst(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
aget-object v0, v0, v1
sget-object v1, Lcom/google/android/exoplayer2/util/Util;->languageTagReplacementMap:Ljava/util/HashMap;
if-nez v1, :cond_3
.line 679
invoke-static {}, Lcom/google/android/exoplayer2/util/Util;->createIsoLanguageReplacementMap()Ljava/util/HashMap;
move-result-object v1
sput-object v1, Lcom/google/android/exoplayer2/util/Util;->languageTagReplacementMap:Ljava/util/HashMap;
:cond_3
sget-object v1, Lcom/google/android/exoplayer2/util/Util;->languageTagReplacementMap:Ljava/util/HashMap;
.line 681
invoke-virtual {v1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
if-eqz v1, :cond_5
.line 684
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v0
invoke-virtual {p0, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-eqz v0, :cond_4
invoke-virtual {v1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
goto :goto_1
:cond_4
new-instance p0, Ljava/lang/String;
invoke-direct {p0, v1}, Ljava/lang/String;-><init>(Ljava/lang/String;)V
:goto_1
move-object v0, v1
:cond_5
const-string v1, "no"
.line 687
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_6
const-string v1, "i"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_6
const-string v1, "zh"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_7
.line 688
:cond_6
invoke-static {p0}, Lcom/google/android/exoplayer2/util/Util;->maybeReplaceLegacyLanguageTags(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
:cond_7
return-object p0
.end method
.method public static readBoolean(Landroid/os/Parcel;)Z
.locals 0
.line 629
invoke-virtual {p0}, Landroid/os/Parcel;->readInt()I
move-result p0
if-eqz p0, :cond_0
const/4 p0, 0x1
goto :goto_0
:cond_0
const/4 p0, 0x0
:goto_0
return p0
.end method
.method public static splitAtFirst(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;
.locals 1
const/4 v0, 0x2
.line 749
invoke-virtual {p0, p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method public static startForegroundService(Landroid/content/Context;Landroid/content/Intent;)Landroid/content/ComponentName;
.locals 2
sget v0, Lcom/google/android/exoplayer2/util/Util;->SDK_INT:I
const/16 v1, 0x1a
if-lt v0, v1, :cond_0
.line 188
invoke-virtual {p0, p1}, Landroid/content/Context;->startForegroundService(Landroid/content/Intent;)Landroid/content/ComponentName;
move-result-object p0
return-object p0
.line 190
:cond_0
invoke-virtual {p0, p1}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
move-result-object p0
return-object p0
.end method
.method public static writeBoolean(Landroid/os/Parcel;Z)V
.locals 0
.line 640
invoke-virtual {p0, p1}, Landroid/os/Parcel;->writeInt(I)V
return-void
.end method