Add Kivy inbox screen
This commit is contained in:
parent
f6c7e50acf
commit
499779b1f2
58
src/bitmessagekivy/baseclass/inbox.py
Normal file
58
src/bitmessagekivy/baseclass/inbox.py
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
# pylint: disable=unused-import, too-many-public-methods, unused-variable, too-many-ancestors
|
||||||
|
# pylint: disable=no-name-in-module, too-few-public-methods, import-error, unused-argument, too-many-arguments
|
||||||
|
# pylint: disable=attribute-defined-outside-init, global-variable-not-assigned, too-many-instance-attributes
|
||||||
|
|
||||||
|
"""
|
||||||
|
Kivy UI for inbox screen
|
||||||
|
"""
|
||||||
|
from kivy.clock import Clock
|
||||||
|
from kivy.properties import (
|
||||||
|
ListProperty,
|
||||||
|
StringProperty
|
||||||
|
)
|
||||||
|
from kivy.app import App
|
||||||
|
from kivy.uix.screenmanager import Screen
|
||||||
|
|
||||||
|
from pybitmessage.bitmessagekivy.baseclass.common import kivy_state_variables, load_image_path
|
||||||
|
|
||||||
|
|
||||||
|
class Inbox(Screen):
|
||||||
|
"""Inbox Screen class for kivy Ui"""
|
||||||
|
|
||||||
|
queryreturn = ListProperty()
|
||||||
|
has_refreshed = True
|
||||||
|
account = StringProperty()
|
||||||
|
no_search_res_found = "No search result found"
|
||||||
|
label_str = "Yet no message for this account!"
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
"""Initialize kivy variables"""
|
||||||
|
super(Inbox, self).__init__(*args, **kwargs)
|
||||||
|
self.kivy_running_app = App.get_running_app()
|
||||||
|
self.kivy_state = kivy_state_variables()
|
||||||
|
self.image_dir = load_image_path()
|
||||||
|
Clock.schedule_once(self.init_ui, 0)
|
||||||
|
|
||||||
|
def set_defaultAddress(self):
|
||||||
|
"""Set default address"""
|
||||||
|
if self.kivy_state.association == "":
|
||||||
|
if self.kivy_running_app.identity_list:
|
||||||
|
self.kivy_state.association = self.kivy_running_app.identity_list[0]
|
||||||
|
|
||||||
|
def init_ui(self, dt=0):
|
||||||
|
"""loadMessagelist() call at specific interval"""
|
||||||
|
|
||||||
|
def refresh_callback(self, *args):
|
||||||
|
"""Load inbox messages while wating-loader spins & called in inbox.kv"""
|
||||||
|
|
||||||
|
def refresh_on_scroll_down(interval):
|
||||||
|
"""Reset fields and load data on scrolling upside down"""
|
||||||
|
self.kivy_state.searching_text = ""
|
||||||
|
self.children[2].children[1].ids.search_field.text = ""
|
||||||
|
self.ids.ml.clear_widgets()
|
||||||
|
self.loadMessagelist(self.kivy_state.association)
|
||||||
|
self.has_refreshed = True
|
||||||
|
self.ids.refresh_layout.refresh_done()
|
||||||
|
self.tick = 0
|
||||||
|
|
||||||
|
Clock.schedule_once(refresh_on_scroll_down, 1)
|
|
@ -154,7 +154,7 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes
|
||||||
self.parent.screens[2].ids.ml.clear_widgets()
|
self.parent.screens[2].ids.ml.clear_widgets()
|
||||||
self.parent.screens[2].loadSent(self.kivy_state.association)
|
self.parent.screens[2].loadSent(self.kivy_state.association)
|
||||||
elif self.kivy_state.detail_page_type == 'inbox':
|
elif self.kivy_state.detail_page_type == 'inbox':
|
||||||
App.get_running_app().root.ids.sc1.ids.inbox_search.ids.search_field.text = ''
|
App.get_running_app().root.ids.id_inbox.ids.inbox_search.ids.search_field.text = ''
|
||||||
trash(self.kivy_state.mail_id)
|
trash(self.kivy_state.mail_id)
|
||||||
msg_count_objs.inbox_cnt.ids.badge_txt.text = str(
|
msg_count_objs.inbox_cnt.ids.badge_txt.text = str(
|
||||||
int(self.kivy_state.inbox_count) - 1)
|
int(self.kivy_state.inbox_count) - 1)
|
||||||
|
|
|
@ -220,6 +220,8 @@ MDNavigationLayout:
|
||||||
id:id_payment
|
id:id_payment
|
||||||
Create:
|
Create:
|
||||||
id:id_create
|
id:id_create
|
||||||
|
Inbox:
|
||||||
|
id:id_inbox
|
||||||
|
|
||||||
MDNavigationDrawer:
|
MDNavigationDrawer:
|
||||||
id: nav_drawer
|
id: nav_drawer
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
{
|
{
|
||||||
|
"Inbox": {
|
||||||
|
"kv_string": "inbox",
|
||||||
|
"name_screen": "inbox",
|
||||||
|
"Import": "from pybitmessage.bitmessagekivy.baseclass.inbox import Inbox"
|
||||||
|
},
|
||||||
"Login": {
|
"Login": {
|
||||||
"kv_string": "login",
|
"kv_string": "login",
|
||||||
"Import": "from pybitmessage.bitmessagekivy.baseclass.login import *"
|
"Import": "from pybitmessage.bitmessagekivy.baseclass.login import *"
|
||||||
|
|
Reference in New Issue
Block a user