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 18bd892..1b89922 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/VideoPlayerView.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/VideoPlayerView.kt @@ -45,9 +45,6 @@ class VideoPlayerView : FrameLayout { get() = videoPlayerFragment.minLayoutRatio set(value) {videoPlayerFragment.minLayoutRatio = value} - var newPlayer:NewPlayer? - set(value) {videoPlayerFragment.newPlayer = value} - get() = videoPlayerFragment.newPlayer @JvmOverloads constructor( diff --git a/new-player/src/main/java/net/newpipe/newplayer/internal/VideoPlayerFragment.kt b/new-player/src/main/java/net/newpipe/newplayer/internal/VideoPlayerFragment.kt index 1859966..43ba76d 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/internal/VideoPlayerFragment.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/internal/VideoPlayerFragment.kt @@ -41,24 +41,15 @@ import net.newpipe.newplayer.internal.model.VideoPlayerViewModelImpl import net.newpipe.newplayer.internal.ui.VideoPlayerUI import net.newpipe.newplayer.internal.ui.theme.VideoPlayerTheme +private const val TAG = "VideoPlayerFragment" + @AndroidEntryPoint class VideoPlayerFragment() : Fragment() { - private val TAG = "VideoPlayerFragment" private val viewModel: VideoPlayerViewModel by viewModels() private var currentVideoRatio = 0F private lateinit var composeView: ComposeView - var newPlayer: NewPlayer? = null - set(value) { - if(context != null) { - viewModel.newPlayer = value - } else { - field = value - } - } - get() = viewModel.newPlayer ?: field - var minLayoutRatio = 4F / 3F set(value) { if (value <= 0 && maxLayoutRatio < minLayoutRatio) @@ -98,11 +89,6 @@ class VideoPlayerFragment() : Fragment() { val view = inflater.inflate(R.layout.video_player_framgent, container, false) composeView = view.findViewById(R.id.player_copose_view) - // late init player in case player was set before fragment was attached to a context - if (viewModel.newPlayer == null) { - viewModel.newPlayer = newPlayer - } - viewModel.listener = object : VideoPlayerViewModel.Listener { override fun requestUpdateLayoutRatio(videoRatio: Float) { currentVideoRatio = videoRatio diff --git a/new-player/src/main/java/net/newpipe/newplayer/internal/model/VideoPlayerViewModel.kt b/new-player/src/main/java/net/newpipe/newplayer/internal/model/VideoPlayerViewModel.kt index 4dcb204..bfc6349 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/internal/model/VideoPlayerViewModel.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/internal/model/VideoPlayerViewModel.kt @@ -87,7 +87,8 @@ interface VideoPlayerViewModel { @HiltViewModel class VideoPlayerViewModelImpl @Inject constructor( private val savedStateHandle: SavedStateHandle, - application: Application + application: Application, + override var newPlayer: NewPlayer? ) : AndroidViewModel(application), VideoPlayerViewModel { // private @@ -99,20 +100,20 @@ class VideoPlayerViewModelImpl @Inject constructor( override val uiState = mutableUiState.asStateFlow() override val events: SharedFlow = mutableEvent override var listener: VideoPlayerViewModel.Listener? = null - override var newPlayer: NewPlayer? = null - set(value) { - field = value - installExoPlayer() - } + override val player:Player? get() = newPlayer?.player + init { + installExoPlayer() + } + private fun installExoPlayer() { player?.let { player -> player.addListener(object : Player.Listener { override fun onIsPlayingChanged(isPlaying: Boolean) { super.onIsPlayingChanged(isPlaying) - println("gurken playerstate: $isPlaying") + mutableUiState.update { it.copy(playing = isPlaying) } @@ -163,7 +164,6 @@ class VideoPlayerViewModelImpl @Inject constructor( } override fun play() { - println("gurken player: $newPlayer") newPlayer?.play() } diff --git a/new-player/src/main/java/net/newpipe/newplayer/internal/ui/VideoPlayerUI.kt b/new-player/src/main/java/net/newpipe/newplayer/internal/ui/VideoPlayerUI.kt index 893d5d5..2b5e299 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/internal/ui/VideoPlayerUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/internal/ui/VideoPlayerUI.kt @@ -112,13 +112,11 @@ fun VideoPlayerUI( modifier = Modifier.fillMaxSize(), factory = { context -> SurfaceView(context).also { view -> - println("gurken attach player: ${viewModel.player}") viewModel.player?.setVideoSurfaceView(view) } }, update = { view -> when (lifecycle) { Lifecycle.Event.ON_RESUME -> { - println("gurken reattach player: ${viewModel.player}") viewModel.player?.setVideoSurfaceView(view) } 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 a8bdf74..35987d5 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 @@ -43,7 +43,6 @@ class MainActivity : AppCompatActivity() { setContentView(R.layout.activity_main) val video_view = findViewById(R.id.new_player_video_view) - video_view.newPlayer = newPlayer newPlayer.playWhenReady = true newPlayer.setStream(getString(R.string.ccc_chromebooks_video))