package com.applicaster.oasisplayer.player import android.app.Activity import android.content.Context import android.content.Intent import android.os.Bundle import android.view.KeyEvent import androidx.lifecycle.Lifecycle import com.applicaster.oasisplayer.player.PlayerActivity.Companion.KEY_PLAYABLE import com.applicaster.oasisplayer.R import kotlinx.android.synthetic.main.view_player_holder.* class PlayerActivity : Activity(), PlayerScreen { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.view_player_holder) val playable = intent?.getSerializableExtra(KEY_PLAYABLE) as? HashMap player_parent.initPlayer(this, PlayMode.FULLSCREEN, playable) } override fun onDestroy() { super.onDestroy() player_parent.onViewDestroyed() } companion object { const val KEY_PLAYABLE = "playable" } override fun dispatchKeyEvent(event: KeyEvent): Boolean { val handled = player_parent.dispatchRemoveControllerKeyEvent(event) return if (!handled) super.dispatchKeyEvent(event) else handled } override fun getLifecycle(): Lifecycle? { // TODO("Not yet implemented") return null } override fun getActivity() = this } interface PlayerScreen { fun getLifecycle(): Lifecycle? fun getActivity(): Activity? fun finish() } fun startPlayerActivity(context: Context?, playable: HashMap?) { val intent = Intent(context, PlayerActivity::class.java).apply { putExtra(KEY_PLAYABLE, playable) } context?.startActivity(intent) }