X-Git-Url: http://git.maemo.org/git/?p=pedometerwidget;a=blobdiff_plain;f=src%2Fusr%2Flib%2Fhildon-desktop%2Fpedometer_widget_home.py;fp=src%2Fusr%2Flib%2Fhildon-desktop%2Fpedometer_widget_home.py;h=c6713559010751b8faa0b4146963aabc864f2471;hp=e132f4b3995e221a7d2ef22b532ce6c85c536056;hb=68ca995d23df1fe6a41482e2f65b997afa8bd6c7;hpb=407211cc763a10198915b10d5d9a127a9e74a8a4 diff --git a/src/usr/lib/hildon-desktop/pedometer_widget_home.py b/src/usr/lib/hildon-desktop/pedometer_widget_home.py index e132f4b..c671355 100644 --- a/src/usr/lib/hildon-desktop/pedometer_widget_home.py +++ b/src/usr/lib/hildon-desktop/pedometer_widget_home.py @@ -409,8 +409,12 @@ class PedoController(Singleton): no_idle_time = False STEP_LENGTH = 0.7 + + #The interval(number of steps) between two file updates + BUFFER_STEPS_INTERVAL = 100 #values for the two views in the widget ( current and day/week/alltime) - v = [PedoValues(), PedoValues()] + #third value to count the steps that were not yet written to file + v = [PedoValues(), PedoValues(), PedoValues()] last_time = 0 is_running = False @@ -474,12 +478,14 @@ class PedoController(Singleton): self.v[1] = self.repository.get_this_week_values() def save_values(self): - self.repository.add_values(self.v[0]) + logger.info("Saving values to file") + self.repository.add_values(self.v[2]) self.repository.save() self.load_values() def start_pedometer(self): self.v[0] = PedoValues() + self.v[2] = PedoValues() self.last_time = time.time() self.is_running = True self.pedometer.start() @@ -489,6 +495,7 @@ class PedoController(Singleton): self.repository.reset_values() self.v[0] = PedoValues() self.v[1] = PedoValues() + self.v[2] = PedoValues() self.notify() def stop_pedometer(self): @@ -500,7 +507,7 @@ class PedoController(Singleton): def get_second(self): if self.is_running: - return self.v[0] + self.v[1] + return self.v[2] + self.v[1] else: return self.v[1] @@ -519,6 +526,17 @@ class PedoController(Singleton): self.v[0].dist += self.get_distance(cnt) self.v[0].calories += self.get_calories(self.get_distance(cnt)) self.v[0].time += time.time() - self.last_time + + self.v[2].steps += cnt + self.v[2].dist += self.get_distance(cnt) + self.v[2].calories += self.get_calories(self.get_distance(cnt)) + self.v[2].time += time.time() - self.last_time + + if not last_steps and self.v[2].steps > self.BUFFER_STEPS_INTERVAL: + self.save_values() + self.notify() + self.v[2] = PedoValues() + if last_steps: self.save_values() self.notify()