self.phonenumber = ""
self.prettynumber = ""
self.areacode = "518"
- self.gcd = GCDialer()
self.clipboard = gtk.clipboard_get()
self.wTree = gtk.Builder()
+ self.recentmodel = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
+ self.recentviewselection = None
+ self.callbackNeedsSetup = True
+ self.recenttime = 0.0
for path in [ './gc_dialer.xml',
'../lib/gc_dialer.xml',
break
else:
self.ErrPopUp("Cannot find gc_dialer.xml")
- sys.exit(1)#@todo Is this the best way to force a quit on error?
+ gtk.main_quit()
+ return
+
- self.window = self.wTree.get_object("Dialpad")
#Get the buffer associated with the number display
self.numberdisplay = self.wTree.get_object("numberdisplay")
self.setNumber("")
-
- self.recentview = self.wTree.get_object("recentview")
- self.recentmodel = gtk.ListStore(gobject.TYPE_STRING, gobject.TYPE_STRING)
- self.recentview.set_model(self.recentmodel)
- textrenderer = gtk.CellRendererText()
-
- # Add the column to the treeview
- column = gtk.TreeViewColumn("Calls", textrenderer, text=1)
- column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
- self.recentview.append_column(column)
-
- self.recentviewselection = self.recentview.get_selection()
- self.recentviewselection.set_mode(gtk.SELECTION_SINGLE)
- self.recenttime = 0.0
-
self.notebook = self.wTree.get_object("notebook")
self.isHildon = False
+
+ self.window = self.wTree.get_object("Dialpad")
#if True:
try:
+ #self.osso = osso.Context("gc_dialer", "0.6.0", False)
+ #device = osso.DeviceState(self.osso)
+ #device.set_device_state_callback(self.on_device_state_change, None)
+ #abook.init_with_name("gc_dialer", self.osso)
+ #self.ebook = evo.open_addressbook("default")
self.app = hildon.Program()
self.wTree.get_object("callbackentry").set_property('hildon-input-mode', 1|(1 << 4))
self.isHildon = True
}
self.wTree.connect_signals(callbackMapping)
- self.attemptLogin(3)
- if self.gcd.getCallbackNumber() is None:
- self.gcd.setSaneCallback()
+ # Defer initalization of recent view
+ self.gcd = GCDialer()
- self.setAccountNumber()
- self.setupCallbackCombo()
- self.reduce_memory()
+ gobject.idle_add(self.init_grandcentral)
+ gobject.idle_add(self.init_recentview)
- def reduce_memory(self):
- re.purge()
- num = gc.collect()
- #print "collect %d objects" % ( num )
+ #self.reduce_memory()
+
+ def init_grandcentral(self):
+ """ deferred initalization of the grandcentral info """
+
+ try:
+ self.attemptLogin(2)
+ if self.gcd.isAuthed():
+ if self.gcd.getCallbackNumber() is None:
+ self.gcd.setSaneCallback()
+ self.setAccountNumber()
+ except:
+ self.setAccountNumber()
+
+ return False
+
+ def init_recentview(self):
+ """ deferred initalization of the recent view treeview """
+
+ recentview = self.wTree.get_object("recentview")
+ recentview.set_model(self.recentmodel)
+ textrenderer = gtk.CellRendererText()
+
+ # Add the column to the treeview
+ column = gtk.TreeViewColumn("Calls", textrenderer, text=1)
+ column.set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
+
+ recentview.append_column(column)
+
+ self.recentviewselection = recentview.get_selection()
+ self.recentviewselection.set_mode(gtk.SELECTION_SINGLE)
+
+ return False
+
+# re.purge()
+# #print "collect %d objects" % ( num )
def on_recentview_row_activated(self, treeview, path, view_column):
model, itr = self.recentviewselection.get_selected()
def on_notebook_switch_page(self, notebook, page, page_num):
if page_num == 1 and (time.time() - self.recenttime) > 300:
- self.populate_recentview()
+ gobject.idle_add(self.populate_recentview)
+ elif page_num ==2 and self.callbackNeedsSetup:
+ gobject.idle_add(self.setupCallbackCombo)
def populate_recentview(self):
print "Populating"
self.recentmodel.append(item)
self.recenttime = time.time()
+ return False
+
def on_clearcookies_clicked(self, data=None):
self.gcd.reset()
- self.attemptLogin(3)
+ self.callbackNeedsSetup = True
+ self.recenttime = 0.0
+
+ # re-run the inital grandcentral setup
+ gobject.idle_add(self.init_grandcentral)
def setupCallbackCombo(self):
combobox = self.wTree.get_object("callbackcombo")
self.callbacklist.append([makepretty(number)] )
self.wTree.get_object("callbackentry").set_text(makepretty(self.gcd.getCallbackNumber()))
+ self.callbackNeedsSetup = False
def on_callbackentry_changed(self, data=None):
text = makeugly(self.wTree.get_object("callbackentry").get_text())
if self.gcd.validate(text) and text != self.gcd.getCallbackNumber():
self.gcd.setCallbackNumber(text)
self.wTree.get_object("callbackentry").set_text(self.wTree.get_object("callbackentry").get_text())
- self.reduce_memory()
+ #self.reduce_memory()
def attemptLogin(self, times = 1):
if self.isHildon:
if self.isHildon:
dialog.destroy()
+ return False
+
def ErrPopUp(self, msg):
error_dialog = gtk.MessageDialog(None, 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, msg)
self.recentmodel.clear()
self.recenttime = 0.0
- self.reduce_memory()
+ #self.reduce_memory()
+
+ #def on_device_state_change(self, shutdown, save_unsaved_data, memory_low, system_inactivity, message, userData):
+ # """
+ # @todo Might be useful to do something when going in offline mode or low memory
+ # @note Hildon specific
+ # """
+ # pass
def setNumber(self, number):
self.phonenumber = makeugly(number)