11import os
22
3+ from .helper import has_androidx_dependency , on_pydroid_app
34from .logger import logger
45
56def on_android_platform ():
@@ -12,14 +13,16 @@ def on_android_platform():
1213 return True
1314 return os .getenv ("MAIN_ACTIVITY_HOST_CLASS_NAME" )
1415
16+ def on_flet_app ():
17+ return os .getenv ("MAIN_ACTIVITY_HOST_CLASS_NAME" )
1518
1619if on_android_platform ():
1720 try :
1821 from jnius import cast , autoclass
1922 except ModuleNotFoundError :
2023 cast = lambda x , y : x
2124 autoclass = lambda x : None
22- logger .exception ("run pip install pyjnius " )
25+ logger .exception ("add pyjnius to dependencies list " )
2326
2427 # Leaving this as a broad Exception for unforeseen case so apps don't crash
2528 # noinspection PyBroadException
@@ -38,32 +41,55 @@ def on_android_platform():
3841 Uri = autoclass ("android.net.Uri" )
3942 Manifest = autoclass ('android.Manifest$permission' )
4043 Context = autoclass ('android.content.Context' )
44+ PackageManager = autoclass ("android.content.pm.PackageManager" )
45+ AudioAttributes = autoclass ('android.media.AudioAttributes' )
46+ AudioAttributesBuilder = autoclass ('android.media.AudioAttributes$Builder' )
47+ File = autoclass ('java.io.File' )
4148 Color = autoclass ('android.graphics.Color' )
42- IconClass = autoclass ('androidx.core.graphics.drawable.IconCompat' )
4349 except Exception as e :
4450 from .facade import *
4551 logger .exception ("Didn't get Basic Java Classes" )
4652
47- # noinspection PyBroadException
48- try :
49- NotificationManagerCompat = autoclass ('androidx.core.app.NotificationManagerCompat' )
50- NotificationCompat = autoclass ('androidx.core.app.NotificationCompat' )
51- NotificationCompatBuilder = autoclass ('androidx.core.app.NotificationCompat$Builder' )
53+ if on_flet_app () or on_pydroid_app () or not has_androidx_dependency ():
54+ # Leaving this as a broad Exception for unforeseen case so apps don't crash
55+ # noinspection PyBroadException
56+ try :
57+ IconClass = autoclass ('android.graphics.drawable.Icon' )
58+ NotificationCompat = autoclass ("android.app.Notification" )
59+ NotificationManagerCompat = autoclass ('android.app.NotificationManager' )
60+ NotificationCompatBuilder = autoclass ('android.app.Notification$Builder' )
5261
53- # Notification Design
54- NotificationCompatBigTextStyle = autoclass ('androidx.core.app.NotificationCompat$BigTextStyle' )
55- NotificationCompatBigPictureStyle = autoclass ('androidx.core.app.NotificationCompat$BigPictureStyle' )
56- NotificationCompatInboxStyle = autoclass ('androidx.core.app.NotificationCompat$InboxStyle' )
57- NotificationCompatDecoratedCustomViewStyle = autoclass ('androidx.core.app.NotificationCompat$DecoratedCustomViewStyle' )
62+ NotificationCompatBigTextStyle = autoclass ('android.app.Notification$BigTextStyle' )
63+ NotificationCompatBigPictureStyle = autoclass ('android.app.Notification$BigPictureStyle' )
64+ NotificationCompatInboxStyle = autoclass ('android.app.Notification$InboxStyle' )
65+ NotificationCompatDecoratedCustomViewStyle = autoclass ('android.app.Notification$DecoratedCustomViewStyle' )
66+ except Exception as styles_import_error :
67+ logger .exception (styles_import_error )
68+ from .facade import *
69+ elif has_androidx_dependency ():
5870
59- except Exception as dependencies_import_error :
60- logger .exception ("""
61- Dependency Error: Add the following in buildozer.spec:
62- * android.gradle_dependencies = androidx.core:core:1.12.0
63- * android.enable_androidx = True
64- """ )
71+ # Leaving this as a broad Exception for unforeseen case so apps don't crash
72+ # noinspection PyBroadException
73+ try :
74+ IconClass = autoclass ('androidx.core.graphics.drawable.IconCompat' )
75+ NotificationCompat = autoclass ('androidx.core.app.NotificationCompat' )
76+ NotificationManagerCompat = autoclass ('androidx.core.app.NotificationManagerCompat' )
77+ NotificationCompatBuilder = autoclass ('androidx.core.app.NotificationCompat$Builder' )
6578
66- from .facade import *
79+ # Notification Design
80+ NotificationCompatBigTextStyle = autoclass ('androidx.core.app.NotificationCompat$BigTextStyle' )
81+ NotificationCompatBigPictureStyle = autoclass ('androidx.core.app.NotificationCompat$BigPictureStyle' )
82+ NotificationCompatInboxStyle = autoclass ('androidx.core.app.NotificationCompat$InboxStyle' )
83+ NotificationCompatDecoratedCustomViewStyle = autoclass ('androidx.core.app.NotificationCompat$DecoratedCustomViewStyle' )
84+
85+ except Exception as dependencies_import_error :
86+ logger .exception ("""
87+ Dependency Error: Add the following in buildozer.spec:
88+ * android.gradle_dependencies = androidx.core:core:1.12.0
89+ * android.enable_androidx = True
90+ """ )
91+
92+ from .facade import *
6793else :
6894 cast = lambda x , y : x
6995 autoclass = lambda x : None
0 commit comments