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

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!");
}