aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt15
1 files changed, 13 insertions, 2 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt b/app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt
index 9d5e199a..4e3aa097 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/views/FrostVideoView.kt
@@ -8,11 +8,14 @@ import android.util.AttributeSet
import android.view.GestureDetector
import android.view.MotionEvent
import android.view.View
+import android.widget.Toast
import ca.allanwang.kau.ui.ProgressAnimator
import ca.allanwang.kau.utils.AnimHolder
import ca.allanwang.kau.utils.dpToPx
import ca.allanwang.kau.utils.scaleXY
+import ca.allanwang.kau.utils.toast
import com.devbrackets.android.exomedia.ui.widget.VideoView
+import com.pitchedapps.frost.R
import com.pitchedapps.frost.utils.L
/**
@@ -58,8 +61,6 @@ class FrostVideoView @JvmOverloads constructor(
var isExpanded: Boolean = true
set(value) {
if (field == value) return
- if (videoDimensions.x <= 0f || videoDimensions.y <= 0f)
- return L.d("Attempted to toggle video expansion when points have not been finalized")
field = value
val origX = translationX
val origY = translationY
@@ -96,6 +97,11 @@ class FrostVideoView @JvmOverloads constructor(
* and return the necessary transitions to get there
*/
private fun mapBounds(): Triple<Float, Float, Float> {
+ if (videoDimensions.x <= 0f || videoDimensions.y <= 0f) {
+ L.d("Attempted to toggle video expansion when points have not been finalized")
+ val dimen = Math.min(height, width).toFloat()
+ videoDimensions.set(dimen, dimen)
+ }
val portrait = height > width
val scale = Math.min(height / (if (portrait) 4f else 2.3f) / videoDimensions.y, width / (if (portrait) 2.3f else 4f) / videoDimensions.x)
val desiredHeight = scale * videoDimensions.y
@@ -124,6 +130,11 @@ class FrostVideoView @JvmOverloads constructor(
start()
if (isExpanded) showControls()
}
+ setOnErrorListener {
+ toast(R.string.video_load_failed, Toast.LENGTH_SHORT)
+ destroy()
+ true
+ }
setOnCompletionListener {
if (repeat) restart()
else viewerContract.onVideoComplete()