blob: bfc3a254fb60f3b51b7cb35f2738a4c7150e18e0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
from jnius import autoclass
from plyer.facades import Notification
from plyer.platforms.android import activity, SDK_INT
AndroidString = autoclass('java.lang.String')
Context = autoclass('android.content.Context')
NotificationBuilder = autoclass('android.app.Notification$Builder')
Drawable = autoclass("{}.R$drawable".format(activity.getPackageName()))
class AndroidNotification(Notification):
def _get_notification_service(self):
if not hasattr(self, '_ns'):
self._ns = activity.getSystemService(Context.NOTIFICATION_SERVICE)
return self._ns
def _notify(self, **kwargs):
icon = getattr(Drawable, kwargs.get('icon_android', 'icon'))
noti = NotificationBuilder(activity)
noti.setContentTitle(AndroidString(
kwargs.get('title').encode('utf-8')))
noti.setContentText(AndroidString(
kwargs.get('message').encode('utf-8')))
noti.setSmallIcon(icon)
noti.setAutoCancel(True)
if SDK_INT >= 16:
noti = noti.build()
else:
noti = noti.getNotification()
self._get_notification_service().notify(0, noti)
def instance():
return AndroidNotification()
|