mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-12-23 05:16:58 +00:00
Keep screen on while video is playing. Closes https://github.com/austinhuang0131/barinsta/issues/490
This commit is contained in:
parent
ee36ba8c35
commit
8e32958da6
@ -12,4 +12,7 @@ public class SliderCallbackAdapter implements SliderItemsAdapter.SliderCallback
|
||||
|
||||
@Override
|
||||
public void onPlayerPause(final int position) {}
|
||||
|
||||
@Override
|
||||
public void onPlayerRelease(final int position) {}
|
||||
}
|
||||
|
@ -148,5 +148,7 @@ public final class SliderItemsAdapter extends ListAdapter<Media, SliderItemViewH
|
||||
void onPlayerPlay(int position);
|
||||
|
||||
void onPlayerPause(int position);
|
||||
|
||||
void onPlayerRelease(int position);
|
||||
}
|
||||
}
|
||||
|
@ -114,6 +114,13 @@ public class SliderVideoViewHolder extends SliderItemViewHolder {
|
||||
sliderCallback.onPlayerPause(position);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRelease() {
|
||||
if (sliderCallback != null) {
|
||||
sliderCallback.onPlayerRelease(position);
|
||||
}
|
||||
}
|
||||
};
|
||||
final float aspectRatio = (float) media.getOriginalWidth() / media.getOriginalHeight();
|
||||
String videoUrl = null;
|
||||
|
@ -15,4 +15,7 @@ public class VideoPlayerCallbackAdapter implements VideoPlayerViewHelper.VideoPl
|
||||
|
||||
@Override
|
||||
public void onPause() {}
|
||||
|
||||
@Override
|
||||
public void onRelease() {}
|
||||
}
|
||||
|
@ -359,6 +359,9 @@ public class VideoPlayerViewHelper implements Player.EventListener {
|
||||
// }
|
||||
|
||||
public void releasePlayer() {
|
||||
if (videoPlayerCallback != null) {
|
||||
videoPlayerCallback.onRelease();
|
||||
}
|
||||
if (player != null) {
|
||||
player.release();
|
||||
player = null;
|
||||
@ -453,5 +456,7 @@ public class VideoPlayerViewHelper implements Player.EventListener {
|
||||
void onPlay();
|
||||
|
||||
void onPause();
|
||||
|
||||
void onRelease();
|
||||
}
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ import androidx.core.content.PermissionChecker;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.widget.NestedScrollView;
|
||||
import androidx.fragment.app.DialogFragment;
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.Observer;
|
||||
@ -1062,15 +1063,28 @@ public class PostViewV2Fragment extends SharedElementTransitionDialogFragment im
|
||||
|
||||
@Override
|
||||
public void onPlayerPlay(final int position) {
|
||||
final FragmentActivity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
Utils.enabledKeepScreenOn(activity);
|
||||
if (!detailsVisible || hasBeenToggled) return;
|
||||
showPlayerControls();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerPause(final int position) {
|
||||
final FragmentActivity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
Utils.disableKeepScreenOn(activity);
|
||||
if (detailsVisible || hasBeenToggled) return;
|
||||
toggleDetails();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPlayerRelease(final int position) {
|
||||
final FragmentActivity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
Utils.disableKeepScreenOn(activity);
|
||||
}
|
||||
});
|
||||
binding.sliderParent.setAdapter(sliderItemsAdapter);
|
||||
if (sliderPosition >= 0 && sliderPosition < media.getCarouselMedia().size()) {
|
||||
@ -1218,10 +1232,27 @@ public class PostViewV2Fragment extends SharedElementTransitionDialogFragment im
|
||||
|
||||
@Override
|
||||
public void onPlay() {
|
||||
final FragmentActivity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
Utils.enabledKeepScreenOn(activity);
|
||||
if (detailsVisible) {
|
||||
new Handler().postDelayed(() -> toggleDetails(), DETAILS_HIDE_DELAY_MILLIS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
final FragmentActivity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
Utils.disableKeepScreenOn(activity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRelease() {
|
||||
final FragmentActivity activity = getActivity();
|
||||
if (activity == null) return;
|
||||
Utils.disableKeepScreenOn(activity);
|
||||
}
|
||||
};
|
||||
final float aspectRatio = (float) media.getOriginalWidth() / media.getOriginalHeight();
|
||||
String videoUrl = null;
|
||||
|
@ -359,4 +359,16 @@ public final class Utils {
|
||||
}
|
||||
return drawable;
|
||||
}
|
||||
|
||||
public static void enabledKeepScreenOn(@NonNull final Activity activity) {
|
||||
final Window window = activity.getWindow();
|
||||
if (window == null) return;
|
||||
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
|
||||
public static void disableKeepScreenOn(@NonNull final Activity activity) {
|
||||
final Window window = activity.getWindow();
|
||||
if (window == null) return;
|
||||
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user