You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.1 KiB
38 lines
1.1 KiB
mod display; |
|
mod user; |
|
|
|
use display::Display; |
|
use embedded_components::{Component, ComponentStyle, List, ScrollingCalendar, VSplit}; |
|
use embedded_graphics::prelude::*; |
|
use epd_waveshare::color::OctColor as Color; |
|
use user::{get_user_data, User}; |
|
|
|
#[tokio::main] |
|
async fn main() { |
|
let contents = std::fs::read_to_string("users.json").expect("No user configuration found"); |
|
let users: Vec<User> = serde_json::from_str(&contents).expect("User configuration invalid"); |
|
|
|
let mut tasks = vec![]; |
|
|
|
for user in users.iter() { |
|
let mut user_data = get_user_data(user).await; |
|
tasks.append(&mut user_data.tasks); |
|
} |
|
|
|
let mut display = Display::new(); |
|
|
|
let style = ComponentStyle { |
|
fg_color: Color::Black, |
|
bg_color: Color::White, |
|
hi_color: Color::Red, |
|
border_color: Color::Black, |
|
border: 1, |
|
bezel: 1, |
|
}; |
|
|
|
let screen = VSplit::new( |
|
ScrollingCalendar::new(style.clone(), 2, 5), |
|
List::new(style, tasks), |
|
); |
|
screen.draw(&mut display.display).expect("Could not draw!"); |
|
}
|
|
|