mirror of
https://github.com/TeamNewPipe/NewPipe
synced 2024-12-22 16:10:31 +00:00
WIP: Correctly initialize NewPlayerViewModel
We need to pass the viewModel to the view after inflating our player for the UI to render.
This commit is contained in:
parent
c013a3ed65
commit
b351692eea
@ -58,8 +58,6 @@ import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior;
|
||||
|
||||
import net.newpipe.newplayer.NewPlayer;
|
||||
|
||||
import org.schabi.newpipe.databinding.ActivityMainBinding;
|
||||
import org.schabi.newpipe.databinding.DrawerHeaderBinding;
|
||||
import org.schabi.newpipe.databinding.DrawerLayoutBinding;
|
||||
@ -110,9 +108,6 @@ public class MainActivity extends AppCompatActivity {
|
||||
@SuppressWarnings("ConstantConditions")
|
||||
public static final boolean DEBUG = !BuildConfig.BUILD_TYPE.equals("release");
|
||||
|
||||
@Inject
|
||||
NewPlayer newPlayer;
|
||||
|
||||
private ActivityMainBinding mainBinding;
|
||||
private DrawerHeaderBinding drawerHeaderBinding;
|
||||
private DrawerLayoutBinding drawerLayoutBinding;
|
||||
|
@ -54,6 +54,9 @@ import androidx.appcompat.widget.Toolbar;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.LifecycleOwnerKt;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
import androidx.preference.PreferenceManager;
|
||||
|
||||
import com.evernote.android.state.State;
|
||||
@ -65,6 +68,10 @@ import com.google.android.material.tabs.TabLayout;
|
||||
|
||||
import net.newpipe.newplayer.NewPlayer;
|
||||
import net.newpipe.newplayer.data.PlayMode;
|
||||
import net.newpipe.newplayer.ui.ContentScale;
|
||||
import net.newpipe.newplayer.ui.NewPlayerView;
|
||||
import net.newpipe.newplayer.uiModel.NewPlayerViewModel;
|
||||
import net.newpipe.newplayer.uiModel.NewPlayerViewModelImpl;
|
||||
|
||||
import org.schabi.newpipe.App;
|
||||
import org.schabi.newpipe.R;
|
||||
@ -138,7 +145,9 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable;
|
||||
import io.reactivex.rxjava3.disposables.Disposable;
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers;
|
||||
import kotlinx.coroutines.CoroutineScopeKt;
|
||||
|
||||
@UnstableApi
|
||||
@AndroidEntryPoint
|
||||
public final class VideoDetailFragment
|
||||
extends BaseStateFragment<StreamInfo>
|
||||
@ -240,6 +249,7 @@ public final class VideoDetailFragment
|
||||
// private Player player;
|
||||
@Inject
|
||||
NewPlayer newPlayer;
|
||||
NewPlayerViewModel newPlayerViewModel;
|
||||
// private final PlayerHolder playerHolder = PlayerHolder.getInstance();
|
||||
|
||||
// /*//////////////////////////////////////////////////////////////////////////
|
||||
@ -316,6 +326,10 @@ public final class VideoDetailFragment
|
||||
public void onCreate(final Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
newPlayerViewModel = new ViewModelProvider(this).get(NewPlayerViewModelImpl.class);
|
||||
newPlayerViewModel.setNewPlayer(this.newPlayer);
|
||||
newPlayerViewModel.setContentFitMode(ContentScale.FIT_INSIDE);
|
||||
|
||||
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);
|
||||
showComments = prefs.getBoolean(getString(R.string.show_comments_key), true);
|
||||
showRelatedItems = prefs.getBoolean(getString(R.string.show_next_video_key), true);
|
||||
@ -1267,8 +1281,10 @@ public final class VideoDetailFragment
|
||||
// setup the surface view height, so that it fits the video correctly
|
||||
setHeightThumbnail();
|
||||
|
||||
getLayoutInflater().inflate(
|
||||
final View v = getLayoutInflater().inflate(
|
||||
R.layout.fragment_newplayer_view, binding.playerPlaceholder);
|
||||
final NewPlayerView npv = v.findViewById(R.id.embedded_player_newplayer);
|
||||
npv.setViewModel(newPlayerViewModel);
|
||||
|
||||
// player.UIs().get(MainPlayerUi.class).ifPresent(playerUi -> {
|
||||
// // sometimes binding would be null here, even though getView() != null above u.u
|
||||
|
Loading…
Reference in New Issue
Block a user