Real time map update
This commit is contained in:
+28
-4
@@ -5,11 +5,12 @@ use crate::navigation::{KeyPressedPage, NavigatedPage, Page};
|
|||||||
use crate::repetitions::CardSetSettings;
|
use crate::repetitions::CardSetSettings;
|
||||||
use crate::styling::*;
|
use crate::styling::*;
|
||||||
use crate::{AppState, RootMessage};
|
use crate::{AppState, RootMessage};
|
||||||
|
use chrono::Local;
|
||||||
use iced::alignment::Horizontal::Center;
|
use iced::alignment::Horizontal::Center;
|
||||||
use iced::keyboard::key::Physical::Code;
|
use iced::keyboard::key::Physical::Code;
|
||||||
use iced::widget::text::Style;
|
use iced::widget::text::Style;
|
||||||
use iced::widget::{button, column, container, row, rule, space, text, tooltip, Column};
|
use iced::widget::{Column, button, column, container, row, rule, space, text, tooltip};
|
||||||
use iced::{alignment, keyboard, Element, Fill, Task, Theme};
|
use iced::{Element, Fill, Task, Theme, alignment, keyboard};
|
||||||
use rodio::MixerDeviceSink;
|
use rodio::MixerDeviceSink;
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
use std::sync::{Arc, Mutex};
|
use std::sync::{Arc, Mutex};
|
||||||
@@ -111,10 +112,28 @@ impl RepetitionState {
|
|||||||
|_| RootMessage::Repetition(RepetitionMessage::PlayFinished),
|
|_| RootMessage::Repetition(RepetitionMessage::PlayFinished),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
self.increment_counter();
|
||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn increment_counter(&mut self) {
|
||||||
|
let mut state = self.state.lock().unwrap();
|
||||||
|
let id = self.settings.id;
|
||||||
|
let activity = state.activity.get_mut(&id);
|
||||||
|
|
||||||
|
let now = Local::now().date_naive();
|
||||||
|
|
||||||
|
if let Some(activity) = activity {
|
||||||
|
let (last_day, counter) = activity.last_mut().unwrap();
|
||||||
|
if *last_day == now {
|
||||||
|
*counter += 1;
|
||||||
|
} else {
|
||||||
|
activity.push((now, 1));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
state.activity.insert(id, vec![(now, 1)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
pub fn view(&self) -> Element<'_, RepetitionMessage> {
|
pub fn view(&self) -> Element<'_, RepetitionMessage> {
|
||||||
back_overlay(
|
back_overlay(
|
||||||
column![
|
column![
|
||||||
@@ -152,7 +171,12 @@ impl RepetitionState {
|
|||||||
|
|
||||||
fn draw_backward(&self) -> Element<'_, RepetitionMessage> {
|
fn draw_backward(&self) -> Element<'_, RepetitionMessage> {
|
||||||
if !self.open {
|
if !self.open {
|
||||||
return container(text!("?").size(72)).width(Fill).height(Fill).align_y(alignment::Vertical::Center).align_x(Center).into();
|
return container(text!("?").size(72))
|
||||||
|
.width(Fill)
|
||||||
|
.height(Fill)
|
||||||
|
.align_y(alignment::Vertical::Center)
|
||||||
|
.align_x(Center)
|
||||||
|
.into();
|
||||||
}
|
}
|
||||||
|
|
||||||
self.draw_card_view(self.settings.backward.as_str())
|
self.draw_card_view(self.settings.backward.as_str())
|
||||||
|
|||||||
Reference in New Issue
Block a user