Commit Graph

500 Commits

Author SHA1 Message Date
William Casarin
00091c5088 Switch to Columns
Also refactor damus app usage to only pass in things that we need in views.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-11 15:49:34 -07:00
William Casarin
4379466d1d android: launch with initial options
Feel free to change to have a customized android build

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-09 16:10:33 -07:00
William Casarin
4a4fb06425 split is_mobile to is_narrow and is_oled
is_mobile doesn't really make sense for android tablets. We were
overloading this variable to mean "is_narrow". What we really want is
is_oled for mobile devices and is_narrow for if its phone-like.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-06 21:54:48 -07:00
William Casarin
772bfbad5f img: remove loading spinners
This adds blank space, but it will be nice if we can improve this
by either fading in or having some shimmer effect.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-06 21:06:12 -07:00
William Casarin
8602650278 args: add datapath argument
This will allow us to test cache resets

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-06 21:06:12 -07:00
William Casarin
c879982260 args: add --textmode
An option to enable textmode on startup

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-06 08:59:49 -07:00
William Casarin
7fa18fa5f7 Merge 'Supply default timeline for mobile app if empty' (#285)
Ken Sedgwick (1):
      Supply default timeline for mobile app if empty
2024-09-03 11:49:21 -07:00
William Casarin
989f88c989 fonts: add thai support
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:45:59 -07:00
Ken Sedgwick
55f6a94c18
Supply default timeline for mobile app if empty
Fixes ([#284])
2024-09-03 11:37:27 -07:00
William Casarin
01b9704415 appease clippy
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:25:48 -07:00
William Casarin
efadd6153b arg: add -c universe column
Add helper for adding universe columns

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:18:32 -07:00
William Casarin
ddba62df47 env: add some test npubs
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:12:50 -07:00
William Casarin
c34227b5f7 arg: add -c profile{,:pubkey} arg column
This allows you to add profile columns

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:12:02 -07:00
William Casarin
4fdbad0df8 fix bug where it was subscribing too many times
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:11:38 -07:00
William Casarin
043ccf2146 debug: add subid debugging
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-03 11:10:59 -07:00
William Casarin
2603d08d1a tidy: fix formatting
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 18:31:53 -07:00
William Casarin
ad9c8f959c columns: add --notifications{,:pubkey} argcolumn
This allows you to add notification columns pretty easily:

$ notedeck --sec $SEC -c contacts -c notifications -c notifications:$CORP_ACCT

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 18:29:21 -07:00
William Casarin
ca09dc1675 filters: add limits to follow filters
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 18:16:22 -07:00
William Casarin
4c61c337bd fix transaction crash regression when opening thread
small oversight

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 18:12:12 -07:00
William Casarin
6a989e388b Merge images support
Thanks to Ken Sedgwick for getting this over the line by generalizing
our images cache!

Ken Sedgwick (2):
      build: updated num_enum to get around build problem
      Extend ImageCache to handle content images

William Casarin (4):
      update image to 0.25
      initial image support
      use slightly better carousel id

Fixes: https://github.com/damus-io/notedeck/issues/249
Fixes: https://github.com/damus-io/notedeck/issues/148
2024-09-02 17:56:32 -07:00
Ken Sedgwick
fe7580f5be Extend ImageCache to handle content images 2024-09-02 17:54:49 -07:00
Ken Sedgwick
085c6f1992 build: updated num_enum to get around build problem
Problem:
```
error[E0463]: can't find crate for num_enum_derive
  --> /home/user/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num_enum-0.7.2/src/lib.rs:10:11
   |
10 | pub use ::num_enum_derive::{
   |           ^^^^^^^^^^^^^^^ can't find crate
```
2024-09-02 17:54:49 -07:00
William Casarin
b00dc735e1 use slightly better carousel id
still need to include timeline...

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 17:54:49 -07:00
William Casarin
0e4aad4184 initial image support
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 17:54:49 -07:00
William Casarin
036c257379 update image to 0.25
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 17:54:49 -07:00
William Casarin
21c00a41e0 Merge contact list fetching
William Casarin (15):
      cli: add --pub support for watchonly accounts
      column: extract into_timeline logic into ColumnKind
      contacts: fix hashtags in filter_from_tags
      docs: fix comment in the wrong spot
      fetch contact lists
      filter: create filter from contact list
      nostrdb: bump version
      perf: coordinate unknown id lookups
      refactor: move args to its own file
      tidy: move ColumnKind to its own file
      tidy: move parse_args to Args::parse
      tidy: organize bools
      tidy: remove some crate:: namespaces
      timeline: initial contact queries

Fixes: https://github.com/damus-io/notedeck/issues/236
Fixes: https://github.com/damus-io/notedeck/issues/6
2024-09-02 17:47:57 -07:00
William Casarin
bc8a8d4a74 perf: coordinate unknown id lookups
This is a huge improvement over what it was before. Now all unknown id
lookups are debounced and happen through a central coordinator. This
ensures there is no duplication between timelines.

Fixes: https://github.com/damus-io/notedeck/issues/279
Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 17:38:18 -07:00
William Casarin
ad244d48c0 fetch contact lists
If we don't have a contact list, make sure to fetch one

Signed-off-by: William Casarin <jb55@jb55.com>
2024-09-02 16:22:29 -07:00
William Casarin
92e9e34e19 column: extract into_timeline logic into ColumnKind
I thought I needed this but maybe I don't. Anyways, it's a bit cleaner
this way.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-31 08:15:09 -07:00
William Casarin
db49cf3c4b tidy: move ColumnKind to its own file
timeline file is starting to get messy

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-31 08:08:17 -07:00
William Casarin
9a9342ad35 tidy: remove some crate:: namespaces
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-31 07:17:45 -07:00
William Casarin
5de78cef21 docs: fix comment in the wrong spot
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-31 05:43:43 -07:00
William Casarin
a051760fd9 contacts: fix hashtags in filter_from_tags
split hashtag follows into a separate Filter, combining authors and
hashtags doesn't work, because this is considered an AND filter, where
we want an OR.

We may want an option to split hashtags follows into a separate column.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-31 05:43:43 -07:00
William Casarin
2ea6473ae2 refactor: move args to its own file
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-31 05:43:43 -07:00
William Casarin
71259a8dd5 timeline: initial contact queries
This implements initial local contact queries. For testing you can
create contact list columns via:

Examples
--------

Make a contacts column from a specific npub:

	$ notedeck --column contacts:npub...

Use the current user's contacts:

	$ notedeck --column contacts --pub npub...

We also introduce a new ColumnKind enum which is used to describe the
column type.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 08:59:48 -07:00
William Casarin
11ede2086f cli: add --pub support for watchonly accounts
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 08:59:37 -07:00
William Casarin
dd60d03407 filter: create filter from contact list
This adds a method for creating filters from contact lists. We will be
using this for creating follow timelines.

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 08:49:29 -07:00
William Casarin
ea547a3497 tidy: move parse_args to Args::parse
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 08:49:29 -07:00
William Casarin
ae6c05ab42 tidy: organize bools
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 07:17:56 -07:00
William Casarin
21fd57f2c5 nostrdb: bump version
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-30 07:17:56 -07:00
William Casarin
bf34175560 time: add future timestamp formatting
+10s for 10 seconds in the future, etc

This can happen sometimes

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-27 14:09:14 +03:00
William Casarin
ad37602e0e Merge 'Fix global.json' 2024-08-27 14:08:45 +03:00
William Casarin
54526a8f55 log: track virtual list splices
These are caused when timeline note insertions are not at the top.
egui-virtual-list only has optimizations for that scenario.

Link: https://github.com/damus-io/notedeck/issues/94
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-27 13:50:38 +03:00
kernelkind
9141d951d1 fixed global.json
broke due to 9328ef2dff

Signed-off-by: kernelkind <kernelkind@gmail.com>
2024-08-22 20:31:20 -04:00
William Casarin
4ff30304e1 fix android build
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-21 07:48:56 +03:00
William Casarin
cf14c6dfd2 flag to disable since optimization
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-21 07:48:45 +03:00
William Casarin
9b4093cd41 update to latest nostrdb version
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-21 06:59:27 +03:00
William Casarin
1f149aec3b fix clippy warnings
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-19 21:26:20 -07:00
William Casarin
973a7c780f thread: remote subscriptions working
Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-19 21:22:58 -07:00
William Casarin
9328ef2dff remove duplicate filter types
only use nostrdb::Filter

Signed-off-by: William Casarin <jb55@jb55.com>
2024-08-19 21:12:32 -07:00