Convert API key to uppercase on input
[mevemon] / package / src / ui / fremantle / gui.py
index e887ded..8b8d1f7 100644 (file)
@@ -22,8 +22,6 @@ import gtk
 import hildon
 import gobject
 
-import glib
-
 from ui import models
 import validation
 import util
@@ -187,7 +185,8 @@ class BaseUI():
         while not valid_credentials:
             if result == gtk.RESPONSE_OK:
                 uid = uidEntry.get_text()
-                api_key = apiEntry.get_text()
+                # auth() fails if api_key has lower-case characters
+                api_key = apiEntry.get_text().upper()
             
                 try:
                     validation.uid(uid)
@@ -374,7 +373,14 @@ class CharacterSheetUI(BaseUI):
         hildon.hildon_gtk_window_set_progress_indicator(self.win, 0)
         
         # if we start the timer too early, get_is_topmost() returns False
-        glib.timeout_add_seconds(self.UPDATE_INTERVAL, self.update_live_sp)
+        self.timer = gobject.timeout_add_seconds(self.UPDATE_INTERVAL, self.update_live_sp)
+
+        self.win.connect("destroy", self.back)
+
+    def back(self, widget):
+        gobject.source_remove(self.timer)
+        gtk.Window.destroy(self.win)
+
 
     def display_skill_in_training(self, vbox):
         skill = self.controller.get_skill_in_training(self.uid, self.char_id)
@@ -471,14 +477,6 @@ class CharacterSheetUI(BaseUI):
 
 
     def update_live_sp(self):
-        # we don't want to keep the timer running in the background
-        # when this callback returns False, the timer destorys itself
-        
-        # TODO: figure out why this doesn't work on the real device
-        #
-        #if not self.win.get_is_topmost():
-        #    return False
-        
         self.live_sp_val = self.live_sp_val + self.spps * self.UPDATE_INTERVAL
         self.live_sp.set_label("<small><b>Total SP:</b> %s</small>" %
                                 util.comma(int(self.live_sp_val)))