Changeset 323 for trunk

Show
Ignore:
Timestamp:
06/02/09 17:38:02 (3 years ago)
Author:
ocjhb
Message:

added options menu; options menu clicks while preparing list of access points get cought

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/sandbox/jhb/mobile/ocwallet.py

    r322 r323  
    1 import appuifw,e32,os,sys 
     1import appuifw,e32,os,sys,time 
    22 
    33def error_catched(f): 
     
    4949 
    5050    def feedback(self,text,cb=None): 
     51        self.setOptions(True) 
    5152        status(unicode(text),callback=cb) 
    5253         
    53  
     54    def setOptions(self,clear=False): 
     55        menu = [] 
     56        if clear: 
     57            appuifw.app.menu=[(u'Please wait...',lambda:None)] 
     58            return 
     59        if appuifw.app.body !=  self.wallet_menu: 
     60            menu.append((u'Main menu',self.displayWalletMenu)) 
     61        hascurrencies = self.wallet.listCurrencies() 
     62        if hascurrencies: 
     63            menu.extend([(u'Pay',self.spendCoins), 
     64                      (u'Receive',self.receiveCoins), 
     65                      (u'Get change',self.freshenUp), 
     66                      (u'Widthdraw',self.mintCoins), 
     67                      (u'Exchange back',self.redeemCoins)]) 
     68            if not hasattr(self,'currency_menu') or appuifw.app.body != self.currency_menu: 
     69                menu.append((u'Inspect currency',self.inspectCurrency)) 
     70            menu.append((u'--------',lambda:None)) 
     71        menu.append((u'add currency',self.addCurrency)) 
     72        if hascurrencies: 
     73            menu.append((u'delete currency',self.delCurrency)) 
     74        menu.append((u'new password',self.newPassword))             
     75        appuifw.app.menu = menu  
     76 
     77         
    5478    def displayWalletMenu(self): 
    5579        self.makeWalletMenu() 
    5680        appuifw.app.body =  self.wallet_menu 
    5781        appuifw.app.title = u'opencoin wallet\nall currencies' 
    58         appuifw.app.menu = [(u'add currency',self.addCurrency), 
    59                             (u'delete currency',self.delCurrency), 
    60                             (u'new password',self.newPassword),] 
     82        self.setOptions() 
    6183 
    6284    def displayActionMenu(self): 
     
    6991        cdd,amount = self.getCurrentCurrency() 
    7092        appuifw.app.title = u'%ss\nactions' % cdd.currencyId 
     93        self.setOptions() 
    7194        #print 'displayActionMenu' 
    7295 
     
    120143        appuifw.app.body = self.currency_menu 
    121144        appuifw.app.title = u'%ss\ncoin list' % id 
    122   
     145        self.setOptions() 
     146 
    123147    def inspectCoin(self): 
    124148        cdd,amount = self.getCurrentCurrency() 
     
    136160        appuifw.app.body = self.coin_menu 
    137161        appuifw.app.title = u'%ss\ncoin details' % id 
     162        self.setOptions() 
    138163  
    139164    def addCurrency(self): 
     
    447472            import socket 
    448473            if sys.platform == 'symbian_s60': 
    449                 self.feedback(u'Prepare internet:search access') 
     474                self.feedback(u'Prepare internet:please wait...') 
    450475                aps = [ap['name'] for ap in socket.access_points()] 
    451476                aps.sort() 
    452                 apid = appuifw.popup_menu(aps,u'select access') 
     477                time_taken=0 
     478                while time_taken < 1: 
     479                    started = time.time() 
     480                    apid = appuifw.popup_menu(aps,u'select access point') 
     481                    time_taken = time.time() - started 
    453482                if apid == None: 
    454483                    return None 
    455                 self.feedback(u'Prepare interne:set access') 
     484                self.feedback(u'Prepare internet:set access point') 
    456485 
    457486                socket.set_default_access_point(aps[apid]) 
     
    615644 
    616645#give a bit of time to read the last message 
    617 import time 
    618646time.sleep(1)