aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/contracts
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-11-12 02:48:36 -0500
committerGitHub <noreply@github.com>2017-11-12 02:48:36 -0500
commit2b51bc4bfa86863ed14b550fe3281840587ab038 (patch)
tree0fd7276e326ed0901b1af980d07d57f3bbb7d7eb /app/src/main/kotlin/com/pitchedapps/frost/contracts
parentec7fdc2521463d0a773bb9d0be454f3b2a60eee3 (diff)
downloadfrost-2b51bc4bfa86863ed14b550fe3281840587ab038.tar.gz
frost-2b51bc4bfa86863ed14b550fe3281840587ab038.tar.bz2
frost-2b51bc4bfa86863ed14b550fe3281840587ab038.zip
enhancement/video-player (#480)v1.6.3
* Add toolbar visibility toggle and draw it over viewer * Set contract bindings once available * Fix video url param error and prepare progressanimator * Add gif support and better transitions * Interface a lot of things * Reorder back press * Clean up files and fix selector * Add gif support * Redraw bounds when necessary
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/contracts')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt54
1 files changed, 54 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt b/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt
new file mode 100644
index 00000000..2e6ad04f
--- /dev/null
+++ b/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt
@@ -0,0 +1,54 @@
+package com.pitchedapps.frost.contracts
+
+import android.app.Activity
+import android.widget.FrameLayout
+import ca.allanwang.kau.utils.inflate
+import com.pitchedapps.frost.R
+import com.pitchedapps.frost.utils.L
+import com.pitchedapps.frost.views.FrostVideoContainerContract
+import com.pitchedapps.frost.views.FrostVideoViewer
+
+/**
+ * Created by Allan Wang on 2017-11-10.
+ */
+interface VideoViewerContract : FrameWrapper, FrostVideoContainerContract {
+
+ var videoViewer: FrostVideoViewer?
+
+ fun showVideo(url: String)
+ = showVideo(url, false)
+
+ /**
+ * Create new viewer and reuse existing one
+ * The url will be formatted upon loading
+ */
+ fun showVideo(url: String, repeat: Boolean) {
+ if (videoViewer != null)
+ videoViewer?.setVideo(url, repeat)
+ else
+ videoViewer = FrostVideoViewer.showVideo(url, repeat, this)
+ }
+
+ fun videoOnStop() = videoViewer?.pause()
+
+ fun videoOnBackPress() = videoViewer?.onBackPressed() ?: false
+
+ override val videoContainer: FrameLayout
+ get() = frameWrapper
+
+ override fun onVideoFinished() {
+ L.d("Video view released")
+ videoViewer = null
+ }
+}
+
+interface FrameWrapper {
+
+ val frameWrapper: FrameLayout
+
+ fun Activity.setFrameContentView(layoutRes: Int) {
+ setContentView(R.layout.activity_frame_wrapper)
+ frameWrapper.inflate(layoutRes, true)
+ }
+
+}