# TODO - [x] Message List * [ ] CRUD - [x] Message Big-View - [x] Search/Filter Messages - [x] Channel List * [x] Show subs * [ ] CRUD * [ ] what about unsubbed foreign channels? - thex should still be visible (or should they, do i still get the messages?) - [x] Sub List * [x] Sub/Unsub/Accept/Deny - [x] Debug List (Show logs, requests) - [ ] Key List * [ ] CRUD - [ ] Auto R-only key for admin, use for QR+link+send - [ ] settings - [ ] notifications - [ ] push navigation stack - [ ] read + migrate old SharedPrefs (or not? - who uses SCN even??) - [ ] Account-Page - [x] Logout - [x] Send-page - [ ] Still @ERROR on scn-init, but no logs? - better persist error (write in SharedPrefs at error_$date=txt ?), also perhaps print first error line in scn-init notification? - [x] fix time format (in message-list, in card, top right) - midnight is shown as "24:05" instead of "00:05" - thats weird - [ ] Add scrollbar -> https://api.flutter.dev/flutter/material/Scrollbar-class.html - [ ] you cant unsubscribe from foreign channel without completely loosing subscription. perhaps subscriptions should have two cofirmed bool (both must be true to receive messages): confirmed-owner && confirmed-subscriber Then the subscriber can unconfirm his half - without loosing the owner confirmation ----- # TODO iOS specific - [ ] payment / pro - [ ] show notifiactions (foreground/background/etc) - [ ] handle click-on-notifications should open message - [ ] share message - [ ] scan QR ----- # TODO Server - [ ] Switch server to sq style from faby - [ ] switch from mattn to go-sqlite - [ ] Single struct for model/db/json - [ ] use ginext - [ ] use sq.Query | sq.Update | sq.InsertAndQuery | .... - [ ] sq.DBOptions - enable CommentTrimmer and DefaultConverter - [ ] run unit-tests... - [ ] Copy db.Migrate code - [ ] Disable compat | remove code - [x] compat message title - [ ] ... - [ ] RWLock directly in go - prevent/reduce db-locked exception