Use dictionary for selection of wake up sounds
This commit is contained in:
parent
6ebae5ddb3
commit
8e27056e05
36
clock.kv
36
clock.kv
|
@ -204,46 +204,12 @@
|
||||||
BoxLayout:
|
BoxLayout:
|
||||||
orientation: "vertical"
|
orientation: "vertical"
|
||||||
pos_hint: {"center_x":0.5, "center_y":0.5}
|
pos_hint: {"center_x":0.5, "center_y":0.5}
|
||||||
|
id: settings_menu_wake_up_sound_boxlayout
|
||||||
Label:
|
Label:
|
||||||
text: "Select wake up sound"
|
text: "Select wake up sound"
|
||||||
font_size: root.height*0.05
|
font_size: root.height*0.05
|
||||||
color: root.theme.color_font
|
color: root.theme.color_font
|
||||||
id: settings_menu_wake_up_sound_label_top
|
id: settings_menu_wake_up_sound_label_top
|
||||||
GridLayout:
|
|
||||||
cols: 2
|
|
||||||
CheckBox:
|
|
||||||
group: "settings_menu_wake_up_sound"
|
|
||||||
on_active: root.settings_menu_wake_up_sound_cb(self, self.active, "Birds")
|
|
||||||
id: settings_menu_wake_up_sound_Birds
|
|
||||||
Label:
|
|
||||||
text: "Birds"
|
|
||||||
halign: "left"
|
|
||||||
valign: "middle"
|
|
||||||
text_size: self.size
|
|
||||||
font_size: root.height*0.05
|
|
||||||
color: root.theme.color_font
|
|
||||||
active: True
|
|
||||||
id: settings_menu_wake_up_sound_label_0
|
|
||||||
CheckBox:
|
|
||||||
group: "settings_menu_wake_up_sound"
|
|
||||||
on_active: root.settings_menu_wake_up_sound_cb(self, self.active, "NPO Radio 1")
|
|
||||||
id: settings_menu_wake_up_sound_NpoRadio1
|
|
||||||
Label:
|
|
||||||
text: "NPO Radio 1"
|
|
||||||
halign: "left"
|
|
||||||
valign: "middle"
|
|
||||||
text_size: self.size
|
|
||||||
font_size: root.height*0.05
|
|
||||||
color: root.theme.color_font
|
|
||||||
id: settings_menu_wake_up_sound_label_1
|
|
||||||
Button:
|
|
||||||
id: settings_menu_wake_up_sound_Ok_button
|
|
||||||
on_press: root.settings_menu_wake_up_sound_Ok_button_cb()
|
|
||||||
text: "Ok"
|
|
||||||
font_size: root.height*0.05
|
|
||||||
color: root.theme.color_font
|
|
||||||
background_normal: ''
|
|
||||||
background_color: root.theme.color_button
|
|
||||||
FloatLayout
|
FloatLayout
|
||||||
id: settings_menu_theme_background
|
id: settings_menu_theme_background
|
||||||
size_hint: None, None
|
size_hint: None, None
|
||||||
|
|
109
clock.py
109
clock.py
|
@ -55,6 +55,8 @@ from kivy.uix.floatlayout import FloatLayout
|
||||||
from kivy.uix.label import Label
|
from kivy.uix.label import Label
|
||||||
from kivy.uix.slider import Slider
|
from kivy.uix.slider import Slider
|
||||||
from kivy.uix.button import Button
|
from kivy.uix.button import Button
|
||||||
|
from kivy.uix.gridlayout import GridLayout
|
||||||
|
from kivy.uix.checkbox import CheckBox
|
||||||
from kivy.clock import Clock
|
from kivy.clock import Clock
|
||||||
from kivy.lang import Builder
|
from kivy.lang import Builder
|
||||||
from kivy.graphics import Color, Line, Rectangle, Ellipse
|
from kivy.graphics import Color, Line, Rectangle, Ellipse
|
||||||
|
@ -236,6 +238,7 @@ class MyClockWidget(FloatLayout):
|
||||||
|
|
||||||
is_arm = is_arm()
|
is_arm = is_arm()
|
||||||
|
|
||||||
|
|
||||||
def play_sound(self, source):
|
def play_sound(self, source):
|
||||||
alarm_settings = App.get_running_app().alarm_settings
|
alarm_settings = App.get_running_app().alarm_settings
|
||||||
|
|
||||||
|
@ -612,11 +615,10 @@ class MyClockWidget(FloatLayout):
|
||||||
self.draw_list_curr_frame.append(["Color", background.canvas, rgb[0], rgb[1], rgb[2]])
|
self.draw_list_curr_frame.append(["Color", background.canvas, rgb[0], rgb[1], rgb[2]])
|
||||||
self.draw_list_curr_frame.append(["Rectangle", background.canvas, background.size, background.pos, ""])
|
self.draw_list_curr_frame.append(["Rectangle", background.canvas, background.size, background.pos, ""])
|
||||||
|
|
||||||
for s in ["label_top", "label_0", "label_1", "Ok_button"]:
|
for i in self.wake_up_sound_labels:
|
||||||
i = self.ids["settings_menu_wake_up_sound_" + s]
|
|
||||||
i.color = self.theme.color_font
|
i.color = self.theme.color_font
|
||||||
i = self.ids["settings_menu_wake_up_sound_Ok_button"]
|
|
||||||
i.background_color = self.theme.color_button
|
self.settings_menu_wake_up_sound_Ok_button.background_color = self.theme.color_button
|
||||||
|
|
||||||
def update_settings_menu_theme(self):
|
def update_settings_menu_theme(self):
|
||||||
self.draw_list_curr_frame.append(["self.hide_widget", self.ids["settings_menu_theme_background"], False])
|
self.draw_list_curr_frame.append(["self.hide_widget", self.ids["settings_menu_theme_background"], False])
|
||||||
|
@ -731,25 +733,40 @@ class MyClockWidget(FloatLayout):
|
||||||
self.settings_menu_wake_up_sound_select_button_cb_hack = True
|
self.settings_menu_wake_up_sound_select_button_cb_hack = True
|
||||||
alarm_settings = App.get_running_app().alarm_settings
|
alarm_settings = App.get_running_app().alarm_settings
|
||||||
|
|
||||||
self.ids["settings_menu_wake_up_sound_Birds"].active = False
|
for c in self.wake_up_sound_checkboxes:
|
||||||
self.ids["settings_menu_wake_up_sound_NpoRadio1"].active = False
|
c.active = False
|
||||||
|
|
||||||
print("sound selected: " + alarm_settings.sound_selected)
|
print("sound selected: " + alarm_settings.sound_selected)
|
||||||
if alarm_settings.sound_selected == "Birds":
|
|
||||||
self.ids["settings_menu_wake_up_sound_Birds"].active = True
|
n = 0
|
||||||
elif alarm_settings.sound_selected == "NPO Radio 1":
|
for i in self.wake_up_sounds:
|
||||||
self.ids["settings_menu_wake_up_sound_NpoRadio1"].active = True
|
if i == alarm_settings.sound_selected:
|
||||||
|
self.wake_up_sound_checkboxes[n].active = True
|
||||||
|
n = n + 1
|
||||||
|
|
||||||
self.view = "settings_menu_wake_up_sound"
|
self.view = "settings_menu_wake_up_sound"
|
||||||
self.view_active_since = time.time()
|
self.view_active_since = time.time()
|
||||||
|
|
||||||
def settings_menu_wake_up_sound_Ok_button_cb(self):
|
def settings_menu_wake_up_sound_Ok_button_cb(self, event):
|
||||||
alarm_settings = App.get_running_app().alarm_settings
|
alarm_settings = App.get_running_app().alarm_settings
|
||||||
|
|
||||||
self.ids["settings_menu_wake_up_sound_select_button"].text = alarm_settings.sound_selected
|
self.ids["settings_menu_wake_up_sound_select_button"].text = alarm_settings.sound_selected
|
||||||
self.view = "settings_menu"
|
self.view = "settings_menu"
|
||||||
self.view_active_since = time.time()
|
self.view_active_since = time.time()
|
||||||
|
|
||||||
def settings_menu_wake_up_sound_cb(self, instance, value, sound):
|
def settings_menu_wake_up_sound_cb(self, instance, value):
|
||||||
|
n = 0
|
||||||
|
for c in self.wake_up_sound_checkboxes:
|
||||||
|
if c == instance:
|
||||||
|
break
|
||||||
|
n = n + 1
|
||||||
|
|
||||||
|
k = 0
|
||||||
|
for sound in self.wake_up_sounds:
|
||||||
|
if k == n:
|
||||||
|
break
|
||||||
|
k = k + 1
|
||||||
|
|
||||||
alarm_settings = App.get_running_app().alarm_settings
|
alarm_settings = App.get_running_app().alarm_settings
|
||||||
|
|
||||||
if self.settings_menu_wake_up_sound_select_button_cb_hack:
|
if self.settings_menu_wake_up_sound_select_button_cb_hack:
|
||||||
|
@ -762,14 +779,8 @@ class MyClockWidget(FloatLayout):
|
||||||
else:
|
else:
|
||||||
print("You deselected " + sound)
|
print("You deselected " + sound)
|
||||||
|
|
||||||
alarm_settings.sound_source = ""
|
alarm_settings.sound_source = self.wake_up_sounds[sound]
|
||||||
alarm_settings.sound_selected = ""
|
alarm_settings.sound_selected = sound
|
||||||
if self.ids["settings_menu_wake_up_sound_Birds"].active:
|
|
||||||
alarm_settings.sound_selected = sound
|
|
||||||
alarm_settings.sound_source = "Woodpecker Chirps - QuickSounds.com.mp3"
|
|
||||||
elif self.ids["settings_menu_wake_up_sound_NpoRadio1"].active:
|
|
||||||
alarm_settings.sound_selected = sound
|
|
||||||
alarm_settings.sound_source = "https://icecast.omroep.nl/radio1-bb-mp3"
|
|
||||||
|
|
||||||
def settings_menu_theme_select_button_cb(self):
|
def settings_menu_theme_select_button_cb(self):
|
||||||
self.settings_menu_wake_up_theme_button_cb_hack = True
|
self.settings_menu_wake_up_theme_button_cb_hack = True
|
||||||
|
@ -1158,6 +1169,62 @@ class MyApp(App):
|
||||||
|
|
||||||
def build(self):
|
def build(self):
|
||||||
clock_widget = MyClockWidget()
|
clock_widget = MyClockWidget()
|
||||||
|
|
||||||
|
x = clock_widget.ids["settings_menu_wake_up_sound_boxlayout"]
|
||||||
|
gl = GridLayout(
|
||||||
|
cols=2,
|
||||||
|
)
|
||||||
|
|
||||||
|
clock_widget.wake_up_sounds = {
|
||||||
|
"Birds": "Woodpecker Chirps - QuickSounds.com.mp3",
|
||||||
|
"NPO Radio 1": "https://icecast.omroep.nl/radio1-bb-mp3"
|
||||||
|
}
|
||||||
|
|
||||||
|
clock_widget.wake_up_sound_checkboxes = []
|
||||||
|
clock_widget.wake_up_sound_labels = []
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
for w in clock_widget.wake_up_sounds:
|
||||||
|
c = CheckBox(
|
||||||
|
group = "settings_menu_wake_up_sound",
|
||||||
|
)
|
||||||
|
c.bind(active=clock_widget.settings_menu_wake_up_sound_cb)
|
||||||
|
gl.add_widget(c)
|
||||||
|
clock_widget.wake_up_sound_checkboxes.append(c)
|
||||||
|
|
||||||
|
if i == 0:
|
||||||
|
a = True
|
||||||
|
else:
|
||||||
|
a = False
|
||||||
|
|
||||||
|
l = Label(
|
||||||
|
text = w,
|
||||||
|
halign = "left",
|
||||||
|
valign = "middle",
|
||||||
|
size = [c.size[0] * 2.88, c.size[1]],
|
||||||
|
text_size = Window.size,
|
||||||
|
font_size = Window.height*0.05,
|
||||||
|
color = clock_widget.theme.color_font,
|
||||||
|
active = a
|
||||||
|
)
|
||||||
|
l.text_size = l.size
|
||||||
|
gl.add_widget(l)
|
||||||
|
clock_widget.wake_up_sound_labels.append(l)
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
x.add_widget(gl)
|
||||||
|
|
||||||
|
b = Button(
|
||||||
|
text = "Ok",
|
||||||
|
font_size = clock_widget.height*0.3,
|
||||||
|
color = clock_widget.theme.color_font,
|
||||||
|
background_normal = '',
|
||||||
|
background_color = clock_widget.theme.color_button
|
||||||
|
)
|
||||||
|
b.bind(on_press = clock_widget.settings_menu_wake_up_sound_Ok_button_cb)
|
||||||
|
x.add_widget(b)
|
||||||
|
clock_widget.settings_menu_wake_up_sound_Ok_button = b
|
||||||
|
|
||||||
update_rate = App.get_running_app().update_rate
|
update_rate = App.get_running_app().update_rate
|
||||||
# update initially, just after construction of the widget is complete
|
# update initially, just after construction of the widget is complete
|
||||||
Clock.schedule_once(clock_widget.update_display, 0)
|
Clock.schedule_once(clock_widget.update_display, 0)
|
||||||
|
|
Loading…
Reference in New Issue