commit 52b43c57b8855f76f16408af81d957a067164e51
parent ed59498cccf33b096a37f6c5b2c44d3b30d9e6eb
Author: ThomasV <thomasv@gitorious>
Date: Wed, 25 Feb 2015 22:48:47 +0100
android create and restore
Diffstat:
2 files changed, 29 insertions(+), 49 deletions(-)
diff --git a/gui/android.py b/gui/android.py
@@ -907,31 +907,43 @@ class ElectrumGui:
storage = WalletStorage(config)
if not storage.file_exists:
action = self.restore_or_create()
- if not action: exit()
+ if not action:
+ exit()
+
+ password = droid.dialogGetPassword('Choose a password').result
+ if password:
+ password2 = droid.dialogGetPassword('Confirm password').result
+ if password != password2:
+ modal_dialog('Error','passwords do not match')
+ exit()
- wallet = Wallet(storage)
if action == 'create':
- wallet.init_seed(None)
- self.show_seed()
- wallet.save_seed(None)
- wallet.synchronize() # generate first addresses offline
-
+ wallet = Wallet(storage)
+ seed = wallet.make_seed()
+ modal_dialog('Your seed is:', seed)
elif action == 'restore':
seed = self.seed_dialog()
if not seed:
exit()
- wallet.init_seed(str(seed))
- wallet.save_seed(None)
+ if not Wallet.is_seed(seed):
+ exit()
+ wallet = Wallet.from_seed(seed, storage)
else:
exit()
+ msg = "Creating wallet" if action == 'create' else "Restoring wallet"
+ droid.dialogCreateSpinnerProgress("Electrum", msg)
+ droid.dialogShow()
+ wallet.add_seed(seed, password)
+ wallet.create_master_keys(password)
+ wallet.create_main_account(password)
wallet.start_threads(network)
-
if action == 'restore':
- if not self.restore_wallet():
- exit()
-
- self.password_dialog()
+ wallet.restore(lambda x: None)
+ else:
+ wallet.synchronize()
+ droid.dialogDismiss()
+ droid.vibrate()
else:
wallet = Wallet(storage)
@@ -978,7 +990,6 @@ class ElectrumGui:
if not response: return
if response.get('which') == 'negative':
return
-
return 'restore' if response.get('which') == 'neutral' else 'create'
@@ -992,39 +1003,6 @@ class ElectrumGui:
return
else:
m = modal_input('Mnemonic','please enter your code')
-
return str(seed)
- def network_dialog(self):
- return True
-
-
- def show_seed(self):
- modal_dialog('Your seed is:', wallet.get_mnemonic(None))
-
-
- def password_dialog(self):
- change_password_dialog()
-
-
- def restore_wallet(self):
-
- msg = "recovering wallet..."
- droid.dialogCreateSpinnerProgress("Electrum", msg)
- droid.dialogShow()
-
- wallet.restore(lambda x: None)
-
- droid.dialogDismiss()
- droid.vibrate()
-
- if wallet.is_found():
- wallet.fill_addressbook()
- modal_dialog("recovery successful")
- else:
- if not modal_question("no transactions found for this seed","do you want to keep this wallet?"):
- return False
-
- return True
-
diff --git a/lib/wallet.py b/lib/wallet.py
@@ -1230,7 +1230,9 @@ class Deterministic_Wallet(Abstract_Wallet):
wait_for_wallet()
else:
self.synchronize()
- self.fill_addressbook()
+
+ # disable this because it crashes android
+ #self.fill_addressbook()
def is_beyond_limit(self, address, account, is_change):