def __init__(self, ipaddr="", **kwargs): super().__init__(**kwargs) self.dbRW = MyDb() self.ipaddr = ipaddr self.ids.ip.text, \ self.ids.port.text = ipaddr.split(":") addrScnHist = self.dbRW.getAllProxyScan(ipaddr) from main import ProxyShowList for i, p in enumerate(addrScnHist): self.ids.md_list.add_widget(ProxyShowList( text=f"{agoConv(p[5])}", text1=f"{p[4]}", text2=f" {sec_to_mins(float((p[2])))}", text3=f" {p[1]} MB", text4=f" {size(p[3], system=alternative)}/s", _height=dp(20) )) firstTime = TrNumBool(self.dbRW.getConfig("openNo")[0], 'r', 0) if firstTime: fulladdrCopyTT = MDTapTargetView( widget=self.ids.adds, title_text="Copy IP:PORT by tapping ':'", description_text="That's way you can\ncopy full address \nfaster way.", # noqa widget_position="left_bottom" ) fulladdrCopyTT.bind( on_open=lambda x: self.textColorChange('o'), on_close=lambda x: self.textColorChange('c') ) fulladdrCopyTT.start() self.dbRW.updateConfig("openNo", firstTime)
def on_enter(self): self.ids.lbl.opacity = 0 self.ids.logo.opacity = 1 self._complete = False ttv4 = MDTapTargetView( widget=self.ids.add_btn, outer_radius=dp(320), cancelable=True, outer_circle_color=self.app.theme_cls.primary_color[:-1], outer_circle_alpha=0.9, title_text="This is an add button", description_text="You can cancel it by clicking outside", widget_position="left_bottom", ) ttv4.bind(on_close=self.complete) ttv3 = MDTapTargetView( widget=self.ids.info_btn, outer_radius=dp(440), outer_circle_color=self.app.theme_cls.primary_color[:-1], outer_circle_alpha=0.8, target_circle_color=[255 / 255, 34 / 255, 212 / 255], title_text="This is the info button", description_text="No information available yet!", widget_position="center", title_position="left_bottom", ) ttv3.bind(on_close=ttv4.start) ttv2 = MDTapTargetView( widget=self.ids.search_btn, outer_circle_color=[155 / 255, 89 / 255, 182 / 255], target_circle_color=[0.2, 0.2, 0.2], title_text="This is the search button", description_text="It won't search anything for now.", widget_position="center", title_position="left_bottom", ) ttv2.bind(on_close=ttv3.start) ttv1 = MDTapTargetView( widget=self.ids.menu_btn, outer_circle_color=self.app.theme_cls.primary_color[:-1], outer_circle_alpha=0.85, title_text="Menu Button", description_text="Opens up the drawer", widget_position="center", title_position="right_bottom", ) ttv1.bind(on_close=ttv2.start) ttv1.start()
class MainApp(MDApp): data = { "help-circle-outline": "Help", "mapbox": "Add Trashcan", "settings": "settings" } myscreen = ObjectProperty() search_menu = None def on_start(self): try: self.root.ids.avatar_usr.source = ac_db_cur.execute( "SELECT * FROM avatar").fetchall()[0][0] self.root.ids.avatar_usr_2.source = ac_db_cur.execute( "SELECT * FROM avatar").fetchall()[0][0] self.root.ids.uad_username.text = usr_ac_cred[0][1] self.root.ids.uad_email.text = usr_ac_cred[0][0] self.root.ids.nav_username.text = usr_ac_cred[0][1] self.root.ids.nav_email.text = usr_ac_cred[0][0] #initialize gps except: pass def build(self): #Accessing settings database cur.execute("SELECT mode from settings where attribute='darkmode' ") GpsHelper().run() #App theme and UI color schemes darkmode_opt_list = cur.fetchall() darkmode_opt = darkmode_opt_list[0][0] self.theme_cls.primary_palette = "Cyan" self.theme_cls.primary_hue = "800" self.theme_cls.accent_palette = "Gray" self.theme_cls.accent_hue = "50" self.search_menu = SearchPopupMenu() self.tap_target_view = MDTapTargetView( widget=self.root.ids.button, title_text="Click here to locate you.", description_text="Make sure we are right over you", widget_position="left_bottom", ) if darkmode_opt == "on": print("dark mode on") self.theme_cls.theme_style = "Dark" self.root.ids.darkmode_switch.active = True else: print("light mode on") self.theme_cls.theme_style = "Light" self.root.ids.darkmode_switch.active = False if logged_in == True: self.root.ids.manager.current = "Home" self.root.ids.ecomap.add_marker(MapMarker(lat=60, lon=30)) myloc = MapMarker(lat=30.3433, lon=77.8839) self.root.ids.ecomap.add_marker(myloc) def repos(button): self.root.ids.ecomap.center_on(31.901303405681098, 76.5568) self.root.ids.ecomap.zoom = 18 self.tap_target_view.bind(on_close=repos) def drop_marker_db(button): pass # temp_marker = MapMarker(lat=val[0], lon=val[1]) # screen.ids.ecomap.add_marker(temp_marker) try: self.start_anim.cancel() except: pass self.start_anim = Clock.schedule_once(self.start_tp_anim, 3.5) elif logged_in == False: self.root.ids.parent_manager.current = "account_setup" def start_app(self): self.root.ids.parent_manager.current = "parent" self.root.ids.manager.current = "Home" usr_ac_cred = ac_db_cur.execute("SELECT * FROM accounts").fetchall() self.root.ids.uad_username.text = usr_ac_cred[0][1] self.root.ids.uad_email.text = usr_ac_cred[0][0] self.root.ids.nav_username.text = usr_ac_cred[0][1] self.root.ids.nav_email.text = usr_ac_cred[0][0] def start_tp_anim(self, *args): self.tap_target_start() def init_dark_mode(self, select, value): if value: self.theme_cls.theme_style = "Dark" cur.execute( "UPDATE settings SET mode='on' WHERE attribute = 'darkmode'") settings_db.commit() else: self.theme_cls.theme_style = "Light" cur.execute( "UPDATE settings SET mode='off' WHERE attribute = 'darkmode'") settings_db.commit() def tap_target_start(self): if self.tap_target_view.state == "close": self.tap_target_view.start() else: self.tap_target_view.stop() def callback(self, instance): if instance.icon == "settings": self.root.ids.manager.transition = SlideTransition() self.root.ids.manager.current = "Settings" elif instance.icon == "mapbox": self.register_trashcan() elif instance.icon == "help-circle-outline": pass def open_account(self): self.root.ids.parent_manager.current = "User_account_details" def open_home(self): self.root.ids.manager.current = "Home" def sign_up(self): username = self.root.ids.name_field.text email = self.root.ids.email_field.text password = self.root.ids.password_field.text Acc_list = ["acc", username, email, password] Acc_list = str(Acc_list) s.sendto(Acc_list.encode("utf-8"), server) response, response_addr = s.recvfrom(1024) response = response.decode("utf-8") if response == "ACCOUNT CREATED": sql_script = "INSERT INTO accounts VALUES('" + email + "', '" + username + "' , '" + password + "')" ac_db_cur.execute(sql_script) account_db.commit() self.root.ids.parent_manager.current = "profile_picture_opt" self.root.ids.uad_username.text = username self.root.ids.uad_email.text = email self.root.ids.nav_username.text = username self.root.ids.nav_email.text = email #register this account to server database #register this account credentials to localhost database def go_to_login(self): self.root.ids.parent_manager.current = "login_screen" def login(self): if self.root.ids.login_email_field == "" or self.root.ids.login_pw_field == "": print("Empty fields detected") else: cred_cont = [(self.root.ids.login_email_field.text, "", self.root.ids.login_pw_field.text), "ch_acc_cred"] s.sendto(str(cred_cont).encode("utf-8"), server) response, response_addr = s.recvfrom(1024) response = response.decode("utf-8") if response == "error_lia": pass else: response = eval(response) if response[0] == "verified": sql_scr1 = "DELETE FROM accounts" sql_scr2 = "INSERT INTO accounts VALUES('" + self.root.ids.login_email_field.text + "', '" + response[ 1] + "' , '" + self.root.ids.login_pw_field.text + "')" ac_db_cur.execute(sql_scr1) ac_db_cur.execute(sql_scr2) account_db.commit() global logged_in logged_in = True self.root.ids.parent_manager.current = "profile_picture_opt" def confirm_av(self): usr_av = None selected = None for avatar in [ self.root.ids.m1, self.root.ids.m2, self.root.ids.m3, self.root.ids.m4, self.root.ids.m5, self.root.ids.m6, self.root.ids.m7, self.root.ids.w1, self.root.ids.w2, self.root.ids.w3, self.root.ids.w4, self.root.ids.w5, self.root.ids.w6, self.root.ids.w7 ]: if avatar.size == [130, 130]: selected = True break if selected == True: ac_db_cur.execute("DELETE FROM avatar") ac_db_cur.execute("INSERT INTO avatar VALUES('" + avatar.icon + "')") account_db.commit() self.start_app() av = ac_db_cur.execute("SELECT * FROM avatar").fetchall()[0][0] self.root.ids.avatar_usr.source = av self.root.ids.avatar_usr_2.source = av else: pass def register_trashcan(self): lat = self.root.ids.blinker.lat lon = self.root.ids.blinker.lon list = ["tr_reg", [lat, lon]] s.sendto(str(list).encode("utf-8"), server) self.snackbar = Snackbar(text="Trashcan added.Will be shown soon!") self.snackbar.show()