mirror of
https://gitlab.futo.org/videostreaming/grayjay.git
synced 2025-09-10 11:36:40 +00:00
Implemented to background button in pip.
This commit is contained in:
parent
18102a2a73
commit
bf7001b578
2 changed files with 25 additions and 1 deletions
|
@ -46,6 +46,8 @@ import com.futo.platformplayer.R
|
|||
import com.futo.platformplayer.Settings
|
||||
import com.futo.platformplayer.UIDialogs
|
||||
import com.futo.platformplayer.UISlideOverlays
|
||||
import com.futo.platformplayer.activities.MainActivity
|
||||
import com.futo.platformplayer.activities.SettingsActivity
|
||||
import com.futo.platformplayer.api.media.IPluginSourced
|
||||
import com.futo.platformplayer.api.media.LiveChatManager
|
||||
import com.futo.platformplayer.api.media.PlatformID
|
||||
|
@ -688,6 +690,20 @@ class VideoDetailView : ConstraintLayout {
|
|||
Logger.i(TAG, "MediaControlReceiver.onCloseReceived")
|
||||
onClose.emit()
|
||||
};
|
||||
MediaControlReceiver.onBackgroundReceived.subscribe(this) {
|
||||
Logger.i(TAG, "MediaControlReceiver.onBackgroundReceived")
|
||||
_player.switchToAudioMode();
|
||||
allowBackground = true;
|
||||
StateApp.instance.contextOrNull?.let {
|
||||
try {
|
||||
if (it is MainActivity) {
|
||||
it.moveTaskToBack(true)
|
||||
}
|
||||
} catch (e: Throwable) {
|
||||
Logger.i(TAG, "Failed to move task to back", e)
|
||||
}
|
||||
}
|
||||
};
|
||||
MediaControlReceiver.onSeekToReceived.subscribe(this) { handleSeek(it); };
|
||||
|
||||
_container_content_description.onClose.subscribe { switchContentView(_container_content_main); };
|
||||
|
@ -1141,6 +1157,7 @@ class VideoDetailView : ConstraintLayout {
|
|||
MediaControlReceiver.onNextReceived.remove(this);
|
||||
MediaControlReceiver.onPreviousReceived.remove(this);
|
||||
MediaControlReceiver.onCloseReceived.remove(this);
|
||||
MediaControlReceiver.onBackgroundReceived.remove(this);
|
||||
MediaControlReceiver.onSeekToReceived.remove(this);
|
||||
|
||||
val job = _jobHideResume;
|
||||
|
@ -2725,10 +2742,11 @@ class VideoDetailView : ConstraintLayout {
|
|||
else
|
||||
RemoteAction(Icon.createWithResource(context, R.drawable.ic_play_notif), context.getString(R.string.play), context.getString(R.string.resumes_the_video), MediaControlReceiver.getPlayIntent(context, 6));
|
||||
|
||||
val toBackgroundAction = RemoteAction(Icon.createWithResource(context, R.drawable.ic_screen_share), context.getString(R.string.background), context.getString(R.string.background_switch_audio), MediaControlReceiver.getToBackgroundIntent(context, 7));
|
||||
return PictureInPictureParams.Builder()
|
||||
.setAspectRatio(Rational(videoSourceWidth, videoSourceHeight))
|
||||
.setSourceRectHint(r)
|
||||
.setActions(listOf(playpauseAction))
|
||||
.setActions(listOf(toBackgroundAction, playpauseAction))
|
||||
.build();
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ class MediaControlReceiver : BroadcastReceiver() {
|
|||
EVENT_NEXT -> onNextReceived.emit();
|
||||
EVENT_PREV -> onPreviousReceived.emit();
|
||||
EVENT_CLOSE -> onCloseReceived.emit();
|
||||
EVENT_BACKGROUND -> onBackgroundReceived.emit();
|
||||
}
|
||||
}
|
||||
catch(ex: Throwable) {
|
||||
|
@ -38,6 +39,7 @@ class MediaControlReceiver : BroadcastReceiver() {
|
|||
const val EVENT_NEXT = "Next";
|
||||
const val EVENT_PREV = "Prev";
|
||||
const val EVENT_CLOSE = "Close";
|
||||
const val EVENT_BACKGROUND = "Background";
|
||||
|
||||
val onPlayReceived = Event0();
|
||||
val onPauseReceived = Event0();
|
||||
|
@ -48,6 +50,7 @@ class MediaControlReceiver : BroadcastReceiver() {
|
|||
val onLowerVolumeReceived = Event0();
|
||||
|
||||
val onCloseReceived = Event0()
|
||||
val onBackgroundReceived = Event0()
|
||||
|
||||
fun getPlayIntent(context: Context, code: Int = 0) : PendingIntent = PendingIntent.getBroadcast(context, code, Intent(context, MediaControlReceiver::class.java).apply {
|
||||
this.putExtra(EXTRA_MEDIA_ACTION, EVENT_PLAY);
|
||||
|
@ -64,5 +67,8 @@ class MediaControlReceiver : BroadcastReceiver() {
|
|||
fun getCloseIntent(context: Context, code: Int = 0) : PendingIntent = PendingIntent.getBroadcast(context, code, Intent(context, MediaControlReceiver::class.java).apply {
|
||||
this.putExtra(EXTRA_MEDIA_ACTION, EVENT_CLOSE);
|
||||
},PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
fun getToBackgroundIntent(context: Context, code: Int = 0) : PendingIntent = PendingIntent.getBroadcast(context, code, Intent(context, MediaControlReceiver::class.java).apply {
|
||||
this.putExtra(EXTRA_MEDIA_ACTION, EVENT_BACKGROUND);
|
||||
},PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue