22
33__version__ = "1.61.3"
44
5- from .internal .java_classes import autoclass , cast , NotificationManager
65from .internal .logger import logger
76
8-
97def on_kivy_android ():
108 kivy_build = os .environ .get ('KIVY_BUILD' , '' )
119 if kivy_build in {'android' }:
@@ -26,6 +24,37 @@ def on_android_platform():
2624 return on_kivy_android () or on_flet_app ()
2725
2826
27+ if on_android_platform ():
28+ try :
29+ from jnius import cast , autoclass
30+ except ModuleNotFoundError :
31+ cast = lambda x , y : x
32+ autoclass = lambda x : None
33+ else :
34+ cast = lambda x , y : x
35+ autoclass = lambda x : None
36+
37+
38+ def on_pydroid_app ():
39+ package_name = "ru.iiec.pydroid3"
40+ if package_name in os .environ .get ("PYTHONHOME" ,"" ):
41+ return True
42+ elif package_name in os .path .dirname (os .path .abspath (__file__ )):
43+ return True
44+ elif on_android_platform ():
45+ return package_name == get_package_name ()
46+ return False
47+
48+
49+ def has_androidx_dependency ():
50+ """Check if androidx dependencies are available"""
51+ try :
52+ _ = autoclass ('androidx.core.app.NotificationCompat' )
53+ return True
54+ except Exception :
55+ return False
56+
57+
2958def get_activity_class_name ():
3059 ACTIVITY_CLASS_NAME = os .getenv ("MAIN_ACTIVITY_HOST_CLASS_NAME" ) # flet python
3160 if not ACTIVITY_CLASS_NAME :
@@ -98,6 +127,7 @@ def get_notification_manager():
98127 if not on_android_platform ():
99128 logger .warning ("Can't get notification manager, Not on Android." )
100129 return None
130+ NotificationManager = autoclass ('android.app.NotificationManager' )
101131
102132 context = get_python_activity_context ()
103133 notification_service = context .getSystemService (context .NOTIFICATION_SERVICE )
0 commit comments