make different view for time remaining counter

This commit is contained in:
IndusAryan 2024-01-14 17:37:09 +05:30
parent f792ec757e
commit d434b61662
4 changed files with 70 additions and 11 deletions

View file

@ -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 {

View file

@ -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

View file

@ -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>

View file

@ -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"