Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: Auto Rotate not working after setRequestedOrientation

I have a video player in which I have two features:

  1. If the auto-rotate is disabled and when the user clicks on fullscreen button I force the orientation to go in landscape view using setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE) and back to portrait view when fullscreen is exited.

  2. I have overridden the onConfigurationChanged to detect the change in orientation when the auto-rotate feature is enabled by user and change the activity view according to the orientation.

Now the problem with this setup is that if user start the activity and goes in fullscreen and setRequestedOrientation get invoked once, later when auto-rotate is enabled, the activity doesn't receive the orientation changes and the onConfigurationChanged doesn't get called.

I read here (https://stackoverflow.com/a/6109206/5167868) that they wont work simultaneously.

I would like to know if there a way of implementing both as I have seen players like MX Player do this in their app.

like image 656
Suhas Shelar Avatar asked Feb 17 '17 12:02

Suhas Shelar


Video Answer


1 Answers

After you fix the orientation of the screen by using setRequestedOrientation(), Auto Rotate feature won't work. So to make it work, you may do something like this:

After you set your orientation using: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE)

Call this: setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED)

This shall make the auto rotate to work again!

like image 184
Chirag Maheshwari Avatar answered Sep 27 '22 17:09

Chirag Maheshwari