diff options
author | Allan Wang <me@allanwang.ca> | 2017-11-12 02:48:36 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-12 02:48:36 -0500 |
commit | 2b51bc4bfa86863ed14b550fe3281840587ab038 (patch) | |
tree | 0fd7276e326ed0901b1af980d07d57f3bbb7d7eb /app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt | |
parent | ec7fdc2521463d0a773bb9d0be454f3b2a60eee3 (diff) | |
download | frost-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/VideoViewerContract.kt')
-rw-r--r-- | app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt | 54 |
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) + } + +} |