#:import Toolbar kivymd.toolbar.Toolbar #:import ThemeManager kivymd.theming.ThemeManager #:import MDNavigationDrawer kivymd.navigationdrawer.MDNavigationDrawer #:import NavigationLayout kivymd.navigationdrawer.NavigationLayout #:import NavigationDrawerDivider kivymd.navigationdrawer.NavigationDrawerDivider #:import NavigationDrawerToolbar kivymd.navigationdrawer.NavigationDrawerToolbar #:import NavigationDrawerSubheader kivymd.navigationdrawer.NavigationDrawerSubheader #:import MDCheckbox kivymd.selectioncontrols.MDCheckbox #:import MDSwitch kivymd.selectioncontrols.MDSwitch #:import MDList kivymd.list.MDList #:import OneLineListItem kivymd.list.OneLineListItem #:import TwoLineListItem kivymd.list.TwoLineListItem #:import ThreeLineListItem kivymd.list.ThreeLineListItem #:import OneLineAvatarListItem kivymd.list.OneLineAvatarListItem #:import OneLineIconListItem kivymd.list.OneLineIconListItem #:import OneLineAvatarIconListItem kivymd.list.OneLineAvatarIconListItem #:import MDTextField kivymd.textfields.MDTextField #:import MDSpinner kivymd.spinner.MDSpinner #:import MDCard kivymd.card.MDCard #:import MDSeparator kivymd.card.MDSeparator #:import MDDropdownMenu kivymd.menu.MDDropdownMenu #:import get_color_from_hex kivy.utils.get_color_from_hex #:import colors kivymd.color_definitions.colors #:import SmartTile kivymd.grid.SmartTile #:import MDSlider kivymd.slider.MDSlider #:import MDTabbedPanel kivymd.tabs.MDTabbedPanel #:import MDTab kivymd.tabs.MDTab #:import MDProgressBar kivymd.progressbar.MDProgressBar #:import MDAccordion kivymd.accordion.MDAccordion #:import MDAccordionItem kivymd.accordion.MDAccordionItem #:import MDAccordionSubItem kivymd.accordion.MDAccordionSubItem #:import MDThemePicker kivymd.theme_picker.MDThemePicker #:import MDBottomNavigation kivymd.tabs.MDBottomNavigation #:import MDBottomNavigationItem kivymd.tabs.MDBottomNavigationItem #:import MDFloatingActionButton kivymd.button.MDFloatingActionButton : icon: 'checkbox-blank-circle' : drawer_logo: './images/drawer_logo1.png' NavigationDrawerDivider: NavigationDrawerTwoLineListItem: text: "Accounts" NavigationDrawerIconButton: Spinner: pos_hint:{"x":0,"y":.25} id: btn text: app.getDefaultAccData() values: app.variable_1 on_text:app.getCurrentAccountData(self.text) on_press: app.limit_spinner() NavigationDrawerIconButton: icon: 'email-open' text: "Inbox" on_release: app.root.ids.scr_mngr.current = 'inbox' badge_text: "99+" NavigationDrawerIconButton: icon: 'send' text: "Sent" on_release: app.root.ids.scr_mngr.current = 'sent' badge_text: "0" NavigationDrawerIconButton: icon: 'message-draw' text: "Draft" on_release: app.root.ids.scr_mngr.current = 'inbox' badge_text: "99+" NavigationDrawerIconButton: text: "Starred" icon:'star' on_release: app.root.ids.scr_mngr.current = 'inbox' NavigationDrawerIconButton: icon: 'archive' text: "Archieve" on_release: app.root.ids.scr_mngr.current = 'trash' badge_text: "9+" NavigationDrawerIconButton: icon: 'email-open-outline' text: "Spam" on_release: app.root.ids.scr_mngr.current = 'inbox' badge_text: "8+" NavigationDrawerIconButton: icon: 'delete' text: "Trash" on_release: app.root.ids.scr_mngr.current = 'trash' badge_text: "9+" NavigationDrawerIconButton: text: "All Mails" icon:'contact-mail' on_release: app.root.ids.scr_mngr.current = 'inbox' badge_text: "999+" NavigationDrawerDivider: NavigationDrawerSubheader: text: "All labels" NavigationDrawerIconButton: text: "Address Book" icon:'book-multiple' on_release: app.root.ids.scr_mngr.current = 'addressbook' NavigationDrawerIconButton: text: "Settings" icon:'settings' on_release: app.root.ids.scr_mngr.current = 'set' NavigationDrawerIconButton: text: "Subscriptions/Payment" icon:'wallet' on_release: app.root.ids.scr_mngr.current = 'payment' NavigationDrawerIconButton: text: "new address" icon:'account-plus' on_release: app.root.ids.scr_mngr.current = 'login' NavigationDrawerIconButton: text: "Network Status" icon:'server-network' on_release: app.root.ids.scr_mngr.current = 'networkstat' NavigationDrawerIconButton: text: "My Addresses" icon:'account-multiple' on_release: app.root.ids.scr_mngr.current = 'myaddress' NavigationLayout: id: nav_layout ContentNavigationDrawer: id: nav_drawer BoxLayout: orientation: 'vertical' Toolbar: id: toolbar opacity: 1 if app.addressexist() else 0 disabled: False if app.addressexist() else True md_bg_color: app.theme_cls.primary_color background_palette: 'Primary' background_hue: '500' left_action_items: [['menu', lambda x: app.root.toggle_nav_drawer()]] Button: id: myButton size_hint_y: 0.35 size_hint_x: 0.2 pos_hint: {'x': .1, 'y': 0.3} color: 0,0,0,1 background_color: (0,0,0,0) on_press:app.addingtoaddressbook() Image: source: './images/addressbookadd.png' center_x: self.parent.center_x center_y: self.parent.center_y ScreenManager: id: scr_mngr Inbox: id:sc1 Page: id:sc2 Create: id:sc3 Sent: id:sc4 Trash: id:sc5 Login: id:sc6 Random: id:sc7 AddressSuccessful: id:sc8 Setting: id:sc9 MyAddress: id:sc10 AddressBook: id:sc11 Payment: id:sc12 NetworkStat: id:sc13 SentDetail: id:sc14 : name: 'inbox' ScrollView: do_scroll_x: False MDList: id: ml BoxLayout: size_hint_y: None height: dp(56) spacing: '10dp' pos_hint: {'center_x':0.45, 'center_y': .1} Widget: MDFloatingActionButton: icon: 'plus' opposite_colors: True elevation_normal: 8 md_bg_color: [0.941, 0, 0,1] on_press: app.root.ids.scr_mngr.current = 'create' : name: 'sent' ScrollView: do_scroll_x: False MDList: id: ml BoxLayout: size_hint_y: None height: dp(56) spacing: '10dp' pos_hint: {'center_x':0.45, 'center_y': .1} Widget: MDFloatingActionButton: icon: 'plus' opposite_colors: True elevation_normal: 8 md_bg_color: [0.941, 0, 0,1] on_press: app.root.ids.scr_mngr.current = 'create' : name: 'trash' ScrollView: do_scroll_x: False MDList: id: ml BoxLayout: size_hint_y: None height: dp(56) spacing: '10dp' pos_hint: {'center_x':0.45, 'center_y': .1} Widget: MDFloatingActionButton: icon: 'plus' opposite_colors: True elevation_normal: 8 md_bg_color: [0.941, 0, 0,1] on_press: app.root.ids.scr_mngr.current = 'create' : name: 'draft' Label: text:"I have a good dialox box" color: 0,0,0,1 : name: 'test' Label: text:"I am in test" color: 0,0,0,1 : name: 'page' Label: text:"I am on page" color: 0,0,0,1 : name: 'create' : ScrollView: BoxLayout: orientation: 'vertical' size_hint_y: None height: dp(app.scr_size) padding: dp(32) spacing: 15 BoxLayout: orientation: 'vertical' MDTextField: id: ti hint_text: 'type or select sender address' size_hint_y: None height: 100 multiline: False required: True helper_text_mode: "on_error" BoxLayout: size_hint_y: None height: 100 Spinner: background_color: app.theme_cls.primary_dark id: btn text: 'select' values: app.variable_1 on_text: ti.text = self.text BoxLayout: orientation: 'vertical' txt_input: txt_input rv: rv size : (890, 60) size_hint: 1,1 MyTextInput: id: txt_input size_hint_y: None height: 100 hint_text: 'type or search recipients address starting with BM-' RV: id: rv MDTextField: id: subject hint_text: 'subject' required: True height: 100 size_hint_y: None multiline: False helper_text_mode: "on_error" MDTextField: id: body multiline: True hint_text: 'body' size_hint_y: None required: True helper_text_mode: "on_error" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .3 text: 'send' on_press: root.send() BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .3 text: 'reset' on_press: app.root.ids.scr_mngr.current = 'random' : readonly: False multiline: False : # Draw a background to indicate selection color: 0,0,0,1 canvas.before: Color: rgba: app.theme_cls.primary_dark if self.selected else (1, 1, 1, 0) Rectangle: pos: self.pos size: self.size : canvas: Color: rgba: 0,0,0,.2 Line: rectangle: self.x +1 , self.y, self.width - 2, self.height -2 bar_width: 10 scroll_type:['bars'] viewclass: 'SelectableLabel' SelectableRecycleBoxLayout: default_size: None, dp(20) default_size_hint: 1, None size_hint_y: None height: self.minimum_height orientation: 'vertical' multiselect: False : name: 'login' ScrollView: do_scroll_x: False BoxLayout: orientation: 'vertical' size_hint_y: None height: dp(800) BoxLayout: MDLabel: font_style: 'Body1' theme_text_color: 'Primary' text: "You may generate addresses by using either random numbers or by using a passphrase If you use a passphrase, the address is called a deterministic; address The Random Number option is selected by default but deterministic addresses have several \n pros and cons:\n" halign: 'center' bold: True color:app.theme_cls.primary_dark BoxLayout: MDLabel: font_style: 'Caption' theme_text_color: 'Primary' text: "If talk about pros You can recreate your addresses on any computer from memory, You need-not worry about backing up your keys.dat file as long as you can remember your passphrase and aside talk about cons You must remember (or write down) your You must remember the address version number and the stream number along with your passphrase If you choose a weak passphrase and someone on the Internet can brute-force it, they can read your messages and send messages as you" halign: 'center' bold: True color:app.theme_cls.primary_dark MDCheckbox: id: grp_chkbox_1 group: 'test' active: True allow_no_selection: False MDLabel: font_style: 'Caption' theme_text_color: 'Primary' text: "use a random number generator to make an address" halign: 'center' size_hint_y: None bold: True height: self.texture_size[1] + dp(4) color: [0.941, 0, 0,1] MDCheckbox: id: grp_chkbox_1 group: 'test' allow_no_selection: False MDLabel: font_style: 'Caption' theme_text_color: 'Primary' text: "use a pseudo number generator to make an address" halign: 'center' size_hint_y: None bold: True color: [0.941, 0, 0,1] height: self.texture_size[1] + dp(4) BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .5 text: 'proceed' on_press: app.root.ids.scr_mngr.current = 'random' : name: 'random' ScrollView: BoxLayout: orientation: 'vertical' size_hint_y: None height: self.minimum_height padding: dp(48) spacing: 200 MDLabel: font_style: 'Body1' theme_text_color: 'Primary' text: "Random Addresses" halign: 'center' bold: True color:app.theme_cls.primary_dark MDLabel: font_style: 'Body1' theme_text_color: 'Primary' text: "Here you may generate as many addresses as you like, Indeed creating and abandoning addresses is encouraged" halign: 'center' bold: True color:app.theme_cls.primary_dark MDTextField: id: label multiline: True hint_text: "Label" required: True helper_text_mode: "on_error" MDRaisedButton: text: 'next' size_hint_y: 0.13 size_hint_x: 0.8 pos_hint: {'x': .1, 'y': 0.3} opposite_colors: True on_release: root.generateaddress() : name: 'add_sucess' Label: text: 'Successfully created a new bit address' color: 0,0,0,1 : name: 'set' ScrollView: do_scroll_x: False MDList: id: ml size_hint_y: None height: dp(500) OneLineListItem: text: "SERVER SETTINGS" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: 'Server ' on_press: app.root.ids.scr_mngr.current = 'random' OneLineListItem: text: "DATA SETTINGS" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: 'Import or export data' on_press: app.root.ids.scr_mngr.current = 'random' OneLineListItem: text: "OTHER SETTINGS" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: 'Restart background service' on_press: app.root.ids.scr_mngr.current = 'random' BoxLayout: AnchorLayout: MDLabel: font_style: 'Body1' theme_text_color: 'Primary' text: "bitmessage is 11 seconds behind the network" halign: 'center' bold: True color: [0.941, 0, 0,1] BoxLayout: MDCheckbox: id: chkbox size_hint: None, None size: dp(48), dp(48) active: True MDLabel: font_style: 'Body1' theme_text_color: 'Primary' text: "show settings (for advanced users only)" halign: 'left' bold: True color: app.theme_cls.primary_dark : name: 'myaddress' ScrollView: do_scroll_x: False MDList: id: ml : name: 'addressbook' BoxLayout: orientation:'vertical' ScrollView: do_scroll_x: False MDList: id: ml : name: 'payment' : id: popup title: 'add contact\'s' background: './images/popup.jpeg' title_size: sp(30) title_color: 0.4, 0.3765, 0.3451, 1 size_hint: 1, 1 auto_dismiss: False separator_color: 0.3529, 0.3922, 0.102, 0.7 BoxLayout: size_hint_y: None orientation: 'vertical' spacing:50 id: popup_box orientation: 'vertical' MDTextField: id: label multiline: True hint_text: "Label" required: True helper_text_mode: "on_error" MDTextField: id: address hint_text: "Address" required: True helper_text_mode: "on_error" MDRaisedButton: size_hint: 1, None height: dp(40) text: 'Save' on_release: root.savecontact() app.root.ids.scr_mngr.current = 'addressbook' MDRaisedButton: size_hint: 1, None height: dp(40) text: 'Cancel' on_press: root.dismiss() MDRaisedButton: size_hint: 1, None height: dp(40) text: 'Scan QR code' : name: 'networkstat' MDTabbedPanel: id: tab_panel tab_display_mode:'text' MDTab: name: 'connections' text: "Total connections" ScrollView: do_scroll_x: False MDList: id: ml size_hint_y: None height: dp(200) OneLineListItem: text: "Total Connections" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .5 text: root.text_variable_1 MDTab: name: 'processes' text: 'Processes' ScrollView: do_scroll_x: False MDList: id: ml size_hint_y: None height: dp(500) OneLineListItem: text: "person-to-person" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: root.text_variable_2 OneLineListItem: text: "Brodcast" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: root.text_variable_3 OneLineListItem: text: "publickeys" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: root.text_variable_4 OneLineListItem: text: "objects" BoxLayout: AnchorLayout: MDRaisedButton: size_hint: .8, .6 text: root.text_variable_5 : name: 'sentdetail' ScrollView: do_scroll_x: False BoxLayout: orientation: 'vertical' size_hint_y: None height: dp(400) padding: dp(32) MDLabel: font_style: 'Headline' theme_text_color: 'Primary' text: root.subject halign: 'left' MDLabel: font_style: 'Subhead' theme_text_color: 'Primary' text: "To: " + root.to_addr halign: 'left' MDLabel: font_style: 'Subhead' theme_text_color: 'Primary' text: "From: " + root.from_addr halign: 'left' MDLabel: font_style: 'Subhead' theme_text_color: 'Primary' text: root.message halign: 'left' bold: True