126 lines
3.3 KiB
Python
126 lines
3.3 KiB
Python
|
# pylint: disable=import-error, no-name-in-module
|
||
|
# pylint: disable=import-outside-toplevel, abstract-method
|
||
|
|
||
|
"""
|
||
|
Kivy Common UI Widget
|
||
|
"""
|
||
|
|
||
|
from datetime import datetime
|
||
|
|
||
|
from kivy.core.window import Window
|
||
|
from kivy.metrics import dp
|
||
|
from kivy.properties import (
|
||
|
NumericProperty,
|
||
|
StringProperty
|
||
|
)
|
||
|
from kivy.uix.image import Image
|
||
|
|
||
|
from kivymd.uix.list import (
|
||
|
ILeftBody,
|
||
|
IRightBodyTouch,
|
||
|
)
|
||
|
from kivymd.uix.label import MDLabel
|
||
|
from kivymd.toast import kivytoast
|
||
|
from kivymd.uix.card import MDCardSwipe
|
||
|
from kivymd.uix.chip import MDChip
|
||
|
|
||
|
# from pybitmessage.get_platform import platform
|
||
|
platform = "linux"
|
||
|
|
||
|
|
||
|
ThemeClsColor = [0.12, 0.58, 0.95, 1]
|
||
|
|
||
|
|
||
|
data_screens = {
|
||
|
"MailDetail": {
|
||
|
"kv_string": "maildetail",
|
||
|
"Factory": "MailDetail()",
|
||
|
"name_screen": "mailDetail",
|
||
|
"object": 0,
|
||
|
"Import": "from baseclass.maildetail import MailDetail",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
|
||
|
def chipTag(text):
|
||
|
"""This method is used for showing chip tag"""
|
||
|
obj = MDChip()
|
||
|
# obj.size_hint = (None, None)
|
||
|
obj.size_hint = (0.16 if platform == "android" else 0.08, None)
|
||
|
obj.text = text
|
||
|
obj.icon = ""
|
||
|
obj.pos_hint = {
|
||
|
"center_x": 0.91 if platform == "android" else 0.94,
|
||
|
"center_y": 0.3
|
||
|
}
|
||
|
obj.height = dp(18)
|
||
|
obj.text_color = (1, 1, 1, 1)
|
||
|
obj.radius = [8]
|
||
|
return obj
|
||
|
|
||
|
|
||
|
def toast(text):
|
||
|
"""Method will display the toast message"""
|
||
|
kivytoast.toast(text)
|
||
|
|
||
|
|
||
|
def showLimitedCnt(total_msg):
|
||
|
"""This method set the total count limit in badge_text"""
|
||
|
return "99+" if total_msg > 99 else str(total_msg)
|
||
|
|
||
|
|
||
|
def avatarImageFirstLetter(letter_string):
|
||
|
"""This function is used to the first letter for the avatar image"""
|
||
|
try:
|
||
|
if letter_string[0].upper() >= 'A' and letter_string[0].upper() <= 'Z':
|
||
|
img_latter = letter_string[0].upper()
|
||
|
elif int(letter_string[0]) >= 0 and int(letter_string[0]) <= 9:
|
||
|
img_latter = letter_string[0]
|
||
|
else:
|
||
|
img_latter = '!'
|
||
|
except ValueError:
|
||
|
img_latter = '!'
|
||
|
return img_latter if img_latter else '!'
|
||
|
|
||
|
|
||
|
def ShowTimeHistoy(act_time):
|
||
|
"""This method is used to return the message sent or receive time"""
|
||
|
action_time = datetime.fromtimestamp(int(act_time))
|
||
|
crnt_date = datetime.now()
|
||
|
duration = crnt_date - action_time
|
||
|
display_data = (
|
||
|
action_time.strftime("%d/%m/%Y")
|
||
|
if duration.days >= 365
|
||
|
else action_time.strftime("%I:%M %p").lstrip("0")
|
||
|
if duration.days == 0 and crnt_date.strftime("%d/%m/%Y") == action_time.strftime("%d/%m/%Y")
|
||
|
else action_time.strftime("%d %b")
|
||
|
)
|
||
|
return display_data
|
||
|
|
||
|
|
||
|
# pylint: disable=too-few-public-methods
|
||
|
class AvatarSampleWidget(ILeftBody, Image):
|
||
|
"""AvatarSampleWidget class for kivy Ui"""
|
||
|
|
||
|
|
||
|
# pylint: disable=too-many-ancestors
|
||
|
class TimeTagRightSampleWidget(IRightBodyTouch, MDLabel):
|
||
|
"""TimeTagRightSampleWidget class for Ui"""
|
||
|
|
||
|
|
||
|
class SwipeToDeleteItem(MDCardSwipe):
|
||
|
"""Swipe delete class for App UI"""
|
||
|
text = StringProperty()
|
||
|
cla = Window.size[0] / 2
|
||
|
# cla = 800
|
||
|
swipe_distance = NumericProperty(cla)
|
||
|
opening_time = NumericProperty(0.5)
|
||
|
|
||
|
|
||
|
class CutsomSwipeToDeleteItem(MDCardSwipe):
|
||
|
"""Custom swipe delete class for App UI"""
|
||
|
text = StringProperty()
|
||
|
cla = Window.size[0] / 2
|
||
|
swipe_distance = NumericProperty(cla)
|
||
|
opening_time = NumericProperty(0.5)
|