diff --git a/flockompass.kv b/flockompass.kv index 371a790..a806a02 100644 --- a/flockompass.kv +++ b/flockompass.kv @@ -44,13 +44,11 @@ centermark.lon = mapview.lon selfmark.lat = app.gps_data.get('lat', 0) selfmark.lon = app.gps_data.get('lon', 0) - MapMarker: source: 'assets/marker_self.png' id: selfmark anchor_x: 0.5 anchor_y: 0 - MapMarker: source: 'assets/marker_dest.png' id: centermark @@ -88,11 +86,12 @@ FloatLayout: canvas: Color: - rgba: rgba("#336645") + rgba: rgba(app.theme['bgcolor']) Rectangle: size: self.size Image: - source: 'assets/needle_dark.png' + id: needle + source: app.theme['needle'] pos_hint: {"center_x": 0.5, "center_y": 0.7} canvas.before: PushMatrix @@ -119,7 +118,7 @@ pos_hint: {"center_x": 0.5, "center_y": 0.7} size_hint: 1, 1 IconButton: - source: 'assets/to_map_dark.png' + source: app.theme['to_map'] pos_hint: {"center_x": 0.1, "center_y": 0.95} size_hint: 0.2, 0.2 on_press: root.manager.current = 'map'; @@ -153,6 +152,7 @@ active: True background_color: rgba("#f3e8d2") color: rgba("#346645") + on_active: app.set_dark_theme(self.active) BackgroundLabel: text: "Compas smoothing" background_color: rgba("#f3e8d2") diff --git a/main.py b/main.py index f20a275..3c0742c 100644 --- a/main.py +++ b/main.py @@ -62,6 +62,11 @@ class FlockompassApp(App): dashboard_dest = StringProperty("") dashboard_flock = StringProperty("") + theme = DictProperty( + {'needle': "assets/needle_dark.png", + 'to_map': "assets/to_map_dark.png", + 'bgcolor': "#336645"}) + def dump(self, dt): print(dt, self.gps_data, self.session_data) @@ -109,6 +114,17 @@ class FlockompassApp(App): self.ms.ids.mapview.center_on(self.session_data['dest_lat'], self.session_data['dest_lon']) + + def set_dark_theme(self, active): + if active: + self.theme = {'needle': "assets/needle_dark.png", + 'to_map': "assets/to_map_dark.png", + 'bgcolor': "#336645"} + else: + self.theme = {'needle': "assets/needle_bright.png", + 'to_map': "assets/to_map_bright.png", + 'bgcolor': "#f3e8d2"} + def request_android_permissions(self): from android.permissions import request_permissions, Permission @@ -247,22 +263,25 @@ class FlockompassApp(App): # setup app screens screen_manager = ScreenManager(transition=RiseInTransition()) + # map screen self.ms = MapScreen(name='map') screen_manager.add_widget(self.ms) - self.cs = CompassScreen(name='compass') - self.cs._anim = None - self.cs._anim1 = None - - screen_manager.add_widget(self.cs) - + # settings screen self.ss = SettingsScreen(name='settings') screen_manager.add_widget(self.ss) + # compass screen + # smoothing vars for compass self.last_angle = 0 + self.cs = CompassScreen(name='compass') + self.cs._anim = None + self.cs._anim1 = None + screen_manager.add_widget(self.cs) + #Clock.schedule_interval(self.dump, 2.0) return screen_manager