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

@ -4,6 +4,7 @@
#:include screens/messages/messages.kv
#:include screens/notifications/notifications.kv
#:include screens/profile/profile.kv
#:include screens/refresh/refresh.kv
@ -238,7 +239,7 @@ MyLayout:
theme_text_color:'Custom'
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: [[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')]]
# ['bell-outline', partial(root.change_screen, 'login')]
@ -273,4 +274,7 @@ MyLayout:
id: notifications_screen
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