mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
make different view for time remaining counter
This commit is contained in:
parent
f792ec757e
commit
d434b61662
4 changed files with 70 additions and 11 deletions
|
@ -32,6 +32,7 @@ import androidx.core.graphics.blue
|
||||||
import androidx.core.graphics.green
|
import androidx.core.graphics.green
|
||||||
import androidx.core.graphics.red
|
import androidx.core.graphics.red
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
|
import androidx.core.view.isInvisible
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.core.widget.doOnTextChanged
|
import androidx.core.widget.doOnTextChanged
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
|
@ -80,7 +81,6 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
|
||||||
protected open var isTv = false
|
protected open var isTv = false
|
||||||
protected var playerBinding: PlayerCustomLayoutBinding? = null
|
protected var playerBinding: PlayerCustomLayoutBinding? = null
|
||||||
private val handler = Handler(Looper.getMainLooper())
|
private val handler = Handler(Looper.getMainLooper())
|
||||||
private var isShowTimeRemaining = false
|
|
||||||
|
|
||||||
// state of player UI
|
// state of player UI
|
||||||
protected var isShowing = false
|
protected var isShowing = false
|
||||||
|
@ -1424,11 +1424,11 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
exoDuration.setOnClickListener {
|
exoDuration.setOnClickListener {
|
||||||
if (!isShowTimeRemaining) {
|
|
||||||
startUpdatingRemainingTime()
|
startUpdatingRemainingTime()
|
||||||
} else {
|
|
||||||
stopUpdatingRemainingTime()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
timeLeft.setOnClickListener {
|
||||||
|
stopUpdatingRemainingTime()
|
||||||
}
|
}
|
||||||
|
|
||||||
skipChapterButton.setOnClickListener {
|
skipChapterButton.setOnClickListener {
|
||||||
|
@ -1549,8 +1549,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
|
||||||
val remainingTimeSeconds = (duration - position) / 1000
|
val remainingTimeSeconds = (duration - position) / 1000
|
||||||
val formattedTime = "-${DateUtils.formatElapsedTime(remainingTimeSeconds)}"
|
val formattedTime = "-${DateUtils.formatElapsedTime(remainingTimeSeconds)}"
|
||||||
|
|
||||||
playerBinding?.exoDuration?.text = formattedTime
|
playerBinding?.timeLeft?.text = formattedTime
|
||||||
isShowTimeRemaining = true
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1561,13 +1560,15 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
|
||||||
handler.postDelayed(this, 1000) // realtime decrement
|
handler.postDelayed(this, 1000) // realtime decrement
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
playerBinding?.exoDuration?.isInvisible = true
|
||||||
|
playerBinding?.timeLeft?.isVisible = true
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun stopUpdatingRemainingTime() {
|
private fun stopUpdatingRemainingTime() {
|
||||||
handler.removeCallbacksAndMessages(null)
|
handler.removeCallbacksAndMessages(null)
|
||||||
val totalDuration = player.getDuration()?.div(1000)
|
playerBinding?.timeLeft?.isInvisible = true
|
||||||
playerBinding?.exoDuration?.text = totalDuration?.let { DateUtils.formatElapsedTime(it) }
|
playerBinding?.exoDuration?.isVisible = true
|
||||||
isShowTimeRemaining = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun dynamicOrientation(): Int {
|
private fun dynamicOrientation(): Int {
|
||||||
|
|
|
@ -518,6 +518,26 @@
|
||||||
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
tools:text="23:20" />
|
tools:text="23:20" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/time_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center|center_vertical"
|
||||||
|
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:minWidth="50dp"
|
||||||
|
android:paddingLeft="4dp"
|
||||||
|
android:paddingRight="4dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="normal"
|
||||||
|
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
tools:text="-23:20"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
<HorizontalScrollView
|
<HorizontalScrollView
|
||||||
|
|
|
@ -607,6 +607,25 @@
|
||||||
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
tools:text="23:20" />
|
tools:text="23:20" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/time_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center|center_vertical"
|
||||||
|
|
||||||
|
android:layout_marginEnd="20dp"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:minWidth="50dp"
|
||||||
|
android:paddingLeft="4dp"
|
||||||
|
android:paddingRight="4dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="normal"
|
||||||
|
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
tools:text="-23:20"
|
||||||
|
android:visibility="gone"/>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -506,6 +506,25 @@
|
||||||
app:layout_constraintEnd_toEndOf="@id/player_fullscreen"
|
app:layout_constraintEnd_toEndOf="@id/player_fullscreen"
|
||||||
tools:text="23:20" />
|
tools:text="23:20" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/time_left"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="30dp"
|
||||||
|
android:layout_gravity="center|center_vertical"
|
||||||
|
|
||||||
|
android:layout_marginEnd="30dp"
|
||||||
|
android:includeFontPadding="false"
|
||||||
|
android:minWidth="50dp"
|
||||||
|
android:paddingLeft="4dp"
|
||||||
|
android:paddingRight="4dp"
|
||||||
|
android:textColor="@android:color/white"
|
||||||
|
android:textSize="14sp"
|
||||||
|
android:textStyle="normal"
|
||||||
|
app:layout_constraintBaseline_toBaselineOf="@id/exo_position"
|
||||||
|
app:layout_constraintEnd_toEndOf="@id/player_fullscreen"
|
||||||
|
tools:text="-23:20"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/player_fullscreen"
|
android:id="@+id/player_fullscreen"
|
||||||
android:layout_width="30dp"
|
android:layout_width="30dp"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue