Timeline.smali
.class public abstract Lcom/google/android/exoplayer2/Timeline;
.super Ljava/lang/Object;
.source "Timeline.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/Timeline$Period;,
Lcom/google/android/exoplayer2/Timeline$Window;
}
.end annotation
# static fields
.field public static final EMPTY:Lcom/google/android/exoplayer2/Timeline;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 512
new-instance v0, Lcom/google/android/exoplayer2/Timeline$1;
invoke-direct {v0}, Lcom/google/android/exoplayer2/Timeline$1;-><init>()V
sput-object v0, Lcom/google/android/exoplayer2/Timeline;->EMPTY:Lcom/google/android/exoplayer2/Timeline;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 108
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getFirstWindowIndex(Z)I
.registers 3
.param p1, "shuffleModeEnabled" # Z
.line 630
invoke-virtual {p0}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
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 abstract getIndexOfPeriod(Ljava/lang/Object;)I
.end method
.method public getLastWindowIndex(Z)I
.registers 3
.param p1, "shuffleModeEnabled" # Z
.line 618
invoke-virtual {p0}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v0
if-eqz v0, :cond_8
const/4 v0, -0x1
goto :goto_e
:cond_8
invoke-virtual {p0}, Lcom/google/android/exoplayer2/Timeline;->getWindowCount()I
move-result v0
add-int/lit8 v0, v0, -0x1
:goto_e
return v0
.end method
.method public final getNextPeriodIndex(ILcom/google/android/exoplayer2/Timeline$Period;Lcom/google/android/exoplayer2/Timeline$Window;IZ)I
.registers 9
.param p1, "periodIndex" # I
.param p2, "period" # Lcom/google/android/exoplayer2/Timeline$Period;
.param p3, "window" # Lcom/google/android/exoplayer2/Timeline$Window;
.param p4, "repeatMode" # I
.param p5, "shuffleModeEnabled" # Z
.line 690
invoke-virtual {p0, p1, p2}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v0
iget v0, v0, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
.line 691
.local v0, "windowIndex":I
invoke-virtual {p0, v0, p3}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v1
iget v1, v1, Lcom/google/android/exoplayer2/Timeline$Window;->lastPeriodIndex:I
if-ne v1, p1, :cond_1d
.line 692
invoke-virtual {p0, v0, p4, p5}, Lcom/google/android/exoplayer2/Timeline;->getNextWindowIndex(IIZ)I
move-result v1
.line 693
.local v1, "nextWindowIndex":I
const/4 v2, -0x1
if-ne v1, v2, :cond_16
.line 694
return v2
.line 696
:cond_16
invoke-virtual {p0, v1, p3}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v2
iget v2, v2, Lcom/google/android/exoplayer2/Timeline$Window;->firstPeriodIndex:I
return v2
.line 698
.end local v1 # "nextWindowIndex":I
:cond_1d
add-int/lit8 v1, p1, 0x1
return v1
.end method
.method public getNextWindowIndex(IIZ)I
.registers 5
.param p1, "windowIndex" # I
.param p2, "repeatMode" # I
.param p3, "shuffleModeEnabled" # Z
.line 570
if-eqz p2, :cond_1d
const/4 v0, 0x1
if-eq p2, v0, :cond_1c
const/4 v0, 0x2
if-ne p2, v0, :cond_16
.line 577
invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Timeline;->getLastWindowIndex(Z)I
move-result v0
if-ne p1, v0, :cond_13
.line 578
invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Timeline;->getFirstWindowIndex(Z)I
move-result v0
goto :goto_15
:cond_13
add-int/lit8 v0, p1, 0x1
.line 577
:goto_15
return v0
.line 580
:cond_16
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
throw v0
.line 575
:cond_1c
return p1
.line 572
:cond_1d
invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Timeline;->getLastWindowIndex(Z)I
move-result v0
if-ne p1, v0, :cond_25
const/4 v0, -0x1
goto :goto_27
:cond_25
add-int/lit8 v0, p1, 0x1
:goto_27
return v0
.end method
.method public final getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
.registers 4
.param p1, "periodIndex" # I
.param p2, "period" # Lcom/google/android/exoplayer2/Timeline$Period;
.line 789
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v0
return-object v0
.end method
.method public abstract getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
.end method
.method public getPeriodByUid(Ljava/lang/Object;Lcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
.registers 5
.param p1, "periodUid" # Ljava/lang/Object;
.param p2, "period" # Lcom/google/android/exoplayer2/Timeline$Period;
.line 777
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result v0
const/4 v1, 0x1
invoke-virtual {p0, v0, p2, v1}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v0
return-object v0
.end method
.method public abstract getPeriodCount()I
.end method
.method public final getPeriodPosition(Lcom/google/android/exoplayer2/Timeline$Window;Lcom/google/android/exoplayer2/Timeline$Period;IJ)Landroid/util/Pair;
.registers 14
.param p1, "window" # Lcom/google/android/exoplayer2/Timeline$Window;
.param p2, "period" # Lcom/google/android/exoplayer2/Timeline$Period;
.param p3, "windowIndex" # I
.param p4, "windowPositionUs" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/Timeline$Window;",
"Lcom/google/android/exoplayer2/Timeline$Period;",
"IJ)",
"Landroid/util/Pair<",
"Ljava/lang/Object;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 724
nop
.line 725
const-wide/16 v6, 0x0
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v3, p3
move-wide v4, p4
invoke-virtual/range {v0 .. v7}, Lcom/google/android/exoplayer2/Timeline;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline$Window;Lcom/google/android/exoplayer2/Timeline$Period;IJJ)Landroid/util/Pair;
move-result-object v0
.line 724
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/Pair;
return-object v0
.end method
.method public final getPeriodPosition(Lcom/google/android/exoplayer2/Timeline$Window;Lcom/google/android/exoplayer2/Timeline$Period;IJJ)Landroid/util/Pair;
.registers 23
.param p1, "window" # Lcom/google/android/exoplayer2/Timeline$Window;
.param p2, "period" # Lcom/google/android/exoplayer2/Timeline$Period;
.param p3, "windowIndex" # I
.param p4, "windowPositionUs" # J
.param p6, "defaultPositionProjectionUs" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/Timeline$Window;",
"Lcom/google/android/exoplayer2/Timeline$Period;",
"IJJ)",
"Landroid/util/Pair<",
"Ljava/lang/Object;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 750
move-object v6, p0
move-object/from16 v7, p1
move-object/from16 v8, p2
invoke-virtual {p0}, Lcom/google/android/exoplayer2/Timeline;->getWindowCount()I
move-result v0
const/4 v1, 0x0
move/from16 v9, p3
invoke-static {v9, v1, v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkIndex(III)I
.line 751
const/4 v3, 0x0
move-object v0, p0
move/from16 v1, p3
move-object/from16 v2, p1
move-wide/from16 v4, p6
invoke-virtual/range {v0 .. v5}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;ZJ)Lcom/google/android/exoplayer2/Timeline$Window;
.line 752
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long v2, p4, v0
if-nez v2, :cond_2d
.line 753
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/Timeline$Window;->getDefaultPositionUs()J
move-result-wide v2
.line 754
.end local p4 # "windowPositionUs":J
.local v2, "windowPositionUs":J
cmp-long v4, v2, v0
if-nez v4, :cond_2f
.line 755
const/4 v0, 0x0
return-object v0
.line 752
.end local v2 # "windowPositionUs":J
.restart local p4 # "windowPositionUs":J
:cond_2d
move-wide/from16 v2, p4
.line 758
.end local p4 # "windowPositionUs":J
.restart local v2 # "windowPositionUs":J
:cond_2f
iget v4, v7, Lcom/google/android/exoplayer2/Timeline$Window;->firstPeriodIndex:I
.line 759
.local v4, "periodIndex":I
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/Timeline$Window;->getPositionInFirstPeriodUs()J
move-result-wide v10
add-long/2addr v10, v2
.line 760
.local v10, "periodPositionUs":J
const/4 v5, 0x1
invoke-virtual {p0, v4, v8, v5}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v12
invoke-virtual {v12}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v12
.line 761
.local v12, "periodDurationUs":J
:goto_3f
cmp-long v14, v12, v0
if-eqz v14, :cond_57
cmp-long v14, v10, v12
if-ltz v14, :cond_57
iget v14, v7, Lcom/google/android/exoplayer2/Timeline$Window;->lastPeriodIndex:I
if-ge v4, v14, :cond_57
.line 763
sub-long/2addr v10, v12
.line 764
add-int/lit8 v4, v4, 0x1
invoke-virtual {p0, v4, v8, v5}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v14
invoke-virtual {v14}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v12
goto :goto_3f
.line 766
:cond_57
iget-object v0, v8, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
invoke-static {v10, v11}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object v0
return-object v0
.end method
.method public getPreviousWindowIndex(IIZ)I
.registers 5
.param p1, "windowIndex" # I
.param p2, "repeatMode" # I
.param p3, "shuffleModeEnabled" # Z
.line 595
if-eqz p2, :cond_1d
const/4 v0, 0x1
if-eq p2, v0, :cond_1c
const/4 v0, 0x2
if-ne p2, v0, :cond_16
.line 602
invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Timeline;->getFirstWindowIndex(Z)I
move-result v0
if-ne p1, v0, :cond_13
.line 603
invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Timeline;->getLastWindowIndex(Z)I
move-result v0
goto :goto_15
:cond_13
add-int/lit8 v0, p1, -0x1
.line 602
:goto_15
return v0
.line 605
:cond_16
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0}, Ljava/lang/IllegalStateException;-><init>()V
throw v0
.line 600
:cond_1c
return p1
.line 597
:cond_1d
invoke-virtual {p0, p3}, Lcom/google/android/exoplayer2/Timeline;->getFirstWindowIndex(Z)I
move-result v0
if-ne p1, v0, :cond_25
const/4 v0, -0x1
goto :goto_27
:cond_25
add-int/lit8 v0, p1, -0x1
:goto_27
return v0
.end method
.method public abstract getUidOfPeriod(I)Ljava/lang/Object;
.end method
.method public final getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
.registers 4
.param p1, "windowIndex" # I
.param p2, "window" # Lcom/google/android/exoplayer2/Timeline$Window;
.line 642
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;Z)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v0
return-object v0
.end method
.method public final getWindow(ILcom/google/android/exoplayer2/Timeline$Window;Z)Lcom/google/android/exoplayer2/Timeline$Window;
.registers 10
.param p1, "windowIndex" # I
.param p2, "window" # Lcom/google/android/exoplayer2/Timeline$Window;
.param p3, "setTag" # Z
.line 655
const-wide/16 v4, 0x0
move-object v0, p0
move v1, p1
move-object v2, p2
move v3, p3
invoke-virtual/range {v0 .. v5}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;ZJ)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v0
return-object v0
.end method
.method public abstract getWindow(ILcom/google/android/exoplayer2/Timeline$Window;ZJ)Lcom/google/android/exoplayer2/Timeline$Window;
.end method
.method public abstract getWindowCount()I
.end method
.method public final isEmpty()Z
.registers 2
.line 551
invoke-virtual {p0}, Lcom/google/android/exoplayer2/Timeline;->getWindowCount()I
move-result v0
if-nez v0, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
:goto_9
return v0
.end method
.method public final isLastPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Lcom/google/android/exoplayer2/Timeline$Window;IZ)Z
.registers 8
.param p1, "periodIndex" # I
.param p2, "period" # Lcom/google/android/exoplayer2/Timeline$Period;
.param p3, "window" # Lcom/google/android/exoplayer2/Timeline$Window;
.param p4, "repeatMode" # I
.param p5, "shuffleModeEnabled" # Z
.line 714
invoke-virtual/range {p0 .. p5}, Lcom/google/android/exoplayer2/Timeline;->getNextPeriodIndex(ILcom/google/android/exoplayer2/Timeline$Period;Lcom/google/android/exoplayer2/Timeline$Window;IZ)I
move-result v0
const/4 v1, -0x1
if-ne v0, v1, :cond_9
const/4 v0, 0x1
goto :goto_a
:cond_9
const/4 v0, 0x0
:goto_a
return v0
.end method