44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
|
from jnius import autoclass
|
||
|
from plyer.platforms.android import activity
|
||
|
from plyer.facades import Orientation
|
||
|
|
||
|
ActivityInfo = autoclass('android.content.pm.ActivityInfo')
|
||
|
|
||
|
|
||
|
class AndroidOrientation(Orientation):
|
||
|
|
||
|
def _set_landscape(self, **kwargs):
|
||
|
reverse = kwargs.get('reverse')
|
||
|
if reverse:
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE)
|
||
|
else:
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)
|
||
|
|
||
|
def _set_portrait(self, **kwargs):
|
||
|
reverse = kwargs.get('reverse')
|
||
|
if reverse:
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT)
|
||
|
else:
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
|
||
|
|
||
|
def _set_sensor(self, **kwargs):
|
||
|
mode = kwargs.get('mode')
|
||
|
|
||
|
if mode == 'any':
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_SENSOR)
|
||
|
elif mode == 'landscape':
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE)
|
||
|
elif mode == 'portrait':
|
||
|
activity.setRequestedOrientation(
|
||
|
ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT)
|
||
|
|
||
|
|
||
|
def instance():
|
||
|
return AndroidOrientation()
|