URI: 
       tandroid create and restore - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit 52b43c57b8855f76f16408af81d957a067164e51
   DIR parent ed59498cccf33b096a37f6c5b2c44d3b30d9e6eb
  HTML Author: ThomasV <thomasv@gitorious>
       Date:   Wed, 25 Feb 2015 22:48:47 +0100
       
       android create and restore
       
       Diffstat:
         M gui/android.py                      |      74 +++++++++++--------------------
         M lib/wallet.py                       |       4 +++-
       
       2 files changed, 29 insertions(+), 49 deletions(-)
       ---
   DIR diff --git a/gui/android.py b/gui/android.py
       t@@ -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)
       t@@ -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'
        
        
       t@@ -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
       -
   DIR diff --git a/lib/wallet.py b/lib/wallet.py
       t@@ -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):