projects
/
pedometerwidget
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Subtract operation for PedoValues
[pedometerwidget]
/
src
/
usr
/
lib
/
hildon-desktop
/
pedometer_widget_home.py
diff --git
a/src/usr/lib/hildon-desktop/pedometer_widget_home.py
b/src/usr/lib/hildon-desktop/pedometer_widget_home.py
index
9af473f
..
5e1b735
100644
(file)
--- a/
src/usr/lib/hildon-desktop/pedometer_widget_home.py
+++ b/
src/usr/lib/hildon-desktop/pedometer_widget_home.py
@@
-153,6
+153,12
@@
class PedoValues():
self.dist + other.dist,
self.calories + other.calories)
self.dist + other.dist,
self.calories + other.calories)
+ def __sub__(self, other):
+ return PedoValues(self.time - other.time,
+ self.steps - other.steps,
+ self.dist - other.dist,
+ self.calories - other.calories)
+
def get_print_time(self):
tdelta = self.time
hours = int(tdelta / 3600)
def get_print_time(self):
tdelta = self.time
hours = int(tdelta / 3600)
@@
-442,7
+448,8
@@
class PedoController(Singleton):
last_time = 0
is_running = False
last_time = 0
is_running = False
- graph_controller = None
+
+ observers = []
def __init__(self):
self.pedometer = PedoCounter(self.steps_detected)
def __init__(self):
self.pedometer = PedoCounter(self.steps_detected)
@@
-451,7
+458,6
@@
class PedoController(Singleton):
self.repository = PedoRepositoryXML()
self.repository.load()
self.repository = PedoRepositoryXML()
self.repository.load()
- self.graph_controller = GraphController()
self.load_values()
def load_values(self):
self.load_values()
def load_values(self):
@@
-472,7
+478,7
@@
class PedoController(Singleton):
self.last_time = time.time()
self.is_running = True
self.pedometer.start()
self.last_time = time.time()
self.is_running = True
self.pedometer.start()
- self.notify_UI(True)
+ self.notify(True)
def stop_pedometer(self):
self.is_running = False
def stop_pedometer(self):
self.is_running = False
@@
-504,15
+510,15
@@
class PedoController(Singleton):
self.v[0].time += time.time() - self.last_time
if last_steps:
self.save_values()
self.v[0].time += time.time() - self.last_time
if last_steps:
self.save_values()
- self.notify_UI()
+ self.notify()
else:
else:
- self.notify_UI(True)
+ self.notify(True)
self.last_time = time.time()
def set_mode(self, mode):
self.mode = mode
self.set_height(self.height_interval)
self.last_time = time.time()
def set_mode(self, mode):
self.mode = mode
self.set_height(self.height_interval)
- self.notify_UI()
+ self.notify()
def set_unit(self, new_unit):
self.unit = new_unit
def set_unit(self, new_unit):
self.unit = new_unit
@@
-521,7
+527,7
@@
class PedoController(Singleton):
def set_second_view(self, second_view):
self.second_view = second_view
self.load_values()
def set_second_view(self, second_view):
self.second_view = second_view
self.load_values()
- self.notify_UI()
+ self.notify()
def set_callback_ui(self, func):
self.callback_update_ui = func
def set_callback_ui(self, func):
self.callback_update_ui = func
@@
-542,7
+548,7
@@
class PedoController(Singleton):
#increase step length if RUNNING
if self.mode == 1:
self.STEP_LENGTH *= 1.45
#increase step length if RUNNING
if self.mode == 1:
self.STEP_LENGTH *= 1.45
- self.notify_UI()
+ self.notify()
def set_no_idle_time(self, value):
self.no_idle_time = value
def set_no_idle_time(self, value):
self.no_idle_time = value
@@
-555,10
+561,22
@@
class PedoController(Singleton):
def get_calories(self, steps):
return steps
def get_calories(self, steps):
return steps
- def notify_UI(self, optional=False):
+ def add_observer(self, func):
+ try:
+ self.observers.index(func)
+ except:
+ self.observers.append(func)
+
+ def remove_observer(self, func):
+ self.observers.remove(func)
+
+ def notify(self, optional=False):
if self.callback_update_ui is not None:
self.callback_update_ui()
if self.callback_update_ui is not None:
self.callback_update_ui()
- self.graph_controller.update_ui(optional)
+
+ for func in self.observers:
+ func(optional)
+
class PedoCounter(Singleton):
COORD_FNAME = "/sys/class/i2c-adapter/i2c-3/3-001d/coord"
class PedoCounter(Singleton):
COORD_FNAME = "/sys/class/i2c-adapter/i2c-3/3-001d/coord"
@@
-721,6
+739,7
@@
class GraphController(Singleton):
def __init__(self):
self.repository = PedoRepositoryXML()
self.last_update = 0
def __init__(self):
self.repository = PedoRepositoryXML()
self.last_update = 0
+ PedoController().add_observer(self.update_ui)
def set_graph(self, widget):
self.widget = widget
def set_graph(self, widget):
self.widget = widget
@@
-1050,7
+1069,6
@@
class PedometerHomePlugin(hildondesktop.HomePluginItem):
eventBox.connect("button-press-event", self.eventBox_clicked)
eventBox.connect("button-release-event", self.eventBox_clicked_release)
eventBox.connect("button-press-event", self.eventBox_clicked)
eventBox.connect("button-release-event", self.eventBox_clicked_release)
-
mainHBox.add(buttonVBox)
mainHBox.add(descVBox)
mainHBox.add(currentVBox)
mainHBox.add(buttonVBox)
mainHBox.add(descVBox)
mainHBox.add(currentVBox)
@@
-1204,8
+1222,6
@@
class PedometerHomePlugin(hildondesktop.HomePluginItem):
typePicker.set_selector(selectorType)
typePicker.set_active(self.alarm_controller.get_type())
typePicker.set_selector(selectorType)
typePicker.set_active(self.alarm_controller.get_type())
-
-
hbox = gtk.HBox()
hbox.add(labelEntry)
hbox.add(intervalEntry)
hbox = gtk.HBox()
hbox.add(labelEntry)
hbox.add(intervalEntry)