Real time map update

This commit is contained in:
2026-08-06 19:29:58 +03:00
parent e320f19a76
commit c34b43a800
+28 -4
View File
@@ -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())