diff --git a/komrade/app/main.py b/komrade/app/main.py index 0b958af..18d7394 100644 --- a/komrade/app/main.py +++ b/komrade/app/main.py @@ -619,8 +619,35 @@ class MainApp(MDApp, Logger): response = await self.msg_dialog.open() logger.info(f'get_input got user response {response}') + async def task(): + await asyncio.sleep(1) + self.msg_dialog.dismiss() + asyncio.create_task(task()) return response + async def ring_ring(self,*x,kommie=None,**y): + if not kommie: kommie=self.komrade + from komrade.app.screens.map import MapWidget + self.map=MapWidget() + self.map.open() + resp_msg_d = await kommie.ring_ring(*x,**y) + logger.info('done with ring_ring! ! !') + self.map.dismiss() + self.map=None + return resp_msg_d + + + async def get_updates(self,*x,kommie=None,**y): + if not kommie: kommie=self.komrade + from komrade.app.screens.map import MapWidget + self.map=MapWidget() + self.map.open() + await kommie.get_updates(*x,**y) + logger.info('done with get_updates! ! !') + self.map.dismiss() + self.map=None + + async def stat(self,msg,komrade_name='Telephone',pause=False,get_pass=False,**y): from komrade.app.screens.feed.feed import PostCard,PostCardPopup @@ -685,6 +712,11 @@ class MainApp(MDApp, Logger): + + + + + if __name__ == '__main__': loop = asyncio.get_event_loop() loop.run_until_complete(MainApp().app_func()) diff --git a/komrade/app/screens/feed/feed.kv b/komrade/app/screens/feed/feed.kv index 676f53b..bc920b0 100644 --- a/komrade/app/screens/feed/feed.kv +++ b/komrade/app/screens/feed/feed.kv @@ -162,7 +162,7 @@ id: post orientation: "vertical" padding: "20dp" - size_hint: (0.75, 0.75) + size_hint: (0.75, None) # size:('800sp','800sp') adaptive_height: True pos_hint: {"center_x": .5, "center_y": .5} diff --git a/komrade/app/screens/feed/feed.py b/komrade/app/screens/feed/feed.py index 5437302..45c999e 100644 --- a/komrade/app/screens/feed/feed.py +++ b/komrade/app/screens/feed/feed.py @@ -288,7 +288,7 @@ class FeedScreen(BaseScreen): lim=25 async def go(): - await self.app.komrade.get_updates() + await self.app.get_updates() posts=self.get_posts() for i,post in enumerate(reversed(posts)): if i>lim: break diff --git a/komrade/app/screens/login/login.py b/komrade/app/screens/login/login.py index 020701c..5fcb55b 100644 --- a/komrade/app/screens/login/login.py +++ b/komrade/app/screens/login/login.py @@ -319,15 +319,18 @@ class LoginScreen(BaseScreen): ## CALL OP WITH PUBKEY # self.app.open_dialog('Calling @Operator...') logger.info('got here!') - resp_msg_d = await kommie.ring_ring( + resp_msg_d = await self.app.ring_ring( { 'name':name, 'pubkey': pubkey.data, }, - route='register_new_user' + route='register_new_user', + kommie=kommie ) + # self.app.close_dialog() + # print() await logfunc(resp_msg_d.get('status'),komrade_name='Operator',pause=True) @@ -380,6 +383,9 @@ class LoginScreen(BaseScreen): await logfunc('returning...') + + from komrade.app.screens.map import MapWidget + return resp_msg_d \ No newline at end of file diff --git a/komrade/app/screens/map.py b/komrade/app/screens/map.py index 20e3f84..980b978 100644 --- a/komrade/app/screens/map.py +++ b/komrade/app/screens/map.py @@ -29,7 +29,7 @@ class MapWidget(MDDialog2): @property def projection(self): # return ccrs.PlateCarree() - return ccrs.LambertConformal() + return ccrs.EckertI() @property def figsize(self): @@ -43,15 +43,15 @@ class MapWidget(MDDialog2): # return (width,height) @property - def color_land(self): return rgb(*darksienna3) #darksienna3) + def color_land(self): return rgb(*darksienna3,a=0) #darksienna3) @property - def color_water(self): return rgb(*grullo2) + def color_water(self): return rgb(*russiangreen) @property - def color_label(self): return self.color_land + def color_label(self): return rgb(*COLOR_ICON) @property - def color_marker(self): return rgb(*rossacorsa) + def color_marker(self): return rgb(*COLOR_ICON) @property - def color_line(self): return self.color_marker + def color_line(self): return rgb(*COLOR_ICON) def __init__(self): self.last_lat = None @@ -141,7 +141,7 @@ class MapWidget(MDDialog2): odir=f'/home/ryan/komrade/data/maps/' if not os.path.exists(odir): os.makedirs(odir) ofn=os.path.join(odir,f't_{len(self.points)}.png') - plt.gca().invert_yaxis() + # plt.gca().invert_yaxis() plt.savefig(ofn, format='png',transparent=True,pad_inches=0.1,bbox_inches = 'tight') # flip? @@ -186,8 +186,8 @@ class MapWidget(MDDialog2): lat, '+', markersize=25, - linewidth=7, - color=rgb(*color), + linewidth=10, + color=self.color_marker,#rgb(*color), transform=ccrs.Geodetic(), ) @@ -196,24 +196,35 @@ class MapWidget(MDDialog2): plt.plot( [self.last_long, long], [self.last_lat, lat], - color=rgb(*color), #self.color_line, - linewidth=7, marker='', + color=self.color_line,#rgb(*color), #self.color_line, + linewidth=4, marker='', transform=ccrs.Geodetic(), ) - desc = '\n'.join(desc for lat,long,desc in self.points[-1:]) + desc = '\n'.join('--> '+desc for lat,long,desc in self.points[-1:]) #if self.label: # self.img.remove_widget(self.label) + + def makelabel(txt): + label=MDLabel(text=txt) + label.color=self.color_label #rgb(*color) #self.color_label + label.font_name=FONT_PATH + label.font_size='20sp' + # label.size_hint=(1,1) + label.width=Window.size[0] + label.height='25sp' + label.valign='top' + return label + - self.label=label=MDLabel(text=desc) - label.color=rgb(*color) #self.color_label - label.font_name=FONT_PATH - label.font_size='20sp' - # label.size_hint=(1,1) - label.width=Window.size[0] - label.height='25sp' - label.valign='top' + if len(self.points)==1: + intro_label = makelabel( + 'Routing you through the global maze of Tor ...' + ) + self.label_layout.add_widget(intro_label) + + self.label=label=makelabel(desc) # label.height='400sp' # label.pos_hint = {'center_y':0.1+(0.1 * len(self.points))} # label.pos = (0.5,0) @@ -239,6 +250,13 @@ class MapWidget(MDDialog2): # # logger.info(f'waiting for {waited} seconds... {self.ok_to_continue} {self.response}') # return self.response + def dismiss(self): + super().dismiss() + if hasattr(self.layout,'img'): + self.layout.remove_widget(self.img) + if self.layout: + self.remove_widget(self.layout) + default_places = { 'Cambridge':(52.205338,0.121817), 'Sydney':(-33.868820,151.209290),