1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -04:00
PySolFC/pysollib/kivy/androidrot.py
lufebe16 e7a1979477 android version:
- screen rotation lock added as proposed by issue #320
- triggered (maybe experimental) by a long tap (5 seconds) to the play ground.
2023-09-16 15:27:58 +02:00

46 lines
1.4 KiB
Python

# flake8: noqa
# LB230914.
from pysollib.kivy.androidtoast import AndroidToaster
from pysollib.mygettext import _
try:
import jnius
except ImportError:
jnius = None
class AndroidRot(object):
def __init__(self):
self.locked = False
if jnius is None:
return
self.PythonActivity = jnius.autoclass('org.kivy.android.PythonActivity')
self.ActivityInfo = jnius.autoclass('android.content.pm.ActivityInfo')
self.currentActivity = jnius.cast('android.app.Activity', self.PythonActivity.mActivity)
def isLocked(self):
return self.locked
def lock(self):
if jnius is not None:
self.currentActivity.setRequestedOrientation(
self.ActivityInfo.SCREEN_ORIENTATION_LOCKED)
self.locked = True
def unlock(self):
if jnius is not None:
self.currentActivity.setRequestedOrientation(
self.ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR)
self.locked = False
def toggle(self):
if self.locked:
self.unlock()
if jnius is not None:
AndroidToaster.toastShort(_("screen rotation enabled"))
else:
self.lock()
if jnius is not None:
AndroidToaster.toastShort(_("screen rotation disabled"))
return self.isLocked()
AndroidScreenRotation = AndroidRot()