Merge pull request #63 from jaicis/Chatroom
worked on chatroom Ui designing
This commit is contained in:
commit
a03d2cce17
58
src/bitmessagekivy/kv/chat_list.kv
Normal file
58
src/bitmessagekivy/kv/chat_list.kv
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
<ChatList>:
|
||||||
|
name: 'chlist'
|
||||||
|
canvas.before:
|
||||||
|
Color:
|
||||||
|
rgba: 1,1,1,1
|
||||||
|
Rectangle:
|
||||||
|
pos: self.pos
|
||||||
|
size: self.size
|
||||||
|
MDTabs:
|
||||||
|
id: chat_panel
|
||||||
|
tab_display_mode:'text'
|
||||||
|
|
||||||
|
Tab:
|
||||||
|
text: "Chats"
|
||||||
|
BoxLayout:
|
||||||
|
id: chat_box
|
||||||
|
orientation: 'vertical'
|
||||||
|
ScrollView:
|
||||||
|
id: scroll_y
|
||||||
|
do_scroll_x: False
|
||||||
|
MDList:
|
||||||
|
id: ml
|
||||||
|
MDLabel:
|
||||||
|
font_style: 'Caption'
|
||||||
|
theme_text_color: 'Primary'
|
||||||
|
text: 'No Chat'
|
||||||
|
halign: 'center'
|
||||||
|
size_hint_y: None
|
||||||
|
bold: True
|
||||||
|
valign: 'top'
|
||||||
|
# OneLineAvatarListItem:
|
||||||
|
# text: "Single-line item with avatar"
|
||||||
|
# divider: None
|
||||||
|
# _no_ripple_effect: True
|
||||||
|
# ImageLeftWidget:
|
||||||
|
# source: './images/text_images/A.png'
|
||||||
|
# OneLineAvatarListItem:
|
||||||
|
# text: "Single-line item with avatar"
|
||||||
|
# divider: None
|
||||||
|
# _no_ripple_effect: True
|
||||||
|
# ImageLeftWidget:
|
||||||
|
# source: './images/text_images/B.png'
|
||||||
|
# OneLineAvatarListItem:
|
||||||
|
# text: "Single-line item with avatar"
|
||||||
|
# divider: None
|
||||||
|
# _no_ripple_effect: True
|
||||||
|
# ImageLeftWidget:
|
||||||
|
# source: './images/text_images/A.png'
|
||||||
|
Tab:
|
||||||
|
text: "Contacts"
|
||||||
|
BoxLayout:
|
||||||
|
id: contact_box
|
||||||
|
orientation: 'vertical'
|
||||||
|
ScrollView:
|
||||||
|
id: scroll_y
|
||||||
|
do_scroll_x: False
|
||||||
|
MDList:
|
||||||
|
id: ml
|
45
src/bitmessagekivy/kv/chat_room.kv
Normal file
45
src/bitmessagekivy/kv/chat_room.kv
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
#:import C kivy.utils.get_color_from_hex
|
||||||
|
|
||||||
|
<ChatRoom>:
|
||||||
|
name: 'chroom'
|
||||||
|
BoxLayout:
|
||||||
|
orientation: 'vertical'
|
||||||
|
canvas.before:
|
||||||
|
Color:
|
||||||
|
rgba: 1,1,1,1
|
||||||
|
Rectangle:
|
||||||
|
pos: self.pos
|
||||||
|
size: self.size
|
||||||
|
ScrollView:
|
||||||
|
Label:
|
||||||
|
id: chat_logs
|
||||||
|
text: ''
|
||||||
|
color: C('#101010')
|
||||||
|
text_size: (self.width, None)
|
||||||
|
halign: 'left'
|
||||||
|
valign: 'top'
|
||||||
|
padding: (0, 0) # fixed in Kivy 1.8.1
|
||||||
|
size_hint: (1, None)
|
||||||
|
height: self.texture_size[1]
|
||||||
|
markup: True
|
||||||
|
font_size: sp(20)
|
||||||
|
BoxLayout:
|
||||||
|
height: 50
|
||||||
|
orientation: 'horizontal'
|
||||||
|
padding: 0
|
||||||
|
size_hint: (1, None)
|
||||||
|
|
||||||
|
TextInput:
|
||||||
|
id: message
|
||||||
|
size_hint: (1, 1)
|
||||||
|
multiline: False
|
||||||
|
font_size: sp(20)
|
||||||
|
on_text_validate: root.send_msg()
|
||||||
|
|
||||||
|
MDRaisedButton:
|
||||||
|
text: "Send"
|
||||||
|
elevation_normal: 2
|
||||||
|
opposite_colors: True
|
||||||
|
size_hint: (0.3, 1)
|
||||||
|
pos_hint: {"center_x": .5}
|
||||||
|
on_press: root.send_msg()
|
|
@ -1,5 +1,6 @@
|
||||||
<DropDownWidget>:
|
<DropDownWidget>:
|
||||||
ScrollView:
|
ScrollView:
|
||||||
|
id: id_scroll
|
||||||
BoxLayout:
|
BoxLayout:
|
||||||
orientation: 'vertical'
|
orientation: 'vertical'
|
||||||
size_hint_y: None
|
size_hint_y: None
|
||||||
|
|
|
@ -85,6 +85,7 @@
|
||||||
source: app.get_default_logo()
|
source: app.get_default_logo()
|
||||||
|
|
||||||
ScrollView:
|
ScrollView:
|
||||||
|
id: scroll_y
|
||||||
pos_hint: {"top": 1}
|
pos_hint: {"top": 1}
|
||||||
|
|
||||||
GridLayout:
|
GridLayout:
|
||||||
|
@ -155,6 +156,13 @@
|
||||||
on_release: app.root.ids.scr_mngr.current = 'allmails'
|
on_release: app.root.ids.scr_mngr.current = 'allmails'
|
||||||
on_release: root.parent.set_state()
|
on_release: root.parent.set_state()
|
||||||
on_press: app.load_screen(self)
|
on_press: app.load_screen(self)
|
||||||
|
NavigationItem:
|
||||||
|
id: chat_rm
|
||||||
|
text: 'Chat Room'
|
||||||
|
icon: 'wechat'
|
||||||
|
divider: None
|
||||||
|
on_release: app.root.ids.scr_mngr.current = 'chlist'
|
||||||
|
on_release: root.parent.set_state()
|
||||||
NavigationDrawerDivider:
|
NavigationDrawerDivider:
|
||||||
NavigationDrawerSubheader:
|
NavigationDrawerSubheader:
|
||||||
text: "All labels"
|
text: "All labels"
|
||||||
|
@ -260,6 +268,10 @@ NavigationLayout:
|
||||||
id:sc19
|
id:sc19
|
||||||
Archieve:
|
Archieve:
|
||||||
id:sc20
|
id:sc20
|
||||||
|
ChatRoom:
|
||||||
|
id:sc21
|
||||||
|
ChatList:
|
||||||
|
id:sc22
|
||||||
|
|
||||||
MDNavigationDrawer:
|
MDNavigationDrawer:
|
||||||
id: nav_drawer
|
id: nav_drawer
|
||||||
|
|
|
@ -57,6 +57,11 @@ from kivymd.uix.list import (
|
||||||
# )
|
# )
|
||||||
from kivymd.uix.selectioncontrol import MDCheckbox, MDSwitch
|
from kivymd.uix.selectioncontrol import MDCheckbox, MDSwitch
|
||||||
from kivymd.uix.chip import MDChip
|
from kivymd.uix.chip import MDChip
|
||||||
|
from kivy.uix.screenmanager import (
|
||||||
|
RiseInTransition,
|
||||||
|
SlideTransition,
|
||||||
|
FallOutTransition
|
||||||
|
)
|
||||||
|
|
||||||
import queues
|
import queues
|
||||||
from semaphores import kivyuisignaler
|
from semaphores import kivyuisignaler
|
||||||
|
@ -73,7 +78,8 @@ KVFILES = [
|
||||||
'settings', 'popup', 'allmails', 'draft',
|
'settings', 'popup', 'allmails', 'draft',
|
||||||
'maildetail', 'common_widgets', 'addressbook',
|
'maildetail', 'common_widgets', 'addressbook',
|
||||||
'myaddress', 'composer', 'payment', 'sent',
|
'myaddress', 'composer', 'payment', 'sent',
|
||||||
'network', 'login', 'credits', 'trash', 'inbox'
|
'network', 'login', 'credits', 'trash', 'inbox',
|
||||||
|
'chat_room', 'chat_list'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
@ -968,7 +974,19 @@ class NetworkStat(Screen):
|
||||||
class ContentNavigationDrawer(BoxLayout):
|
class ContentNavigationDrawer(BoxLayout):
|
||||||
"""Navigate Content Drawer"""
|
"""Navigate Content Drawer"""
|
||||||
|
|
||||||
pass
|
def __init__(self, *args, **kwargs):
|
||||||
|
"""Method used for contentNavigationDrawer"""
|
||||||
|
super(ContentNavigationDrawer, self).__init__(*args, **kwargs)
|
||||||
|
Clock.schedule_once(self.init_ui, 0)
|
||||||
|
|
||||||
|
def init_ui(self, dt=0):
|
||||||
|
"""Clock Schdule for class contentNavigationDrawer"""
|
||||||
|
self.ids.scroll_y.bind(scroll_y=self.check_scroll_y)
|
||||||
|
|
||||||
|
def check_scroll_y(self, instance, somethingelse):
|
||||||
|
"""show data on scroll down"""
|
||||||
|
if self.ids.btn.is_open:
|
||||||
|
self.ids.btn.is_open = False
|
||||||
|
|
||||||
|
|
||||||
class Random(Screen):
|
class Random(Screen):
|
||||||
|
@ -1002,15 +1020,24 @@ class Random(Screen):
|
||||||
self.manager.current = 'myaddress'
|
self.manager.current = 'myaddress'
|
||||||
Clock.schedule_once(self.address_created_callback, 6)
|
Clock.schedule_once(self.address_created_callback, 6)
|
||||||
|
|
||||||
@staticmethod
|
def address_created_callback(self, dt=0):
|
||||||
def address_created_callback(dt=0):
|
|
||||||
"""New address created"""
|
"""New address created"""
|
||||||
state.kivyapp.loadMyAddressScreen(False)
|
state.kivyapp.loadMyAddressScreen(False)
|
||||||
state.kivyapp.root.ids.sc10.ids.ml.clear_widgets()
|
state.kivyapp.root.ids.sc10.ids.ml.clear_widgets()
|
||||||
state.kivyapp.root.ids.sc10.is_add_created = True
|
state.kivyapp.root.ids.sc10.is_add_created = True
|
||||||
state.kivyapp.root.ids.sc10.init_ui()
|
state.kivyapp.root.ids.sc10.init_ui()
|
||||||
|
self.reset_address_spinner()
|
||||||
toast('New address created')
|
toast('New address created')
|
||||||
|
|
||||||
|
def reset_address_spinner(self):
|
||||||
|
"""reseting spinner address and UI"""
|
||||||
|
addresses = [addr for addr in BMConfigParser().addresses()
|
||||||
|
if BMConfigParser().get(str(addr), 'enabled') == 'true']
|
||||||
|
self.manager.parent.ids.content_drawer.ids.btn.values = []
|
||||||
|
self.manager.parent.ids.sc3.children[1].ids.btn.values = []
|
||||||
|
self.manager.parent.ids.content_drawer.ids.btn.values = addresses
|
||||||
|
self.manager.parent.ids.sc3.children[1].ids.btn.values = addresses
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def add_validation(instance):
|
def add_validation(instance):
|
||||||
"""Checking validation at address creation time"""
|
"""Checking validation at address creation time"""
|
||||||
|
@ -1433,6 +1460,12 @@ class Create(Screen):
|
||||||
"SELECT label, address from addressbook")]
|
"SELECT label, address from addressbook")]
|
||||||
widget_1.ids.txt_input.starting_no = 2
|
widget_1.ids.txt_input.starting_no = 2
|
||||||
self.add_widget(widget_1)
|
self.add_widget(widget_1)
|
||||||
|
self.children[0].ids.id_scroll.bind(scroll_y=self.check_scroll_y)
|
||||||
|
|
||||||
|
def check_scroll_y(self, instance, somethingelse):
|
||||||
|
"""show data on scroll down"""
|
||||||
|
if self.children[1].ids.btn.is_open:
|
||||||
|
self.children[1].ids.btn.is_open = False
|
||||||
|
|
||||||
|
|
||||||
class Setting(Screen):
|
class Setting(Screen):
|
||||||
|
@ -1602,14 +1635,20 @@ class NavigateApp(MDApp):
|
||||||
# pylint: disable=inconsistent-return-statements, too-many-branches
|
# pylint: disable=inconsistent-return-statements, too-many-branches
|
||||||
"""Method is used for going on previous screen"""
|
"""Method is used for going on previous screen"""
|
||||||
if key == 27:
|
if key == 27:
|
||||||
if state.in_search_mode and self.root.ids.scr_mngr.current != (
|
if state.in_search_mode and self.root.ids.scr_mngr.current not in [
|
||||||
"mailDetail"):
|
"mailDetail", "create"]:
|
||||||
self.closeSearchScreen()
|
self.closeSearchScreen()
|
||||||
elif self.root.ids.scr_mngr.current == "mailDetail":
|
elif self.root.ids.scr_mngr.current == "mailDetail":
|
||||||
self.root.ids.scr_mngr.current = 'sent'\
|
self.root.ids.scr_mngr.current = 'sent'\
|
||||||
if state.detailPageType == 'sent' else 'inbox' \
|
if state.detailPageType == 'sent' else 'inbox' \
|
||||||
if state.detailPageType == 'inbox' else 'draft'
|
if state.detailPageType == 'inbox' else 'draft'
|
||||||
self.back_press()
|
self.back_press()
|
||||||
|
if state.in_search_mode and state.searcing_text:
|
||||||
|
toolbar_obj = self.root.ids.toolbar
|
||||||
|
toolbar_obj.left_action_items = [
|
||||||
|
['arrow-left', lambda x: self.closeSearchScreen()]]
|
||||||
|
toolbar_obj.right_action_items = []
|
||||||
|
self.root.ids.toolbar.title = ''
|
||||||
elif self.root.ids.scr_mngr.current == "create":
|
elif self.root.ids.scr_mngr.current == "create":
|
||||||
self.save_draft()
|
self.save_draft()
|
||||||
self.set_common_header()
|
self.set_common_header()
|
||||||
|
@ -1622,13 +1661,23 @@ class NavigateApp(MDApp):
|
||||||
elif self.root.ids.scr_mngr.current == 'pay-options':
|
elif self.root.ids.scr_mngr.current == 'pay-options':
|
||||||
self.set_common_header()
|
self.set_common_header()
|
||||||
self.root.ids.scr_mngr.current = 'payment'
|
self.root.ids.scr_mngr.current = 'payment'
|
||||||
|
elif self.root.ids.scr_mngr.current == 'chroom':
|
||||||
|
if state.association:
|
||||||
|
address_label = self.current_address_label(
|
||||||
|
BMConfigParser().get(
|
||||||
|
state.association, 'label'), state.association)
|
||||||
|
self.root.ids.toolbar.title = address_label
|
||||||
|
self.set_common_header()
|
||||||
|
self.root.ids.scr_mngr.transition = FallOutTransition()
|
||||||
|
self.root.ids.scr_mngr.current = 'chlist'
|
||||||
|
self.root.ids.scr_mngr.transition = SlideTransition()
|
||||||
else:
|
else:
|
||||||
if state.kivyapp.variable_1:
|
if state.kivyapp.variable_1:
|
||||||
self.root.ids.scr_mngr.current = 'inbox'
|
self.root.ids.scr_mngr.current = 'inbox'
|
||||||
self.root.ids.scr_mngr.transition.direction = 'right'
|
self.root.ids.scr_mngr.transition.direction = 'right'
|
||||||
self.root.ids.scr_mngr.transition.bind(on_complete=self.reset)
|
self.root.ids.scr_mngr.transition.bind(on_complete=self.reset)
|
||||||
return True
|
return True
|
||||||
elif key == 13 and state.searcing_text:
|
elif key == 13 and state.searcing_text and not state.in_composer:
|
||||||
if state.search_screen == 'inbox':
|
if state.search_screen == 'inbox':
|
||||||
self.root.ids.sc1.children[1].active = True
|
self.root.ids.sc1.children[1].active = True
|
||||||
Clock.schedule_once(self.search_callback, 0.5)
|
Clock.schedule_once(self.search_callback, 0.5)
|
||||||
|
@ -1742,12 +1791,21 @@ class NavigateApp(MDApp):
|
||||||
self.root.ids.toolbar.title = ''
|
self.root.ids.toolbar.title = ''
|
||||||
else:
|
else:
|
||||||
self.set_common_header()
|
self.set_common_header()
|
||||||
|
if self.root.ids.scr_mngr.current == 'chroom' and state.association:
|
||||||
|
self.root.ids.scr_mngr.transition = FallOutTransition()
|
||||||
|
address_label = self.current_address_label(
|
||||||
|
BMConfigParser().get(
|
||||||
|
state.association, 'label'), state.association)
|
||||||
|
self.root.ids.toolbar.title = address_label
|
||||||
self.root.ids.scr_mngr.current = 'inbox' \
|
self.root.ids.scr_mngr.current = 'inbox' \
|
||||||
if state.in_composer else 'allmails'\
|
if state.in_composer else 'allmails'\
|
||||||
if state.is_allmail else state.detailPageType\
|
if state.is_allmail else state.detailPageType\
|
||||||
if state.detailPageType else 'myaddress'\
|
if state.detailPageType else 'myaddress'\
|
||||||
if self.root.ids.scr_mngr.current == 'showqrcode' else 'payment'\
|
if self.root.ids.scr_mngr.current == 'showqrcode' else 'payment'\
|
||||||
if self.root.ids.scr_mngr.current == 'pay-options' else 'inbox'
|
if self.root.ids.scr_mngr.current == 'pay-options' else 'chlist'\
|
||||||
|
if self.root.ids.scr_mngr.current == 'chroom' else 'inbox'
|
||||||
|
if self.root.ids.scr_mngr.current == 'chlist':
|
||||||
|
self.root.ids.scr_mngr.transition = SlideTransition()
|
||||||
self.root.ids.scr_mngr.transition.direction = 'right'
|
self.root.ids.scr_mngr.transition.direction = 'right'
|
||||||
self.root.ids.scr_mngr.transition.bind(on_complete=self.reset)
|
self.root.ids.scr_mngr.transition.bind(on_complete=self.reset)
|
||||||
if state.is_allmail or state.detailPageType == 'draft':
|
if state.is_allmail or state.detailPageType == 'draft':
|
||||||
|
@ -1892,6 +1950,11 @@ class NavigateApp(MDApp):
|
||||||
|
|
||||||
def set_mail_detail_header(self):
|
def set_mail_detail_header(self):
|
||||||
"""Setting the details of the page"""
|
"""Setting the details of the page"""
|
||||||
|
if state.association and state.in_search_mode:
|
||||||
|
address_label = self.current_address_label(
|
||||||
|
BMConfigParser().get(
|
||||||
|
state.association, 'label'), state.association)
|
||||||
|
self.root.ids.toolbar.title = address_label
|
||||||
toolbar_obj = self.root.ids.toolbar
|
toolbar_obj = self.root.ids.toolbar
|
||||||
toolbar_obj.left_action_items = [
|
toolbar_obj.left_action_items = [
|
||||||
['arrow-left', lambda x: self.back_press()]]
|
['arrow-left', lambda x: self.back_press()]]
|
||||||
|
@ -2259,6 +2322,7 @@ class MailDetail(Screen): # pylint: disable=too-many-instance-attributes
|
||||||
|
|
||||||
def inbox_reply(self):
|
def inbox_reply(self):
|
||||||
"""Reply inbox messages"""
|
"""Reply inbox messages"""
|
||||||
|
state.in_composer = True
|
||||||
data = sqlQuery(
|
data = sqlQuery(
|
||||||
"select toaddress, fromaddress, subject, message, received from inbox where"
|
"select toaddress, fromaddress, subject, message, received from inbox where"
|
||||||
" msgid = ?;", state.mail_id)
|
" msgid = ?;", state.mail_id)
|
||||||
|
@ -2825,16 +2889,16 @@ class Allmails(Screen):
|
||||||
|
|
||||||
def avatarImageFirstLetter(letter_string):
|
def avatarImageFirstLetter(letter_string):
|
||||||
"""This function is used to the first letter for the avatar image"""
|
"""This function is used to the first letter for the avatar image"""
|
||||||
if letter_string:
|
try:
|
||||||
if letter_string[0].upper() >= 'A' and letter_string[0].upper() <= 'Z':
|
if letter_string[0].upper() >= 'A' and letter_string[0].upper() <= 'Z':
|
||||||
img_latter = letter_string[0].upper()
|
img_latter = letter_string[0].upper()
|
||||||
elif int(letter_string[0]) >= 0 and int(letter_string[0]) <= 9:
|
elif int(letter_string[0]) >= 0 and int(letter_string[0]) <= 9:
|
||||||
img_latter = letter_string[0]
|
img_latter = letter_string[0]
|
||||||
else:
|
else:
|
||||||
img_latter = '!'
|
img_latter = '!'
|
||||||
else:
|
except ValueError as e:
|
||||||
img_latter = '!'
|
img_latter = '!'
|
||||||
return img_latter
|
return img_latter if img_latter else '!'
|
||||||
|
|
||||||
|
|
||||||
class Starred(Screen):
|
class Starred(Screen):
|
||||||
|
@ -3018,3 +3082,80 @@ class ToAddrBoxlayout(BoxLayout):
|
||||||
class RandomBoxlayout(BoxLayout):
|
class RandomBoxlayout(BoxLayout):
|
||||||
"""class for BoxLayout behaviour"""
|
"""class for BoxLayout behaviour"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def esc_markup(msg):
|
||||||
|
return (msg.replace('&', '&')
|
||||||
|
.replace('[', '&bl;')
|
||||||
|
.replace(']', '&br;'))
|
||||||
|
|
||||||
|
|
||||||
|
class ChatRoom(Screen):
|
||||||
|
"""class for chatroom screen"""
|
||||||
|
def send_msg(self):
|
||||||
|
"""This method is for sending message"""
|
||||||
|
msg = self.ids.message.text
|
||||||
|
if msg:
|
||||||
|
self.ids.chat_logs.text += (
|
||||||
|
'[b][color=2980b9]{}:[/color][/b] {}\n'
|
||||||
|
.format('Me', esc_markup(msg)))
|
||||||
|
# obj = MDChip(label=msg, radius=7)
|
||||||
|
# obj.icon = ''
|
||||||
|
# self.ids.ml.add_widget(obj)
|
||||||
|
self.ids.message.text = ''
|
||||||
|
|
||||||
|
|
||||||
|
class ChatList(Screen):
|
||||||
|
"""class for showing chat list"""
|
||||||
|
queryreturn = ListProperty()
|
||||||
|
has_refreshed = True
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
"""Getting ChatList Details"""
|
||||||
|
super(ChatList, self).__init__(*args, **kwargs)
|
||||||
|
Clock.schedule_once(self.init_ui, 0)
|
||||||
|
|
||||||
|
def init_ui(self, dt=0):
|
||||||
|
"""Clock Schdule for method ChatList"""
|
||||||
|
self.loadAddresslist(None, 'All', '')
|
||||||
|
print(dt)
|
||||||
|
|
||||||
|
def loadAddresslist(self, account="", where="", what=""):
|
||||||
|
"""Clock Schdule for method ChatList"""
|
||||||
|
self.queryreturn = kivy_helper_search.search_sql(
|
||||||
|
'', account, "addressbook", where, what, False)
|
||||||
|
self.queryreturn = [obj for obj in reversed(self.queryreturn)]
|
||||||
|
if self.queryreturn:
|
||||||
|
self.set_mdList()
|
||||||
|
else:
|
||||||
|
content = MDLabel(
|
||||||
|
font_style='Caption',
|
||||||
|
theme_text_color='Primary',
|
||||||
|
text="No contact found!",
|
||||||
|
halign='center',
|
||||||
|
size_hint_y=None,
|
||||||
|
valign='top')
|
||||||
|
self.ids.ml.add_widget(content)
|
||||||
|
|
||||||
|
def set_mdList(self):
|
||||||
|
"""Creating the mdList"""
|
||||||
|
for item in self.queryreturn:
|
||||||
|
meny = TwoLineAvatarIconListItem(
|
||||||
|
text=item[0], secondary_text=item[1], theme_text_color='Custom',
|
||||||
|
text_color=NavigateApp().theme_cls.primary_color)
|
||||||
|
meny.add_widget(AvatarSampleWidget(
|
||||||
|
source='./images/text_images/{}.png'.format(
|
||||||
|
avatarImageFirstLetter(item[0].strip()))))
|
||||||
|
meny.bind(on_release=partial(
|
||||||
|
self.redirect_to_chat, item[0], item[1]))
|
||||||
|
self.ids.ml.add_widget(meny)
|
||||||
|
|
||||||
|
def redirect_to_chat(self, label, addr, *args):
|
||||||
|
"""This method is redirecting on chatroom"""
|
||||||
|
self.manager.transition = RiseInTransition()
|
||||||
|
state.kivyapp.set_toolbar_for_QrCode()
|
||||||
|
label = label[:14].capitalize() + '...' if len(label) > 15 else label.capitalize()
|
||||||
|
addrs = ' (' + addr + ')'
|
||||||
|
self.manager.parent.ids.toolbar.title = label + addrs
|
||||||
|
self.manager.parent.ids.sc21.ids.chat_logs.text = ''
|
||||||
|
self.manager.current = 'chroom'
|
||||||
|
|
Reference in New Issue
Block a user