Server upload works

This commit is contained in:
2026-06-01 15:36:53 +03:00
parent 8e18e82202
commit c0bd558233
10 changed files with 405 additions and 13 deletions
+24 -4
View File
@@ -8,10 +8,12 @@ mod randomizer;
mod repetition;
mod repetitions;
mod selector;
mod sync;
mod word;
mod writing;
use crate::data_provider::card_sets::load_sets;
use crate::data_provider::settings::get_setting;
use crate::data_provider::words::{create_db, load_word_groups, load_words};
use crate::dictionary::{app_data_dir, DictionaryMessage, DictionaryState};
use crate::dictionary_test::{DictionaryQuizMessage, DictionaryQuizState};
@@ -21,10 +23,12 @@ use crate::randomizer::randomizer::{RandomizerMessage, RandomizerState};
use crate::repetition::{RepetitionMessage, RepetitionState};
use crate::repetitions::{CardSetSettings, RepetitionsMessage, RepetitionsState};
use crate::selector::*;
use crate::sync::{SyncMessage, SyncState};
use crate::word::{WordMessage, WordState};
use crate::writing::{WritingMessage, WritingState};
use crate::Page::{
Dictionary, DictionaryQuiz, Quiz, Randomizer, Repetition, Repetitions, Selector, Word, Writing,
Dictionary, DictionaryQuiz, Quiz, Randomizer, Repetition, Repetitions, Selector, Sync, Word,
Writing,
};
use crate::RootMessage::Keyboard;
use iced::keyboard::Event;
@@ -60,6 +64,7 @@ pub enum RootMessage {
Repetitions(RepetitionsMessage),
Repetition(RepetitionMessage),
Word(WordMessage),
Sync(SyncMessage),
Keyboard(Event),
}
@@ -73,6 +78,7 @@ pub enum Page {
Repetitions(RepetitionsState),
Repetition(RepetitionState),
Word(WordState),
Sync(SyncState),
PreviousPage,
}
@@ -85,6 +91,7 @@ pub struct AppState {
pub card_sets: Vec<CardSetSettings>,
pub word_groups: Vec<WordGroup>,
pub connection: Connection,
pub sync_data: AppSettings,
}
impl Default for ScreenState {
@@ -96,12 +103,14 @@ impl Default for ScreenState {
let list = load_words(&connection);
let sets = load_sets(&connection);
let groups = load_word_groups(&connection);
let setting = load_settings(&connection);
let state = Arc::new(Mutex::new(AppState {
dictionary: list,
card_sets: sets,
connection,
word_groups: groups,
sync_data: setting,
}));
ScreenState {
stack: vec![Selector(SelectorState::new(state.clone()))],
@@ -109,6 +118,11 @@ impl Default for ScreenState {
}
}
fn load_settings(connection: &Connection) -> AppSettings {
let key = get_setting("SYNC_KEY".to_string(), connection);
AppSettings { key }
}
impl ScreenState {
pub fn boot() -> (ScreenState, Task<RootMessage>) {
create_db();
@@ -130,7 +144,8 @@ impl ScreenState {
Randomizer,
Repetitions,
Repetition,
Word
Word,
Sync
);
Task::none()
}
@@ -145,7 +160,8 @@ impl ScreenState {
Randomizer,
Repetitions,
Repetition,
Word
Word,
Sync
)
}
@@ -158,6 +174,10 @@ impl ScreenState {
}
}
pub struct AppSettings {
key: Option<String>,
}
#[macro_export]
macro_rules! view_navigation {
($stack:expr, $($e:ident), *) => {
@@ -207,4 +227,4 @@ trait NavigatedPage<T> {
pub trait KeyPressedPage {
fn press(&mut self, message: &Event) -> Task<RootMessage>;
}
}