Skip to content

Commit

Permalink
update sample
Browse files Browse the repository at this point in the history
  • Loading branch information
aosa4054 committed Jun 15, 2019
1 parent cbaad7a commit d652386
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 4 deletions.
Original file line number Diff line number Diff line change
@@ -1,33 +1,62 @@
package io.github.aosa4054.pictureinpicturelifecycleobserver.sample

import android.app.PendingIntent
import android.app.PictureInPictureParams
import android.app.RemoteAction
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.content.res.Configuration
import android.graphics.Rect
import android.graphics.drawable.Icon
import android.os.Build
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Rational
import android.view.View
import android.widget.Toast
import io.github.aosa4054.pictureinpicturelifecycleobserver.PictureInPictureLifecycleObserver
import kotlinx.android.synthetic.main.activity_pip.*

class PIPActivity : AppCompatActivity() {

lateinit var pipLifecycleObserver: PictureInPictureLifecycleObserver
companion object {
const val PIP_ACTION = "pip action"
}

private lateinit var pipLifecycleObserver: PictureInPictureLifecycleObserver
private var pipReceiver : BroadcastReceiver? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_pip)

fab.setOnClickListener {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
enterPictureInPictureMode(PictureInPictureParams.Builder().build())

val params = PictureInPictureParams.Builder()
.setAspectRatio(Rational(2, 1))
.setSourceRectHint(Rect(1, 1, 1, 1))
.setActions(
listOf(
RemoteAction(
Icon.createWithResource(this, android.R.drawable.ic_dialog_dialer),
"title",
"description",
PendingIntent.getBroadcast(this, 0, Intent(PIP_ACTION), 0)
)
)
)
.build()
enterPictureInPictureMode(params)
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
enterPictureInPictureMode()
}
}

pipLifecycleObserver = object : PictureInPictureLifecycleObserver(this) {
override val finishDuplicatedTask = true
override val removeTaskAfterDismiss = true

override fun onReturnFromPictureInPicture() {
Toast.makeText(this@PIPActivity, "Returned", Toast.LENGTH_SHORT).show()
Expand All @@ -41,6 +70,22 @@ class PIPActivity : AppCompatActivity() {

override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean, newConfig: Configuration?) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
fab.visibility = if (isInPictureInPictureMode) View.GONE else View.VISIBLE
if (isInPictureInPictureMode) {
supportActionBar!!.hide()
fab.visibility = View.GONE

pipReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
if (intent == null || intent.action != PIP_ACTION) return
Toast.makeText(this@PIPActivity, "RemoteAction", Toast.LENGTH_SHORT).show()
}
}
registerReceiver(pipReceiver, IntentFilter(PIP_ACTION))
} else {
fab.visibility = View.VISIBLE

unregisterReceiver(pipReceiver)
pipReceiver = null
}
}
}
1 change: 1 addition & 0 deletions sample/src/main/res/layout/activity_pip.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
style="@style/AppTheme.NoActionBar"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
Expand Down

0 comments on commit d652386

Please sign in to comment.