package ml.docilealligator.infinityforreddit.bottomsheetfragments; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import ml.docilealligator.infinityforreddit.R; import ml.docilealligator.infinityforreddit.activities.ViewImgurMediaActivity; import ml.docilealligator.infinityforreddit.activities.ViewRedditGalleryActivity; import ml.docilealligator.infinityforreddit.activities.ViewVideoActivity; import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment; import ml.docilealligator.infinityforreddit.databinding.FragmentPlaybackSpeedBinding; import ml.docilealligator.infinityforreddit.fragments.ViewImgurVideoFragment; import ml.docilealligator.infinityforreddit.fragments.ViewRedditGalleryVideoFragment; import ml.docilealligator.infinityforreddit.utils.Utils; public class PlaybackSpeedBottomSheetFragment extends LandscapeExpandedRoundedBottomSheetDialogFragment { public static final String EXTRA_PLAYBACK_SPEED = "EPS"; private Activity activity; public PlaybackSpeedBottomSheetFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment FragmentPlaybackSpeedBinding binding = FragmentPlaybackSpeedBinding.inflate(inflater, container, false); int playbackSpeed = getArguments().getInt(EXTRA_PLAYBACK_SPEED, ViewVideoActivity.PLAYBACK_SPEED_NORMAL); switch (playbackSpeed) { case ViewVideoActivity.PLAYBACK_SPEED_25: binding.playbackSpeed025TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_50: binding.playbackSpeed050TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_75: binding.playbackSpeed075TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_NORMAL: binding.playbackSpeedNormalTextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_125: binding.playbackSpeed125TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_150: binding.playbackSpeed150TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_175: binding.playbackSpeed175TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; case ViewVideoActivity.PLAYBACK_SPEED_200: binding.playbackSpeed200TextViewPlaybackSpeedBottomSheetFragment.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_playback_speed_day_night_24dp, 0); break; } binding.playbackSpeed025TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_25); dismiss(); }); binding.playbackSpeed050TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_50); dismiss(); }); binding.playbackSpeed075TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_75); dismiss(); }); binding.playbackSpeedNormalTextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_NORMAL); dismiss(); }); binding.playbackSpeed125TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_125); dismiss(); }); binding.playbackSpeed150TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_150); dismiss(); }); binding.playbackSpeed175TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_175); dismiss(); }); binding.playbackSpeed200TextViewPlaybackSpeedBottomSheetFragment.setOnClickListener(view -> { setPlaybackSpeed(ViewVideoActivity.PLAYBACK_SPEED_200); dismiss(); }); if (activity instanceof ViewVideoActivity) { if (((ViewVideoActivity) activity).typeface != null) { Utils.setFontToAllTextViews(binding.getRoot(), ((ViewVideoActivity) activity).typeface); } } else if (activity instanceof ViewImgurMediaActivity) { if (((ViewImgurMediaActivity) activity).typeface != null) { Utils.setFontToAllTextViews(binding.getRoot(), ((ViewImgurMediaActivity) activity).typeface); } } else if (activity instanceof ViewRedditGalleryActivity) { if (((ViewRedditGalleryActivity) activity).typeface != null) { Utils.setFontToAllTextViews(binding.getRoot(), ((ViewRedditGalleryActivity) activity).typeface); } } return binding.getRoot(); } private void setPlaybackSpeed(int playbackSpeed) { if (activity instanceof ViewVideoActivity) { ((ViewVideoActivity) activity).setPlaybackSpeed(playbackSpeed); } else { Fragment parentFragment = getParentFragment(); if (parentFragment instanceof ViewImgurVideoFragment) { ((ViewImgurVideoFragment) parentFragment).setPlaybackSpeed(playbackSpeed); } else if (parentFragment instanceof ViewRedditGalleryVideoFragment) { ((ViewRedditGalleryVideoFragment) parentFragment).setPlaybackSpeed(playbackSpeed); } } } @Override public void onAttach(@NonNull Context context) { super.onAttach(context); activity = (Activity) context; } }