diff --git a/new-player/src/main/java/net/newpipe/newplayer/VideoPlayerView.kt b/new-player/src/main/java/net/newpipe/newplayer/VideoPlayerView.kt index 3e739cd..df5e22b 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/VideoPlayerView.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/VideoPlayerView.kt @@ -35,6 +35,12 @@ import net.newpipe.newplayer.ui.theme.VideoPlayerTheme class VideoPlayerView : FrameLayout { var viewModel: VideoPlayerViewModel? = null + set(value) { + field = value + applyViewModel() + } + + val composeView:ComposeView @JvmOverloads constructor( @@ -43,8 +49,12 @@ class VideoPlayerView : FrameLayout { defStyleAttr: Int = 0 ) : super(context, attrs, defStyleAttr) { val view = LayoutInflater.from(context).inflate(R.layout.video_player_view, this) - val composeView = view.findViewById(R.id.video_player_compose_view) + composeView = view.findViewById(R.id.video_player_compose_view) + applyViewModel() + } + + private fun applyViewModel() { composeView.apply { setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnViewTreeLifecycleDestroyed) setContent { @@ -53,6 +63,6 @@ class VideoPlayerView : FrameLayout { } } } - } + } \ No newline at end of file diff --git a/test-app/src/main/java/net/newpipe/newplayer/testapp/MainActivity.kt b/test-app/src/main/java/net/newpipe/newplayer/testapp/MainActivity.kt index ac4c417..df22b4f 100644 --- a/test-app/src/main/java/net/newpipe/newplayer/testapp/MainActivity.kt +++ b/test-app/src/main/java/net/newpipe/newplayer/testapp/MainActivity.kt @@ -22,7 +22,6 @@ package net.newpipe.newplayer.testapp import android.os.Bundle import android.view.View -import android.webkit.RenderProcessGoneDetail import android.widget.Button import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels @@ -52,15 +51,15 @@ class MainActivity : AppCompatActivity() { enableEdgeToEdge() setContentView(R.layout.activity_main) - val video_view = findViewById(R.id.new_player_video_view) - val start_stream_button = findViewById