Mercurial > libervia-backend
comparison sat/plugins/plugin_misc_android.py @ 2624:56f94936df1e
code style reformatting using black
author | Goffi <goffi@goffi.org> |
---|---|
date | Wed, 27 Jun 2018 20:14:46 +0200 |
parents | 26edcf3a30eb |
children | 1048d8dc8a9d |
comparison
equal
deleted
inserted
replaced
2623:49533de4540b | 2624:56f94936df1e |
---|---|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. | 18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
19 | 19 |
20 from sat.core.i18n import _, D_ | 20 from sat.core.i18n import _, D_ |
21 from sat.core.constants import Const as C | 21 from sat.core.constants import Const as C |
22 from sat.core.log import getLogger | 22 from sat.core.log import getLogger |
23 | |
23 log = getLogger(__name__) | 24 log = getLogger(__name__) |
24 from sat.core import exceptions | 25 from sat.core import exceptions |
25 import sys | 26 import sys |
26 import mmap | 27 import mmap |
27 | 28 |
30 C.PI_NAME: "Android ", | 31 C.PI_NAME: "Android ", |
31 C.PI_IMPORT_NAME: "android", | 32 C.PI_IMPORT_NAME: "android", |
32 C.PI_TYPE: C.PLUG_TYPE_MISC, | 33 C.PI_TYPE: C.PLUG_TYPE_MISC, |
33 C.PI_MAIN: "AndroidPlugin", | 34 C.PI_MAIN: "AndroidPlugin", |
34 C.PI_HANDLER: "no", | 35 C.PI_HANDLER: "no", |
35 C.PI_DESCRIPTION: D_("""Manage Android platform specificities, like pause or notifications""") | 36 C.PI_DESCRIPTION: D_( |
37 """Manage Android platform specificities, like pause or notifications""" | |
38 ), | |
36 } | 39 } |
37 | 40 |
38 if sys.platform != "android": | 41 if sys.platform != "android": |
39 raise exceptions.CancelError(u"this module is not needed on this platform") | 42 raise exceptions.CancelError(u"this module is not needed on this platform") |
40 | 43 |
41 from plyer import notification, vibrator | 44 from plyer import notification, vibrator |
42 | 45 |
43 PARAM_VIBRATE_CATEGORY = "Notifications" | 46 PARAM_VIBRATE_CATEGORY = "Notifications" |
44 PARAM_VIBRATE_NAME = "vibrate" | 47 PARAM_VIBRATE_NAME = "vibrate" |
45 PARAM_VIBRATE_LABEL = D_(u"Vibrate on notifications") | 48 PARAM_VIBRATE_LABEL = D_(u"Vibrate on notifications") |
49 | |
46 | 50 |
47 class AndroidPlugin(object): | 51 class AndroidPlugin(object): |
48 | 52 |
49 params = """ | 53 params = """ |
50 <params> | 54 <params> |
53 <param name="{param_name}" label="{param_label}" value="true" type="bool" security="0" /> | 57 <param name="{param_name}" label="{param_label}" value="true" type="bool" security="0" /> |
54 </category> | 58 </category> |
55 </individual> | 59 </individual> |
56 </params> | 60 </params> |
57 """.format( | 61 """.format( |
58 category_name = PARAM_VIBRATE_CATEGORY, | 62 category_name=PARAM_VIBRATE_CATEGORY, |
59 category_label = D_(PARAM_VIBRATE_CATEGORY), | 63 category_label=D_(PARAM_VIBRATE_CATEGORY), |
60 param_name = PARAM_VIBRATE_NAME, | 64 param_name=PARAM_VIBRATE_NAME, |
61 param_label = PARAM_VIBRATE_LABEL, | 65 param_label=PARAM_VIBRATE_LABEL, |
62 ) | 66 ) |
63 | 67 |
64 def __init__(self, host): | 68 def __init__(self, host): |
65 log.info(_("plugin Android initialization")) | 69 log.info(_("plugin Android initialization")) |
66 self.host = host | 70 self.host = host |
67 host.memory.updateParams(self.params) | 71 host.memory.updateParams(self.params) |
68 self.cagou_status_fd = open('.cagou_status', 'rb') | 72 self.cagou_status_fd = open(".cagou_status", "rb") |
69 self.cagou_status = mmap.mmap(self.cagou_status_fd.fileno(), 1, prot=mmap.PROT_READ) | 73 self.cagou_status = mmap.mmap( |
74 self.cagou_status_fd.fileno(), 1, prot=mmap.PROT_READ | |
75 ) | |
70 # we set a low priority because we want the notification to be sent after all plugins have done their job | 76 # we set a low priority because we want the notification to be sent after all plugins have done their job |
71 host.trigger.add("MessageReceived", self.messageReceivedTrigger, priority=-1000) | 77 host.trigger.add("MessageReceived", self.messageReceivedTrigger, priority=-1000) |
72 | 78 |
73 @property | 79 @property |
74 def cagou_active(self): | 80 def cagou_active(self): |
75 # 'R' status means Cagou is running in front | 81 # 'R' status means Cagou is running in front |
76 return self.cagou_status[0] == 'R' | 82 return self.cagou_status[0] == "R" |
77 | 83 |
78 def _notifyMessage(self, mess_data, client): | 84 def _notifyMessage(self, mess_data, client): |
79 # send notification if there is a message and it is not a groupchat | 85 # send notification if there is a message and it is not a groupchat |
80 if mess_data['message'] and mess_data['type'] != C.MESS_TYPE_GROUPCHAT: | 86 if mess_data["message"] and mess_data["type"] != C.MESS_TYPE_GROUPCHAT: |
81 message = mess_data['message'].itervalues().next() | 87 message = mess_data["message"].itervalues().next() |
82 try: | 88 try: |
83 subject = mess_data['subject'].itervalues().next() | 89 subject = mess_data["subject"].itervalues().next() |
84 except StopIteration: | 90 except StopIteration: |
85 subject = u'Cagou new message' | 91 subject = u"Cagou new message" |
86 | 92 |
87 notification.notify( | 93 notification.notify(title=subject, message=message) |
88 title = subject, | 94 if self.host.memory.getParamA( |
89 message = message | 95 PARAM_VIBRATE_NAME, PARAM_VIBRATE_CATEGORY, profile_key=client.profile |
90 ) | 96 ): |
91 if self.host.memory.getParamA(PARAM_VIBRATE_NAME, PARAM_VIBRATE_CATEGORY, profile_key=client.profile): | |
92 vibrator.vibrate() | 97 vibrator.vibrate() |
93 return mess_data | 98 return mess_data |
94 | 99 |
95 def messageReceivedTrigger(self, client, message_elt, post_treat): | 100 def messageReceivedTrigger(self, client, message_elt, post_treat): |
96 if not self.cagou_active: | 101 if not self.cagou_active: |