fixed issue 35?

master
marxzuckerburg 4 years ago
parent a54957bb29
commit 75b5d31246

@ -89,7 +89,8 @@ class MyLayout(MDBoxLayout):
def change_screen(self, screen, *args): def change_screen(self, screen, *args):
self.scr_mngr.current = screen self.scr_mngr.current = screen
self.app.screen = screen self.app.last_screen = self.app.screen
self.app.screen = self.screen = screen
# toolbar # toolbar
toolbar=self.ids.toolbar toolbar=self.ids.toolbar
@ -116,24 +117,24 @@ class MyLayout(MDBoxLayout):
self.post_id=post_id self.post_id=post_id
self.change_screen('view') self.change_screen('view')
def refresh(self,*x,**yy): # def refresh(self,*x,**yy):
async def go(): # async def go():
if not hasattr(self.app,'is_logged_in') or not self.app.is_logged_in or not hasattr(self.app,'comrad') or not self.app.comrad: # if not hasattr(self.app,'is_logged_in') or not self.app.is_logged_in or not hasattr(self.app,'comrad') or not self.app.comrad:
self.change_screen('login') # self.change_screen('login')
self.app.log('changing screen???') # self.app.log('changing screen???')
return None # return None
logger.info(f'REFRESH: {self.app.is_logged_in}, {self.app.comrad.name}') # logger.info(f'REFRESH: {self.app.is_logged_in}, {self.app.comrad.name}')
self.app.log('<--',x,yy) # self.app.log('<--',x,yy)
if not hasattr(self.app,'map') or not self.app.map: # if not hasattr(self.app,'map') or not self.app.map:
from comrad.app.screens.map import MapWidget # from comrad.app.screens.map import MapWidget
self.app.map=MapWidget() # self.app.map=MapWidget()
self.app.map.open() # self.app.map.open()
await self.app.comrad.get_updates() # await self.app.comrad.get_updates()
self.app.map.dismiss() # self.app.map.dismiss()
self.app.map=None # self.app.map=None
asyncio.create_task(go()) # asyncio.create_task(go())
@ -431,11 +432,11 @@ class MainApp(MDApp, Logger):
texture = ObjectProperty() texture = ObjectProperty()
uri='/do/login' uri='/do/login'
screen='login' screen='login'
last_screen=None
def rgb(self,*_): return rgb(*_) def rgb(self,*_): return rgb(*_)
def change_screen(self, screen, *args): def change_screen(self, screen, *args):
self.screen=screen
self.root.change_screen(screen,*args) self.root.change_screen(screen,*args)
def get_username(self): return self._name def get_username(self): return self._name

@ -4,6 +4,7 @@
#:include screens/messages/messages.kv #:include screens/messages/messages.kv
#:include screens/notifications/notifications.kv #:include screens/notifications/notifications.kv
#:include screens/profile/profile.kv #:include screens/profile/profile.kv
#:include screens/refresh/refresh.kv
@ -238,7 +239,7 @@ MyLayout:
theme_text_color:'Custom' theme_text_color:'Custom'
background_hue: '500' background_hue: '500'
# right_action_items: [['account-circle-outline', partial(root.change_screen, 'profile')],['card-text', partial(root.change_screen, 'feed')],['message-outline', partial(root.change_screen, 'messages')],['pencil-plus-outline', partial(root.change_screen, 'post')],['exit-run', partial(root.change_screen, 'login')]] # right_action_items: [['account-circle-outline', partial(root.change_screen, 'profile')],['card-text', partial(root.change_screen, 'feed')],['message-outline', partial(root.change_screen, 'messages')],['pencil-plus-outline', partial(root.change_screen, 'post')],['exit-run', partial(root.change_screen, 'login')]]
right_action_items: [[SCREEN_TO_ICON['feed'], partial(root.change_screen, 'feed')],[SCREEN_TO_ICON['messages'], partial(root.change_screen, 'messages')],[SCREEN_TO_ICON['post'], partial(root.change_screen, 'post')],[SCREEN_TO_ICON['profile'], partial(root.change_screen, 'profile')],[SCREEN_TO_ICON['refresh'], partial(root.change_sreen, 'refresh')],[SCREEN_TO_ICON['login'], partial(root.change_screen, 'login')]] right_action_items: [[SCREEN_TO_ICON['feed'], partial(root.change_screen, 'feed')],[SCREEN_TO_ICON['messages'], partial(root.change_screen, 'messages')],[SCREEN_TO_ICON['post'], partial(root.change_screen, 'post')],[SCREEN_TO_ICON['profile'], partial(root.change_screen, 'profile')],[SCREEN_TO_ICON['refresh'], partial(root.change_screen, 'refresh')],[SCREEN_TO_ICON['login'], partial(root.change_screen, 'login')]]
#left_action_items: [[f"assets/fist2.png", partial(root.change_screen, 'feed')]] #left_action_items: [[f"assets/fist2.png", partial(root.change_screen, 'feed')]]
# ['bell-outline', partial(root.change_screen, 'login')] # ['bell-outline', partial(root.change_screen, 'login')]
@ -273,4 +274,7 @@ MyLayout:
id: notifications_screen id: notifications_screen
ProfileScreen: ProfileScreen:
id: profile_screen id: profile_screen
RefreshScreen:
id: refresh_screen

@ -0,0 +1,4 @@
#:import RefreshScreen screens.refresh.refresh.RefreshScreen
<RefreshScreen>:
name: 'refresh'

@ -0,0 +1,22 @@
from screens.base import ProtectedScreen
from screens.map import MapWidget
import asyncio
class RefreshScreen(ProtectedScreen):
def on_pre_enter(self):
if not super().on_pre_enter(): return
async def go():
self.log(f'REFRESH: {self.app.is_logged_in}, {self.app.comrad.name}')
if not hasattr(self.app,'map') or not self.app.map:
self.app.map=MapWidget()
self.app.map.open()
await self.app.comrad.get_updates()
self.app.map.dismiss()
self.app.map=None
self.app.change_screen(self.app.last_screen if self.app.last_screen else 'feed')
asyncio.create_task(go())
Loading…
Cancel
Save