def on_ref_press(self, ref): ref = json.loads(ref) print(ref) if "action" in ref: handler.send_message(event=handler.EVENT_BOOKING_UPDATE, booking_id=ref["booking_id"], status=ref["action"]) elif "phone" in ref: dlg = InfoDialog() dlg.set_phone_and_name(ref["name"], ref["phone"]) dlg.open() elif "address" in ref: if Globals.settings["satnav"] == "google": navigate_google_maps("geo:0,0?q={},{}".format( ref["lat"], ref["lng"])) else: navigate_waze(ref["lat"], ref["lng"]) elif "destination" in ref: Globals.android_text2speak.speak( "Setting destination for {}".format(ref["username"])) if Globals.settings["satnav"] == "google": navigate_google_maps("geo:0,0?q={},{}".format( ref["lat"], ref["lng"])) else: navigate_waze(ref["lat"], ref["lng"]) elif "direct" in ref: phone_call(ref["direct"])
def on_start(self): """ initialize settings and start cabbot thread """ for name in os.environ.keys(): print("{}: {}".format(name, os.environ[name])) Globals.settings = load_settings() with open(Globals.DUMP_FILEPATH, "w") as fp: fp.write(f"Path={os.getcwd()} \n \n") Globals.app = self EventLoop.window.bind(on_keyboard=self.on_keyboard_press) # intialize global loading dialog Globals.loading_dialog = LoadingDialog() Globals.icabthread = threading.Thread( target=handler.thread_handler, kwargs={ "driverid": Globals.settings["driver_id"], "host": Globals.settings["host"], "callback": on_handler_event }) #self.logcat = LogCatReader(None) #self.logcat.start() Globals.icabthread.start() handler.send_message(event=handler.EVENT_DRIVER_UPDATE, driver_id=Globals.settings["driver_id"]) # ask for phone permissions if Globals.settings["android_run_first_time"]: timeout = 5 Globals.settings["android_run_first_time"] = False save_settings(Globals.settings) else: timeout = 0 android_ask_permission(["android.permission.ACCESS_FINE_LOCATION"], timeout)
def on_enter(self, *args): Globals.mainscrn = self self.set_running_mode_label() if Globals.settings["auto_bidding"]: self.ids["auto_bid_button"].state = "down" else: self.ids["auto_bid_button"].state = "normal" handler.send_message(event=handler.EVENT_ANDROID_START_GPS)
def on_continue(self, instance): Globals.settings["debug_port"] = self.txt_port.text Globals.settings["debug_ip"] = self.txt_ip.text Globals.settings["host"] = "http://{}:{}".format( self.txt_ip.text, self.txt_port.text) save_settings(Globals.settings) handler.send_message(event=handler.EVENT_HOST_UPDATE, host=Globals.settings["host"]) Globals.app.root.current = "status" self.dismiss()
def on_button_pressed(self, instance): i = instance.id if i == "login": status, reason = ("1", "1") elif i == "break": status, reason = ("3", "2") else: status, reason = ("3", "3") handler.send_message(event=handler.EVENT_DRIVER_UPDATE, status=status, reason=reason) self.dismiss()
def on_start_button(self, start_button): handler.send_message(event=handler.EVENT_CHECK_STATUS) if not Globals.icabthread.isAlive(): dlg = MessageDialog() dlg.message_label.text = "Bot Thread is dead something went wrong!!" dlg.open() if start_button.text == "Start": show_toast("Scanning Started", 2) start_button.text = "Stop" else: show_toast("Scanning Stopped", 2) start_button.text = "Start"
def on_leave(self, *args): """ Grab string variables from widgets and store into settings dict and save to json file before leaving """ settings = Globals.settings Globals.settings["bidding_radius"] = self.bidding_range.slider.value Globals.settings["driver_id"] = self.driverbox.txt_driverid.text handler.send_message(event=handler.EVENT_DRIVER_UPDATE, driver_id=Globals.settings["driver_id"]) if self.driverbox.host: if self.debug_mode: ip, port = self.debugbox.get_ip_and_port() self.driverbox.host = f"http://{ip}:{port}" Globals.settings["debug_ip"] = ip Globals.settings["debug_port"] = port Globals.settings["host"] = self.driverbox.host handler.send_message(event=handler.EVENT_HOST_UPDATE, host=Globals.settings["host"]) if self.satnav.btn_satnav.text == "Waze": Globals.settings["satnav"] = "waze" else: Globals.settings["satnav"] = "google" Globals.mainscrn.set_running_mode_label() save_settings(Globals.settings) return super().on_leave(*args)
def on_pause(self): # when screen is running in background pause thread handler.send_message(event=handler.EVENT_PAUSE_THREAD, pause=True) return True
def on_stop(self): show_toast("Closing CabBot please wait...") handler.send_message(event=handler.EVENT_QUIT) while Globals.icabthread.isAlive(): pass
def on_message_button(self, instance): handler.send_message(event=handler.EVENT_MESSAGE_ARCHIVE) Globals.app.root.current = "messages"
def on_resume(self): # restart thread handler.send_message(event=handler.EVENT_PAUSE_THREAD, pause=False)
def on_retrieve_button(self, instance): Globals.loading_dialog.open() handler.send_message(event=handler.EVENT_BOOKING_ARCHIVE, offsets=["0", "100", "200"])
def on_release(self): handler.send_message(event=handler.EVENT_MESSAGE, id=self.id) Globals.message_dialog = MessageDialog() Globals.message_dialog.open()
def on_send_button(self, instance): handler.send_message(event=handler.EVENT_MESSAGE_DISPATCH, text=str(self.message_input.text)) self.message_input.text = ""
def on_open(self): """retrieve booking archive""" Globals.earnings_dialog = self Globals.loading_dialog.open() handler.send_message(event=handler.EVENT_BOOKING_ARCHIVE, offsets=["0", "100", "200"])
def on_kick_driver_button(self, instance): Globals.app.root.current = "status" handler.send_message(event=handler.EVENT_KICK_DRIVERS)
def on_autobid_button(self, button): if button.state == "normal": active = False else: active = True handler.send_message(event=handler.EVENT_CHANGE_BIDDING, enable=active)