worked on making python3 android app compitable

This commit is contained in:
navjot 2020-05-12 16:34:12 +05:30
parent bf435b674b
commit 58c4875ae0
No known key found for this signature in database
GPG Key ID: 9EE70AFD71357F1C
15 changed files with 341 additions and 210 deletions

View File

@ -5,7 +5,7 @@
orientation: 'vertical'
size_hint_y: None
height: self.minimum_height + 2 * self.parent.height/4
padding: dp(32)
padding: dp(20)
spacing: 15
BoxLayout:
orientation: 'vertical'
@ -14,7 +14,7 @@
hint_text: 'type or select sender address'
size_hint_y: None
height: 100
font_size: '15sp'
font_size: dp(15)
multiline: False
required: True
helper_text_mode: "on_error"

View File

@ -5,7 +5,7 @@
BoxLayout:
orientation: 'vertical'
size_hint_y: None
height: dp(400) + self.minimum_height
height: dp(450) + self.minimum_height
padding: dp(10)
BoxLayout:
MDLabel:
@ -21,6 +21,9 @@
text: root.log_text2
halign: 'left'
color:app.theme_cls.primary_dark
Widget:
size_hint: (None, None)
height: dp(10)
MDCheckbox:
id: grp_chkbox_1
group: 'test'
@ -55,7 +58,8 @@
BoxLayout:
AnchorLayout:
MDRaisedButton:
height: dp(40)
size_hint: (.2, None)
# height: dp(40)
on_press: app.root.ids.scr_mngr.current = 'random'
on_press: app.root.ids.sc7.reset_address_label()
MDLabel:
@ -87,7 +91,7 @@
font_style: 'Subtitle2'
theme_text_color: 'Primary'
text: "Here you may generate as many addresses as you like, Indeed creating and abandoning addresses is encouraged"
halign: 'center'
halign: 'left'
color:app.theme_cls.primary_dark
MDTextField:
@ -104,7 +108,8 @@
BoxLayout:
AnchorLayout:
MDRaisedButton:
height: dp(40)
size_hint: (.2, None)
# height: dp(40)
on_release: app.root.ids.sc7.generateaddress(app)
opposite_colors: True
MDLabel:

View File

@ -7,7 +7,7 @@
orientation: 'vertical'
# height: dp(bod.height) + self.minimum_height
height: self.minimum_height
padding: dp(20)
padding: dp(10)
# MDLabel:
# size_hint_y: None
# id: subj
@ -36,6 +36,7 @@
halign:'right'
font_style:'Caption'
pos_hint: {'center_y': .8}
_txt_right_pad: dp(70)
MDChip:
size_hint: (None, None)
label: root.page_type

View File

@ -19,12 +19,18 @@
size_hint_y: None
height: dp(58)
MDRaisedButton:
size_hint: .5, 0
size_hint: .6, 0
height: dp(40)
text: root.text_variable_1
# text: root.text_variable_1
elevation_normal: 2
opposite_colors: True
pos_hint: {'center_x': .5}
MDLabel:
font_style: 'H6'
text: root.text_variable_1
font_size: '13sp'
color: (1,1,1,1)
halign: 'center'
Tab:
text: 'Processes'
ScrollView:
@ -40,12 +46,18 @@
size_hint_y: None
height: dp(58)
MDRaisedButton:
size_hint: .5, 0
size_hint: .6, 0
height: dp(40)
text: root.text_variable_2
# text: root.text_variable_2
elevation_normal: 2
opposite_colors: True
pos_hint: {'center_x': .5}
MDLabel:
font_style: 'H6'
text: root.text_variable_2
font_size: '13sp'
color: (1,1,1,1)
halign: 'center'
OneLineListItem:
text: "Brodcast"
BoxLayout:
@ -53,12 +65,18 @@
size_hint_y: None
height: dp(58)
MDRaisedButton:
size_hint: .5, 0
size_hint: .6, 0
height: dp(40)
text: root.text_variable_3
# text: root.text_variable_3
elevation_normal: 2
opposite_colors: True
pos_hint: {'center_x': .5}
MDLabel:
font_style: 'H6'
text: root.text_variable_3
font_size: '13sp'
color: (1,1,1,1)
halign: 'center'
OneLineListItem:
text: "publickeys"
BoxLayout:
@ -66,12 +84,18 @@
size_hint_y: None
height: dp(58)
MDRaisedButton:
size_hint: .5, 0
size_hint: .6, 0
height: dp(40)
text: root.text_variable_4
# text: root.text_variable_4
elevation_normal: 2
opposite_colors: True
pos_hint: {'center_x': .5}
MDLabel:
font_style: 'H6'
text: root.text_variable_4
font_size: '13sp'
color: (1,1,1,1)
halign: 'center'
OneLineListItem:
text: "objects"
BoxLayout:
@ -79,9 +103,15 @@
size_hint_y: None
height: dp(58)
MDRaisedButton:
size_hint: .5, 0
size_hint: .6, 0
height: dp(40)
text: root.text_variable_5
# text: root.text_variable_5
elevation_normal: 2
opposite_colors: True
pos_hint: {'center_x': .5}
MDLabel:
font_style: 'H6'
text: root.text_variable_5
font_size: '13sp'
color: (1,1,1,1)
halign: 'center'

View File

@ -45,7 +45,7 @@
Rectangle:
pos: self.pos
size: self.size
size: dp(app.window_size[0] - 2*self.parent.parent.padding[0]) - 10 , 1
size: app.window_size[0] - 2*self.parent.parent.padding[0] - dp(10) , 1
height: dp(40)
on_press: root.get_free_credits(self)
MDLabel:
@ -91,7 +91,7 @@
Rectangle:
pos: self.pos
size: self.size
size: dp(app.window_size[0] - 2*self.parent.parent.padding[0]) - 10 , 1
size: app.window_size[0] - 2*self.parent.parent.padding[0] - dp(10) , 1
height: dp(40)
on_press: root.create_hidden_payment_address(self)
MDLabel:
@ -137,7 +137,7 @@
Rectangle:
pos: self.pos
size: self.size
size: dp(app.window_size[0] - 2*self.parent.parent.padding[0]) - 10 , 1
size: app.window_size[0] - 2*self.parent.parent.padding[0] - dp(10) , 1
height: dp(40)
on_press: root.create_hidden_payment_address(self)
MDLabel:

View File

@ -338,6 +338,19 @@
id: myadd_popup_box
size_hint_y: None
orientation: 'vertical'
spacing:dp(8 if app.app_platform == 'android' else 3)
BoxLayout:
orientation: 'vertical'
MDLabel:
id: from_add_label
font_style: 'Subtitle2'
theme_text_color: 'Primary'
text: "From :"
font_size: '15sp'
halign: 'left'
Widget:
size_hint_y: None
height: dp(1 if app.app_platform == 'android' else 0)
BoxLayout:
size_hint_y: None
height: 50
@ -346,13 +359,23 @@
id: sd_label
font_style: 'Body2'
theme_text_color: 'Primary'
text: "From : [b]" + root.from_addr + "[/b]"
text: "[b]" + root.from_addr + "[/b]"
font_size: '15sp'
halign: 'left'
markup: True
IconRightSampleWidget:
icon: 'content-copy'
on_press: app.copy_composer_text(root.from_addr)
Widget:
id: space_1
size_hint_y: None
height: dp(2 if app.app_platform == 'android' else 0)
BoxLayout:
id: to_addtitle
Widget:
id:space_2
size_hint_y: None
height: dp(1 if app.app_platform == 'android' else 0)
BoxLayout:
id: to_addId
BoxLayout:
@ -370,7 +393,8 @@
orientation: 'vertical'
MDRaisedButton:
on_press: root.dismiss()
pos_hint: {'x': 0.85, 'y': 0}
size_hint: .2, 0
pos_hint: {'x': 0.8, 'y': 0}
MDLabel:
font_style: 'H6'
text: 'Cancel'
@ -383,9 +407,19 @@
MDLabel:
font_style: 'Body2'
theme_text_color: 'Primary'
text: "To : " + root.to_addr
text: root.to_addr
font_size: '15sp'
halign: 'left'
IconRightSampleWidget:
icon: 'content-copy'
on_press: app.copy_composer_text(root.to_addr)
<ToAddressTitle>:
orientation: 'vertical'
MDLabel:
id: to_add_label
font_style: 'Subtitle2'
theme_text_color: 'Primary'
text: "To :"
font_size: '15sp'
halign: 'left'

View File

@ -11,10 +11,12 @@
BoxLayout:
size_hint_y: None
orientation: 'vertical'
height: dp(400) + self.minimum_height
height: dp(250) + self.minimum_height
padding: 10
BoxLayout:
size_hint_y: None
orientation: 'horizontal'
height: self.minimum_height
MDCheckbox:
id: chkbox
size_hint: None, None
@ -29,23 +31,6 @@
halign: 'left'
pos_hint: {'center_x': 0, 'center_y': 0.6}
disabled: True
BoxLayout:
orientation: 'vertical'
padding: [0, 10, 0, 0]
spacing: 10
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
text: "Interface Language"
halign: 'right'
bold: True
MDDropDownItem:
id: dropdown_item
text: 'italiano'
dropdown_max_height: 150
dropdown_bg: [1, 1, 1, 1]
pos_hint: {'center_x': 0.8, 'center_y': 0}
items: [f"{i}" for i in ['System Setting','U.S. English','italiano','Esperanto','dansk','Deutsch','Pirate English','francais','Nederlands','norsk bokmal','polski','portugues europeu']]
BoxLayout:
size_hint_y: None
orientation: 'vertical'
@ -104,6 +89,10 @@
text: "Close to tray"
halign: 'left'
pos_hint: {'x': 0, 'y': .5}
BoxLayout:
size_hint_y: None
orientation: 'vertical'
height: dp(100) + self.minimum_height
BoxLayout:
orientation: 'horizontal'
MDCheckbox:
@ -117,7 +106,7 @@
theme_text_color: 'Primary'
text: "Hide connection notifications"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0.2}
BoxLayout:
orientation: 'horizontal'
MDCheckbox:
@ -131,7 +120,7 @@
theme_text_color: 'Primary'
text: "Show notification when message received"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0.2}
BoxLayout:
orientation: 'horizontal'
MDCheckbox:
@ -145,17 +134,19 @@
theme_text_color: 'Primary'
text: "Run in Portable Mode"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0.2}
BoxLayout:
# id: box_height
orientation: 'horizontal'
padding: 10
orientation: 'vertical'
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
text: 'In portable Mode, messages and config files are stored in the same directory as the program rather then the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.'
# text: 'huiiiii'
halign: 'left'
BoxLayout:
size_hint_y: None
orientation: 'vertical'
height: dp(100) + self.minimum_height
BoxLayout:
orientation: 'horizontal'
MDCheckbox:
@ -168,7 +159,7 @@
theme_text_color: 'Primary'
text: "Willingly include unencrypted destination address when sending to a mobile device"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0.2}
BoxLayout:
orientation: 'horizontal'
MDCheckbox:
@ -182,7 +173,7 @@
theme_text_color: 'Primary'
text: "Use identicons"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0.2}
BoxLayout:
orientation: 'horizontal'
MDCheckbox:
@ -195,32 +186,38 @@
theme_text_color: 'Primary'
text: "Reply below Quote"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0.2}
Widget:
size_hint_y: None
height: 10
# BoxLayout:
# orientation: 'vertical'
# spacing: 10
# padding: 10
# MDLabel:
# font_style: 'Body1'
# theme_text_color: 'Primary'
# text: "Interface Language"
# halign: 'left'
# bold: True
# MDDropDownItem:
# id: dropdown_item
# # on_select
# text: 'italiano'
# dropdown_max_height: 150
# pos_hint: {'center_x': 0.1, 'center_y': 0}
# items: [f"{i}" for i in ['System Setting','U.S. English','italiano','Esperanto','dansk','Deutsch','Pirate English','francais','Nederlands','norsk bokmal','polski','portugues europeu']]
BoxLayout:
size_hint_y: None
orientation: 'vertical'
# padding: [0, 10, 0, 0]
spacing: 10
padding: [20, 0, 0, 0]
height: dp(20) + self.minimum_height
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
text: "Interface Language"
# halign: 'right'
bold: True
MDDropDownItem:
id: dropdown_item
text: 'italiano'
dropdown_max_height: 150
dropdown_bg: [1, 1, 1, 1]
# pos_hint: {'center_x': 0.5, 'center_y': 0}
items: [f"{i}" for i in ['System Setting','U.S. English','italiano','Esperanto','dansk','Deutsch','Pirate English','francais','Nederlands','norsk bokmal','polski','portugues europeu']]
BoxLayout:
spacing:5
orientation: 'horizontal'
pos_hint: {'x':.76}
# pos_hint: {'x':.76}
BoxLayout:
orientation: 'horizontal'
# padding: [0, 10, 0, 0]
spacing: 10
MDRaisedButton:
text: 'Reset'
MDRaisedButton:
@ -232,7 +229,7 @@
BoxLayout:
size_hint_y: None
orientation: 'vertical'
height: dp(550) + self.minimum_height
height: dp(500) + self.minimum_height
padding: 10
BoxLayout:
id: box_height
@ -275,7 +272,7 @@
theme_text_color: 'Primary'
text: "UPnP"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0}
BoxLayout:
orientation: 'vertical'
MDLabel:
@ -301,9 +298,11 @@
pos_hint: {'x': 0.9, 'y': 0}
items: [f"{i}" for i in ['System Setting','U.S. English']]
BoxLayout:
orientation: 'horizontal'
size_hint_y: None
orientation: 'vertical'
padding: [30, 0, 0, 0]
spacing: 10
height: dp(100) + self.minimum_height
BoxLayout:
orientation: 'horizontal'
MDLabel:
@ -337,10 +336,6 @@
hint_text: '9050'
pos_hint: {'center_y': .5, 'center_x': .5}
input_filter: "int"
BoxLayout:
orientation: 'horizontal'
padding: [30, 0, 0, 0]
spacing: 10
BoxLayout:
orientation: 'horizontal'
MDLabel:
@ -377,7 +372,7 @@
theme_text_color: 'Primary'
text: "Authentication"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0}
BoxLayout:
orientation: 'horizontal'
padding: [30, 0, 0, 0]
@ -392,7 +387,7 @@
theme_text_color: 'Primary'
text: "Listen for incoming connections when using proxy"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0}
BoxLayout:
orientation: 'horizontal'
padding: [30, 0, 0, 0]
@ -407,7 +402,7 @@
theme_text_color: 'Primary'
text: "Only connect to onion services(*.onion)"
halign: 'left'
pos_hint: {'x': 0, 'y': 0.1}
pos_hint: {'x': 0, 'y': 0}
BoxLayout:
orientation: 'vertical'
MDLabel:
@ -417,8 +412,10 @@
halign: 'left'
bold: True
BoxLayout:
size_hint_y: None
orientation: 'horizontal'
padding: [30, 0, 0, 0]
height: dp(30) + self.minimum_height
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
@ -426,13 +423,15 @@
halign: 'left'
MDTextFieldRect:
size_hint: None, None
size: dp(app.window_size[0]/2), dp(30)
size: app.window_size[0]/2, dp(30)
hint_text: '0'
pos_hint: {'center_y': .5, 'center_x': .5}
input_filter: "int"
BoxLayout:
size_hint_y: None
orientation: 'horizontal'
padding: [30, 0, 0, 0]
height: dp(30) + self.minimum_height
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
@ -440,13 +439,15 @@
halign: 'left'
MDTextFieldRect:
size_hint: None, None
size: dp(app.window_size[0]/2), dp(30)
size: app.window_size[0]/2, dp(30)
hint_text: '0'
pos_hint: {'center_y': .5, 'center_x': .5}
input_filter: "int"
BoxLayout:
size_hint_y: None
orientation: 'horizontal'
padding: [30, 0, 0, 0]
height: dp(30) + self.minimum_height
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
@ -454,14 +455,14 @@
halign: 'left'
MDTextFieldRect:
size_hint: None, None
size: dp(app.window_size[0]/2), dp(30)
size: app.window_size[0]/2, dp(30)
hint_text: '8'
pos_hint: {'center_y': .5, 'center_x': .5}
input_filter: "int"
BoxLayout:
spacing:5
orientation: 'horizontal'
pos_hint: {'x':.76}
# pos_hint: {'x':.76}
MDRaisedButton:
text: 'Reset'
MDRaisedButton:
@ -473,28 +474,34 @@
BoxLayout:
size_hint_y: None
orientation: 'vertical'
height: dp(200) + self.minimum_height
height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height
padding: 20
spacing: 10
# spacing: 10
BoxLayout:
id: box_height
# size_hint_y: None
id: box1_height
orientation: 'vertical'
# height: dp(100) + self.minimum_height
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
text: root.exp_text
halign: 'left'
BoxLayout:
id: box_height
id: box2_height
size_hint_y: None
orientation: 'vertical'
height: dp(30) + self.minimum_height
MDLabel:
font_style: 'Body1'
theme_text_color: 'Primary'
text: "Leave these input fields blank for the default behavior."
halign: 'left'
BoxLayout:
orientation: 'horizontal'
size_hint_y: None
orientation: 'vertical'
padding: [10, 0, 0, 0]
height: dp(50) + self.minimum_height
BoxLayout:
orientation: 'horizontal'
MDLabel:
@ -525,10 +532,12 @@
text: "months"
halign: 'left'
BoxLayout:
size_hint_y: None
spacing:5
orientation: 'horizontal'
# pos_hint: {'left': 0}
pos_hint: {'x':.75}
# pos_hint: {'x':.75}
height: dp(50) + self.minimum_height
MDRaisedButton:
text: 'Reset'
MDRaisedButton:

View File

@ -98,7 +98,8 @@
text: "Accounts"
height:"35dp"
NavigationItem:
size: 50,50
# size: 50,50
height: dp(48)
CustomSpinner:
id: btn
pos_hint:{"x":0,"y":0}
@ -301,7 +302,7 @@ NavigationLayout:
orientation: 'vertical'
size_hint: (None, None)
pos_hint:{'center_x': .5, 'top': 0.9}
size: (app.window_size[0]/2, app.window_size[0]/2)
size: (app.window_size[0]/1.8, app.window_size[0]/1.8)
id: qr
BoxLayout:
orientation: 'vertical'
@ -315,9 +316,9 @@ NavigationLayout:
line_color_normal: [0,0,0,0]
_current_line_color: [0,0,0,0]
line_color_focus: [0,0,0,0]
font_size: '18sp'
halign: 'center'
font_size: dp(15)
bold: True
pos_hint: {'x': .26, 'y': 0.5}
# MDLabel:
# size_hint_y: None
# font_style: 'Body1'

View File

@ -70,6 +70,8 @@ import state
from addresses import decodeAddress
from kivy.uix.modalview import ModalView
from datetime import datetime
if platform != 'android':
from kivy.config import Config
Config.set('input', 'mouse', 'mouse,multitouch_on_demand')
# pylint: disable=too-few-public-methods,too-many-arguments,attribute-defined-outside-init
@ -219,6 +221,7 @@ class Inbox(Screen):
text=item['text'], secondary_text=item['secondary_text'],
theme_text_color='Custom',
text_color=NavigateApp().theme_cls.primary_color)
meny._txt_right_pad=dp(70)
meny.add_widget(AvatarSampleWidget(
source='./images/text_images/{}.png'.format(
avatarImageFirstLetter(item['secondary_text'].strip()))))
@ -404,6 +407,7 @@ class MyAddress(Screen):
text=item['text'], secondary_text=item['secondary_text'],
theme_text_color='Custom' if is_enable == 'true' else 'Primary',
text_color=NavigateApp().theme_cls.primary_color,)
meny._txt_right_pad=dp(70)
try:
meny.canvas.children[6].rgba = [0, 0, 0, 0] if is_enable == 'true' else [0.5, 0.5, 0.5, 0.5]
except Exception:
@ -414,13 +418,15 @@ class MyAddress(Screen):
meny.bind(on_press=partial(
self.myadd_detail, item['secondary_text'], item['text']))
if state.association == item['secondary_text']:
meny.add_widget(
BadgeText(
badge_obj = BadgeText(
size_hint=(None, None),
text='Active', halign='right',
# font_size = '50sp',
font_style='Body1', size=[50, 60],
theme_text_color='Custom',
text_color=NavigateApp().theme_cls.primary_color))
text_color=NavigateApp().theme_cls.primary_color)
badge_obj.font_size = '13sp'
meny.add_widget(badge_obj)
else:
meny.add_widget(ToggleBtn(active=True if is_enable == 'true' else False))
# carousel = Carousel(direction='right')
@ -1137,6 +1143,7 @@ class Sent(Screen):
text=item['text'], secondary_text=item['secondary_text'],
theme_text_color='Custom',
text_color=NavigateApp().theme_cls.primary_color)
meny._txt_right_pad=dp(70)
meny.add_widget(AvatarSampleWidget(
source='./images/text_images/{}.png'.format(
avatarImageFirstLetter(item['secondary_text'].strip()))))
@ -1355,6 +1362,7 @@ class Trash(Screen):
subject) >= 50 else (subject + ',' + body)[0:50] + '........').replace('\t', '').replace(' ', ''),
theme_text_color='Custom',
text_color=NavigateApp().theme_cls.primary_color)
meny._txt_right_pad=dp(70)
img_latter = './images/text_images/{}.png'.format(
subject[0].upper() if (subject[0].upper() >= 'A' and subject[0].upper() <= 'Z') else '!')
meny.add_widget(AvatarSampleWidget(source=img_latter))
@ -1587,6 +1595,8 @@ class NavigateApp(MDApp):
if platform == 'android':
# android_path = os.path.expanduser
# ("~/user/0/org.test.bitapp/files/app/")
if not os.path.exists('./images/default_identicon/{}.png'.format(
BMConfigParser().addresses()[0])):
android_path = os.path.join(
os.environ['ANDROID_PRIVATE'] + '/app/')
img.texture.save('{1}/images/default_identicon/{0}.png'.format(
@ -2023,16 +2033,44 @@ class NavigateApp(MDApp):
ext=['.png', '.jpg']
)
self.manager.add_widget(self.file_manager)
self.file_manager.show(os.environ["HOME"])
# self.file_manager.show(os.environ["HOME"])
if platform == 'android':
from android.permissions import request_permissions, Permission
request_permissions([Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_EXTERNAL_STORAGE])
# from android.storage import app_storage_path
# settings_path = app_storage_path()
# print('path1................................', settings_path)
# from android.storage import primary_external_storage_path
# primary_ext_storage = primary_external_storage_path()
# print('path1................................', primary_ext_storage)
# from android.storage import secondary_external_storage_path
# secondary_ext_storage = secondary_external_storage_path()
# print('path1................................', secondary_ext_storage)
# from kivy.app import user_data_dir
# from os.path import dirname, join
# out = join(dirname(user_data_dir), 'DCIM')
# DCIM = join('/sdcard', 'DCIM')
self.file_manager.show(os.getenv('EXTERNAL_STORAGE') if platform == 'android' else os.environ["HOME"])
# self.file_manager.show(os.getenv('EXTERNAL_STORAGE'))
self.manager_open = True
self.manager.open()
def select_path(self, path):
"""This method is used to save the select image"""
from PIL import Image as PilImage
newImg = PilImage.open(path).resize((300, 300))
if platform == 'android':
android_path = os.path.join(
os.environ['ANDROID_PRIVATE'] + '/app/')
newImg.save('{1}/images/default_identicon/{0}.png'.format(
state.association, android_path))
else:
if not os.path.exists('./images/default_identicon/'):
os.makedirs('./images/default_identicon/')
newImg = PilImage.open(path).resize((300, 300))
newImg.save('./images/default_identicon/{0}.png'.format(state.association))
self.load_selected_Image(state.association)
self.exit_manager()
@ -2040,7 +2078,6 @@ class NavigateApp(MDApp):
def exit_manager(self, *args):
"""Called when the user reaches the root of the directory tree."""
self.manager.dismiss()
self.manager_open = False
@ -2577,6 +2614,7 @@ class Draft(Screen):
text='Draft', secondary_text=item['text'],
theme_text_color='Custom',
text_color=NavigateApp().theme_cls.primary_color)
meny._txt_right_pad=dp(70)
meny.add_widget(AvatarSampleWidget(
source='./images/avatar.png'))
meny.bind(on_press=partial(
@ -2779,6 +2817,7 @@ class Allmails(Screen):
subject + ',' + body)[0:50] + '........').replace('\t', '').replace(' ', ''),
theme_text_color='Custom',
text_color=NavigateApp().theme_cls.primary_color)
meny._txt_right_pad=dp(70)
meny.add_widget(AvatarSampleWidget(
source='./images/text_images/{}.png'.format(
avatarImageFirstLetter(body.strip()))))
@ -3016,18 +3055,23 @@ class SenderDetailPopup(Popup):
self.from_addr = from_addr
time_obj = datetime.fromtimestamp(int(timeinseconds))
self.time_tag = time_obj.strftime("%d %b %Y, %I:%M %p")
pop_height = 1.2 * (self.ids.sd_label.height + self.ids.sd_btn.children[0].height)
device_type = 2 if platform == 'android' else 1.5
pop_height = device_type * (self.ids.sd_label.height + self.ids.sd_btn.children[0].height)
if len(to_addr) > 3:
self.height = 0
self.height = pop_height
self.ids.to_addId.size_hint_y = None
self.ids.to_addId.height = 50
self.ids.to_addtitle.add_widget(ToAddressTitle())
frmaddbox = ToAddrBoxlayout()
frmaddbox.set_toAddress(to_addr)
self.ids.to_addId.add_widget(frmaddbox)
else:
self.ids.space_1.height = dp(0)
self.ids.space_2.height = dp(0)
self.ids.myadd_popup_box.spacing = dp(8 if platform == 'android' else 3)
self.height = 0
self.height = pop_height / 1.5
self.height = pop_height / 1.2
class OneLineListTitle(OneLineListItem):
@ -3079,6 +3123,11 @@ class ToAddrBoxlayout(BoxLayout):
self.to_addr = to_addr
class ToAddressTitle(BoxLayout):
"""class for BoxLayout behaviour"""
pass
class RandomBoxlayout(BoxLayout):
"""class for BoxLayout behaviour"""
pass

View File

@ -234,7 +234,7 @@ class NewAddressWizardWaitPage(QtGui.QWizardPage):
self.wizard().button(QtGui.QWizard.NextButton).click()
return
elif i == 101:
print "haha"
print("haha")
return
self.progressBar.setValue(i)
if i == 50:
@ -347,8 +347,8 @@ if __name__ == '__main__':
wizard = Ui_NewAddressWizard(["a", "b", "c", "d"])
if (wizard.exec_()):
print "Email: " + ("yes" if wizard.field("emailAsWell").toBool() else "no")
print "BM: " + ("yes" if wizard.field("onlyBM").toBool() else "no")
print("Email: " + ("yes" if wizard.field("emailAsWell").toBool() else "no"))
print("BM: " + ("yes" if wizard.field("onlyBM").toBool() else "no"))
else:
print "Wizard cancelled"
print("Wizard cancelled")
sys.exit()

View File

@ -1,10 +1,10 @@
[app]
# (str) Title of your application
title = bitapp
title = py3
# (str) Package name
package.name = bitapp
package.name = py3
# (str) Package domain (needed for android/ios packaging)
package.domain = org.test
@ -37,12 +37,13 @@ version = 0.1
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements =
python3,
openssl,
sqlite3,
python2,
kivy,
bitmsghash,
kivymd,
#git+https://github.com/surbhicis/KivyMD-1.git,
git+https://github.com/surbhicis/KivyMD-1#egg=kivymd,
kivy-garden,
qrcode,
Pillow,
@ -206,7 +207,7 @@ android.arch = armeabi-v7a
#
# (str) python-for-android git clone directory (if empty, it will be automatically cloned from github)
#p4a.source_dir =
p4a.source_dir = /home/cis/Music/androidp4a/python-for-android
# (str) The directory in which python-for-android should look for your own build recipes (if any)
p4a.local_recipes = /home/cis/navjotrepo/PyBitmessage/src/bitmessagekivy/android/python-for-android/recipes/

View File

@ -390,7 +390,9 @@ class sqlThread(threading.Thread):
logger.debug(
'In messages.dat database, done adding address field to the pubkeys table'
' and removing the hash field.')
self.cur.execute('''update settings set value=10 WHERE key='version';''')
query = '''update settings set value=? WHERE key='version';'''
parameters = (10,)
self.cur.execute(query, parameters)
# Add a new table: chat and chatdata for storing chating conversation
item = '''SELECT value FROM settings WHERE key='version';'''
@ -398,11 +400,10 @@ class sqlThread(threading.Thread):
self.cur.execute(item, parameters)
currentVersion = int(self.cur.fetchall()[0][0])
if currentVersion == 10:
self.cur.execute('''DROP TABLE chat''')
self.cur.execute(
'''CREATE TABLE chat'''
''' (msgid blob, senderaddress text, receiveraddress text, message text,'''
''' senttime text, receivedtime text, image blob, audio blob, reference blob,'''
''' receivedtime text, image blob, audio blob, reference blob,'''
''' UNIQUE(msgid) ON CONFLICT REPLACE)''')
item = '''update settings set value=? WHERE key='version';'''
parameters = (11,)

View File

@ -174,7 +174,7 @@ class namecoinConnection(object):
message = ('failed', tr._translate("MainWindow", 'Couldn\'t understand NMControl.'))
else:
print "Unsupported Namecoin type"
print("Unsupported Namecoin type")
sys.exit(1)
return message

View File

@ -19,19 +19,19 @@ class HttpConnection(AdvancedDispatcher):
self.destination = (host, 80)
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
self.connect(self.destination)
print "connecting in background to %s:%i" % (self.destination[0], self.destination[1])
print("connecting in background to %s:%i" % (self.destination[0], self.destination[1]))
def state_init(self):
self.append_write_buf(
"GET %s HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n" % (
self.path, self.destination[0]))
print "Sending %ib" % (len(self.write_buf))
print("Sending %ib" % (len(self.write_buf)))
self.set_state("http_request_sent", 0)
return False
def state_http_request_sent(self):
if self.read_buf:
print "Received %ib" % (len(self.read_buf))
print("Received %ib" % (len(self.read_buf)))
self.read_buf = b""
if not self.connected:
self.set_state("close", 0)
@ -63,13 +63,13 @@ if __name__ == "__main__":
for host in ("bootstrap8080.bitmessage.org", "bootstrap8444.bitmessage.org"):
proxy = Socks5Resolver(host=host)
while asyncore.socket_map:
print "loop %s, len %i" % (proxy.state, len(asyncore.socket_map))
print("loop %s, len %i" % (proxy.state, len(asyncore.socket_map)))
asyncore.loop(timeout=1, count=1)
proxy.resolved()
proxy = Socks4aResolver(host=host)
while asyncore.socket_map:
print "loop %s, len %i" % (proxy.state, len(asyncore.socket_map))
print("loop %s, len %i" % (proxy.state, len(asyncore.socket_map)))
asyncore.loop(timeout=1, count=1)
proxy.resolved()

View File

@ -49,7 +49,7 @@ if __name__ == "__main__":
if len(asyncore.socket_map) < parallel:
for i in range(parallel - len(asyncore.socket_map)):
HTTPClient('127.0.0.1', '/')
print "Active connections: %i" % (len(asyncore.socket_map))
print("Active connections: %i" % (len(asyncore.socket_map)))
asyncore.loop(count=len(asyncore.socket_map) / 2)
if requestCount % 100 == 0:
print "Processed %i total messages" % (requestCount)
print("Processed %i total messages" % (requestCount))