示例#1
0
 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"])
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
 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()
示例#5
0
 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()
示例#6
0
 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"
示例#7
0
 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)
示例#8
0
 def on_pause(self):
     # when screen is running in background pause thread
     handler.send_message(event=handler.EVENT_PAUSE_THREAD, pause=True)
     return True
示例#9
0
 def on_stop(self):
     show_toast("Closing CabBot please wait...")
     handler.send_message(event=handler.EVENT_QUIT)
     while Globals.icabthread.isAlive():
         pass
示例#10
0
 def on_message_button(self, instance):
     handler.send_message(event=handler.EVENT_MESSAGE_ARCHIVE)
     Globals.app.root.current = "messages"
示例#11
0
 def on_resume(self):
     # restart thread
     handler.send_message(event=handler.EVENT_PAUSE_THREAD, pause=False)
示例#12
0
 def on_retrieve_button(self, instance):
     Globals.loading_dialog.open()
     handler.send_message(event=handler.EVENT_BOOKING_ARCHIVE, offsets=["0", "100", "200"])
示例#13
0
 def on_release(self):
     handler.send_message(event=handler.EVENT_MESSAGE, id=self.id)
     Globals.message_dialog = MessageDialog()
     Globals.message_dialog.open()
示例#14
0
 def on_send_button(self, instance):
     handler.send_message(event=handler.EVENT_MESSAGE_DISPATCH,
                          text=str(self.message_input.text))
     self.message_input.text = ""
示例#15
0
 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"])
示例#16
0
 def on_kick_driver_button(self, instance):
     Globals.app.root.current = "status"
     handler.send_message(event=handler.EVENT_KICK_DRIVERS)
示例#17
0
 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)