def on_start(self): self.service = None self.queue = Queue() self.query_thread = QueryThread(self.queue) self.start_service() self.root.init()
class CalendarApp(App): def __init__(self, **kwargs): super(CalendarApp, self).__init__(**kwargs) self.service = None self.queue = None self.query_thread = None def on_start(self): self.service = None self.queue = Queue() self.query_thread = QueryThread(self.queue) self.start_service() self.root.init() def on_stop(self): self.query_thread.on_stop() def on_pause(self): self.query_thread.on_pause() return True def on_resume(self): self.query_thread.on_resume() return True def do_refresh(self): self.queue.put(Refresh()) def do_ping(self): self.queue.put(Ping()) def do_modify(self, operations): self.queue.put(Modify(operations)) def build_config(self, config): # config.setdefaults('credentials', # {'username' : "PA0013282", # 'password' : "w7gYg3DT"}) config.setdefaults('credentials', {'username': "", 'password': ""}) config.setdefaults('network', {'host': "79.148.237.226"}) config.setdefaults('general', {'pattern': ""}) config.setdefaults('timers', {'data_refresh': 5, 'frequency': 120, 'frequency2': 5, 'timeout': 15}) def start_service(self): if self.service is not None: return L.info("Trying to start service") if platform == 'android': from android import AndroidService service = AndroidService('AndroidPark(ing)', 'en ejecución...') service.start('service started') self.service = service def stop_service(self): if self.service is None: return L.info("Trying to stop service") if platform == 'android': from android import AndroidService self.service.stop() self.service = None def build_settings(self, settings): settings.register_type("password", SettingPassword) settings.register_type("bounded_numeric", SettingBoundedNumeric) jsondata = """ [ { "type": "title", "title": "Android Park" }, { "type": "string", "title": "Nombre de Usuario", "desc": "Nombre de usuario en la web del parking", "section": "credentials", "key": "username" }, { "type": "password", "title": "Password", "desc": "Password para la web del parking", "section": "credentials", "key": "password" }, { "type": "string", "title": "Patrón automático", "desc": "Patrón (e.g. L,M,X,J,V) que se aplicará cuando se abre un mes", "section": "general", "key": "pattern" }, { "type": "string", "title": "Host", "desc": "Web del parking", "section": "network", "key": "host" }, { "type": "bounded_numeric", "min": 0, "max": 1440, "title": "Refresco de datos", "desc": "Tiempo en minutos entre consultas al servidor para refrescar los datos [0-1440], 0 significa que no se refrescará", "section": "timers", "key": "data_refresh" }, { "type": "bounded_numeric", "title": "Reintentos", "min": 0, "max": 1440, "desc": "Tiempo en minutos entre reintentos de peticiones al servidor (00:00-14:59/17:30-23:59) [0-1440], 0 significa que no se reintentará", "section": "timers", "key": "frequency" }, { "type": "bounded_numeric", "title": "Reintentos en la repesca", "min": 0, "max": 1440, "desc": "Tiempo en minutos entre reintentos de peticiones al servidor (15:00-17:30) [0-1440], 0 significa que no se reintentará", "section": "timers", "key": "frequency2" }, { "type": "bounded_numeric", "title": "Temporizador de Servicio", "min": 1, "max": 60, "desc": "Timeout en segundos de la comunicacion App y Service [1-60]", "section": "timers", "key": "timeout" } ] """ settings.add_json_panel('Android Park', self.config, data=jsondata) def on_config_change(self, config, section, key, value): self.root.refresh_request()