Maurice Parker
f4bc17c8f1
Refactor addFeed and removeFeed usages to be more consistent
2019-05-29 20:47:52 -05:00
Maurice Parker
5e3fcfd955
Correct how feeds were deleted so that only the feed in the correct container was deleted
2019-05-29 17:56:26 -05:00
Jeremy Beker
aa6dfe8a08
Rework to store endpoint URL in metadata
...
Endpoint URL did not belong with credentials. This breaks it out and stores it in the account metadata. Updates validation code to take it as a parameter.
2019-05-29 15:16:09 -04:00
Jeremy Beker
0df86e5761
Authentication working
...
* Updates to use new API style per discussion with Maurice
* Credential validation functioning
2019-05-29 10:54:52 -04:00
Maurice Parker
0648053417
Enforce tag specific drop validation (can't copy to the account level)
2019-05-28 17:42:19 -05:00
Maurice Parker
cf016c5d7d
Prevent Feedbin in account copy from putting a feed in both the root account and a folder at the same time.
2019-05-28 13:38:40 -05:00
Jeremy Beker
84dbdf25e2
Google Reader API Account Provider and initial integration
...
* Creation of account classes (based on FeedBin)
* Integration on Mac side into account dialog
* Initial authentication call works and extracts auth token, but no where to put it right now.
2019-05-28 13:08:15 -04:00
Maurice Parker
493abbb609
Refactor create feed functionality to increase code reuse and encapsulation
2019-05-28 09:45:02 -05:00
Maurice Parker
32712533d1
Fixed duplicate adds for local account folder feed adds. Issue #701
2019-05-26 12:17:38 -05:00
Maurice Parker
c61949bc04
Add account name to network error messages and prevent background iOS errors from displaying alerts
2019-05-26 11:54:32 -05:00
Phil Viso
bce45d28e4
Updated all iOS references to default local account new to be device specific
2019-05-19 16:52:21 -05:00
Maurice Parker
9c159d21f6
Retrieve articles when we have a status but don't have an article on full refresh.
2019-05-17 14:56:27 -05:00
Maurice Parker
0a9bf2aef0
Prevent more than one OPML import from being run at the same time.
2019-05-17 10:44:22 -05:00
Maurice Parker
b89f088917
Switch to using the new OPML import service
2019-05-17 10:04:13 -05:00
Maurice Parker
3986e00bf7
Fix bug where account unread counts weren't changing with async api calls
2019-05-16 09:54:19 -05:00
Maurice Parker
6be6c6a682
Add send sync database contents to Feedbin
2019-05-15 11:52:56 -05:00
Maurice Parker
b1303661b2
Save article statuses to new sync database as they are created
2019-05-14 18:24:19 -05:00
Maurice Parker
30273795a8
Delegate article marking functionality to the account delegate
2019-05-14 15:34:05 -05:00
Maurice Parker
e31e1a4d60
Save article statuses from articles we have not received yet
2019-05-14 10:06:29 -05:00
Maurice Parker
62d154d0f2
Add download syncing of article statuses
2019-05-14 06:20:53 -05:00
Maurice Parker
eede1cc7eb
Add initial feed download for Feedbin.
2019-05-13 11:18:54 -05:00
Maurice Parker
c4ce93e96a
Set default read state for Feedbin articles to read when syncing
2019-05-13 08:32:03 -05:00
Maurice Parker
1b22abbbfc
Make sure a refresh happens after an OPML import.
2019-05-12 19:31:29 -05:00
Maurice Parker
9c676f29f8
add articles download for Feedbin
2019-05-12 18:32:32 -05:00
Maurice Parker
60895fc7fa
Restrict Feedbin to a maximum of 1 concurrent connection to keep us under Feedbin's 250 requests per second rate limit
2019-05-12 07:22:33 -05:00
Maurice Parker
51c2527da2
Add OPML import for Feedbin.
2019-05-11 16:07:27 -05:00
Maurice Parker
6f92cd1a73
Refactor to differentiate between loading the Subscriptions.opml file and importing an external OPML file as they now need separate behaviors
2019-05-11 12:26:23 -05:00
Maurice Parker
fe70723eb4
Use best feed specifier code to determine which Feedbin option to use when creating a feed
2019-05-10 10:14:24 -05:00
Maurice Parker
23b43ecc07
Add undo for feeds
2019-05-09 16:09:21 -05:00
Maurice Parker
cda8acc66c
Add the ability to move feeds between folders for Feedbin
2019-05-09 13:31:18 -05:00
Maurice Parker
50d3a5799c
added subscription delete
2019-05-09 07:25:45 -05:00
Maurice Parker
43d32b1281
Add create Feedbin feed
2019-05-08 17:41:19 -05:00
Maurice Parker
72c92587d2
Keep feedID and feedURL better separated
2019-05-08 09:54:55 -05:00
Maurice Parker
52e5e43d10
Add download feed to folder relationships syncing
2019-05-07 17:41:32 -05:00
Maurice Parker
7f9055fe78
Add download subscriptions and faviconURLs
2019-05-07 10:51:41 -05:00
Maurice Parker
d6ae740305
Added folder (tag) delete for Feedbin
2019-05-06 17:34:41 -05:00
Maurice Parker
b7e2df1a68
Add Folder rename for Feedbin
2019-05-06 10:53:20 -05:00
Maurice Parker
51a1562e4b
make slight change to how not modified responses are handled
2019-05-06 05:28:02 -05:00
Maurice Parker
18f2c7b723
Fix bug that prevented http caching from working
2019-05-05 17:46:53 -05:00
Maurice Parker
15a0ba89d7
Add folder syncing for Feedbin account
2019-05-05 15:41:20 -05:00
Maurice Parker
35160aaf75
Rename AccountSettings to AccountMetadata to show that more than settings are stored in it and that it is analogous to FeedMetadata
2019-05-05 07:49:59 -05:00
Maurice Parker
6e7477fd89
Modify AccountSettings so that it works like FeedMetadata and can be leveraged by the AccountDelegates
2019-05-05 07:21:26 -05:00
Maurice Parker
d12a056ca3
Pass stored credentials to the delegate when updated
2019-05-05 06:02:28 -05:00
Maurice Parker
fc7b6f2c6b
refactor how Credentials work
2019-05-05 03:25:21 -05:00
Maurice Parker
aaa4342494
Add encrypted credential storage
2019-05-04 15:14:49 -05:00
Maurice Parker
595db517a7
change func signitures to use Credentials protocol from RSWeb instead of username/password
2019-05-04 11:48:48 -05:00
Maurice Parker
bb42e46887
Update to use latest webservice network layer in RSWeb
2019-05-04 08:54:07 -05:00
Maurice Parker
5a852c1615
validate Feedbin account credentials and add Feedbin account
2019-05-02 18:17:52 -05:00
Maurice Parker
747079157b
Implement account state UI
2019-05-02 05:41:44 -05:00
Maurice Parker
ba57a27a35
Make local account display names changeable
2019-04-30 06:38:18 -05:00
Maurice Parker
ae63805479
Change property to have correct swift naming convention name
2019-04-27 16:16:46 -05:00
Maurice Parker
9400ea361e
Add notification for downloaded article(s).
2019-04-27 13:54:52 -05:00
Maurice Parker
e10bfde6d9
Rollback code created to support background downloads that are no longer needed
2019-04-26 14:21:17 -05:00
Maurice Parker
f5941fda64
Add AccountRefreshMode to be able to choose between background and foreground download sessions
2019-04-25 09:25:13 -05:00
Maurice Parker
17caa31ee5
Added device specific local account names.
2019-04-17 13:01:26 -05:00
Maurice Parker
6b8524b70d
Made frameworks cross platform and got generated iOS app to compile.
2019-04-15 13:30:10 -05:00
Brent Simmons
10cdc1553e
Post display name did change notification when an Account’s name changes.
2019-03-31 16:12:03 -07:00
Brent Simmons
2819403d62
Store the account name in a settings file. Set a default name based on the account type.
2019-03-27 22:10:14 -07:00
Brent Simmons
c84f273b92
Continue work on accounts UI in Preferences.
2019-03-20 22:10:22 -07:00
Brent Simmons
5f1bdb29ec
Give the .FeedSettingsDidChange notification a userInfo with the key of the setting that changed. This way observers can ignore changes they don’t care about.
2019-03-17 12:47:04 -07:00
Brent Simmons
6a8ee9a2fb
Perform minor cleanups in Account.
2019-03-16 17:30:30 -07:00
Brent Simmons
908ae515c0
Remove unneeded import RSDatabase from Account.
2019-03-16 17:12:09 -07:00
Brent Simmons
cb45897256
Remove unused markEverywhereAsRead.
2019-03-16 16:48:14 -07:00
Brent Simmons
1d484220eb
Skip setting feed.editedName on OPML import. It’s not necessarily true that the name in the OPML file is an editedName.
2019-03-16 16:42:51 -07:00
Brent Simmons
3e52bb9c24
Make feed.metadata no longer an optional.
2019-03-16 12:08:31 -07:00
Brent Simmons
4d727ce094
Continue removing old code for pre-OPML subscriptions.
2019-03-15 13:27:01 -07:00
Brent Simmons
8de36d8282
Start removing old code for pulling settings from a plist.
2019-03-15 13:17:37 -07:00
Brent Simmons
7335c65ecb
Remove last ODB stuff. Feed metadata is now entirely stored in FeedMetadata.plist.
2019-03-14 22:59:07 -07:00
Brent Simmons
1d52a1229b
Pull editedName from OPML when feed.editedName == nil.
2019-03-14 22:34:22 -07:00
Brent Simmons
79a6d5f761
Continue transition from ODB to FeedMetadata.plist. It’s simpler and uses less memory.
2019-03-13 23:41:43 -07:00
Brent Simmons
4c6d3807cb
Remove unused settingsTable.
2019-03-03 21:35:04 -08:00
Brent Simmons
0a45dda375
Create SearchFeedDelegate. Make searching synchronous, since it’s fast enough.
2019-02-24 19:22:16 -08:00
Brent Simmons
efe8a4ab15
Implement search — fetch articles matching a search string from the database.
2019-02-18 22:29:43 -08:00
Daniel Jalkut
ddb0ee21b6
Quiet warnings/errors from Xcode 10.2 about redundant public attributes on methods implemented inside public extensions.
2019-02-12 10:05:51 -05:00
Brent Simmons
6f41b2a728
Queue saving to disk, in Account, even during refresh.
2019-02-07 21:29:05 -08:00
Brent Simmons
aadf4ec09f
Don’t set feed.editedName when importing OPML in Account.
2019-02-06 21:17:17 -08:00
Brent Simmons
ddccbdf610
Add addFeed and addFeeds to the Container protocol. This was confusing before. Now you can add directly to a Folder or Account.
2019-02-05 21:48:32 -08:00
Brent Simmons
448293a836
Set feed.title from the OPML — don’t just leave it blank.
2019-02-02 18:08:01 -08:00
Brent Simmons
f5d6e7e8fa
Fix bug where empty folders would be lost between runs of the app.
2019-01-27 21:42:58 -08:00
Brent Simmons
d69058c10c
Fix a couple first-run startup bugs.
2018-09-26 22:05:35 -07:00
Brent Simmons
7026eae899
Skip writing OPML file to disk during startup. Structure-changed notices happen during startup as the object graph is created, but it doesn’t mean that there’s a change that requires saving to disk.
2018-09-16 20:02:24 -07:00
Brent Simmons
1c3dca4d9b
Update unreadCount for an Account only when one of its feeds changes its unreadCount.
2018-09-16 19:07:07 -07:00
Brent Simmons
a914b3949b
Made launch performance *much* faster for large (thousands of feeds) subscriptions list. Also: split container.children in container.topLevelFeeds and container.folders. This simplifies a bunch of things, and makes some things faster.
2018-09-16 17:54:42 -07:00
Brent Simmons
6b6d393b3d
Delete some dead code.
2018-09-16 13:08:44 -07:00
Brent Simmons
3d45231494
Stop using urlToFeedDictionary. Feeds don’t have to be uniqued.
2018-09-16 13:04:42 -07:00
Brent Simmons
4010b4cb2a
On startup, import from AccountData.plist one last time, then rename it to AccountData-old.plist. On subsequent startups, import using Subscriptions.opml.
2018-09-16 12:42:46 -07:00
Brent Simmons
823d83c942
Write to disk on display-name-change only if it’s a Folder, since Feed names are stored in ODB.
2018-09-15 12:08:57 -07:00
Brent Simmons
d0df791b93
Skip writing to disk when feed setting changes, since we’re writing OPML now and storing feed settings in ODB.
2018-09-15 12:06:19 -07:00
Brent Simmons
47cf018143
Store feed.unreadCount with the Account rather than the feed. This is part of making it so that feeds no longer have to be uniqued.
2018-09-14 22:06:03 -07:00
Brent Simmons
3f1f4fd24c
Write Subscriptions.opml to disk.
2018-09-14 13:25:38 -07:00
Brent Simmons
b8546d8e8b
Don't store account.unreadCount in Settings.odb. Don’t rewrite AccountData.plist when feed.contentHash changes.
2018-09-14 13:12:55 -07:00
Brent Simmons
679e6f6c0b
Give Feed a weak account rather than accountID.
2018-09-13 22:37:40 -07:00
Brent Simmons
b5b42b8df6
Stop storing unreadCount for Feed and Folder objects on disk, since they’re fast to fetch at startup. Also, give Feed an ODBRawValueTable for metadata storage.
2018-09-13 22:25:10 -07:00
Brent Simmons
b7e9fbf2a6
Stop saving account’s unread count to disk — no need. It gets calculated at startup plenty fast enough.
2018-09-13 21:25:35 -07:00
Brent Simmons
4bc6c7d5db
Start using ODB code with Account. Store the unread count in the settings database.
2018-09-12 22:28:21 -07:00
Brent Simmons
25ff76e1e5
Fix a performance bug when fetching all unread articles. When validating unread counts, it was looping through the entire set of articles once per feed. Now it loops through articles just once, for a major performance boost with lots of feeds and/or lots of unread articles.
2018-09-10 22:08:38 -07:00
Brent Simmons
cfb3bd706e
Use new hash-into function instead of calculating hashValue. WIP on #402 .
2018-08-25 11:54:58 -07:00
Brent Simmons
fc338d5371
Move Feed from Articles.framework to Account.framework.
2018-07-28 12:16:14 -07:00
Brent Simmons
b7575c687c
Rename Data.framework to Articles.framework. Rename Database.framework to ArticlesDatabase.framework.
2018-07-23 18:29:08 -07:00
Olof Hellman
c91f4621e1
Merge remote-tracking branch 'brentsimmons/master'
2018-03-04 18:43:49 -08:00
Brent Simmons
7def2ae8d0
Fix bug where deleting from the sidebar would not stick across runs of the app sometimes — whatever you deleted could come back.
2018-02-24 15:54:32 -08:00
Olof Hellman
71005b56af
support for "make new feed"
2018-02-20 00:26:46 -08:00
Brent Simmons
c80e3e86de
Don’t save an Account to disk during a refresh session. Wait till it’s over.
2018-02-17 18:02:40 -08:00
Brent Simmons
64647c73c6
Use a coalescing queue (instead of a Timer) in Account for saving to disk.
2018-02-17 15:38:54 -08:00
Brent Simmons
2f21dbf6be
Remove extraneous get { from a bunch of read-only accessors.
2018-02-14 13:14:25 -08:00
Brent Simmons
a13d21395e
Fetch starred articles for the Starred smart feed.
2018-02-11 12:07:55 -08:00
Brent Simmons
5aeb914ab6
Fetch articles for the Today smart feed.
2018-02-10 17:37:47 -08:00
Brent Simmons
00cf3934e5
Add fetchUnreadArticles method to Account, which will be used by the All Unread smart feed.
2018-02-10 13:00:16 -08:00
Brent Simmons
a6db249ab6
Add ArticleFetcher protocol. Add Feed and Folder extensions for it.
2018-02-04 10:57:41 -08:00
Daniel Jalkut
d7f13ca4be
Change from flatMap to new compactMap rename in Xcode 9.3.
2018-01-29 11:19:54 -05:00
Brent Simmons
f109237bfa
Handle feed renames in the inspector. Handle multiple selection. Fix #137 .
2018-01-23 21:49:33 -08:00
Brent Simmons
6b059671f5
Make progress on reloading timeline when feed updates.
2018-01-17 17:28:09 -08:00
Brent Simmons
8f9575ee84
Remove assertion that wasn’t valid in some situations. Fix #283 .
2017-12-29 10:13:11 -08:00
Brent Simmons
0b2d7c6733
Validate unread counts on fetching articles. Fix #274 .
2017-12-26 11:27:55 -08:00
Brent Simmons
23769bc391
Add AccountDelegate.accountDidInitialize method, so that the delegate can set the account’s nameForDisplay before anything else happens. Fix #247 .
2017-12-19 17:48:30 -08:00
Brent Simmons
5b01f04afe
Save to disk right after importing OPML. Fix #249 .
2017-12-18 21:46:35 -08:00
Brent Simmons
3eb95ce63d
Fix OPML import performance regression. Fix #238 .
2017-12-11 23:12:54 -08:00
Brent Simmons
a488683550
Refresh all after importing OPML. Fix #59 .
2017-12-03 12:54:51 -08:00
Brent Simmons
0c176eccd0
Fetch all unread counts at startup. This is done with a single SQL call, and it’s done in the background, so performance hit should not be noticeable. Fix #138 .
2017-12-03 11:57:53 -08:00
Brent Simmons
3da2521e8e
When adding a feed, update it right away rather than waiting for the next Refresh. Fix #147 . Fix #215 .
2017-12-02 17:47:08 -08:00
Brent Simmons
e026e159d1
Rebuild the feed dictionary at appropriate times. Fix #169 .
2017-11-25 18:05:20 -08:00
Brent Simmons
68c01491fc
Note when feed settings change and update the sidebar cells.
2017-11-25 13:48:14 -08:00
Brent Simmons
55166e0979
Update a Feed with settings taken from the raw feed. (Some Feeds had no homePageURL set, which meant, in most cases, no favicons.)
2017-11-25 12:17:49 -08:00
Brent Simmons
bd8b7c6ed9
Implement debugDropConditionalGetInfo command. Fix #197 .
2017-11-25 11:13:15 -08:00
Brent Simmons
1864f60e0b
Save iconURL and faviconURL in Feed when found in ParsedFeed.
2017-11-19 22:38:42 -08:00
Brent Simmons
ffaa55c50c
Implement mark-everywhere-as-read.
2017-11-19 16:28:26 -08:00
Brent Simmons
9c571271e6
Create SmartFeed class. It’s for Unread and Starred pseudo-feeds — and will also be used later on by predicate-based smart feeds.
2017-11-19 15:40:02 -08:00
Brent Simmons
83cee90929
Fix a couple bugs in PseudoFeed. Make callback for fetching unread count @escaping.
2017-11-19 12:45:35 -08:00
Brent Simmons
e681007bbe
Add TodayFeedDelegate. Start work on fetching unread count for Today pseudo-feed.
2017-11-19 12:12:43 -08:00
Brent Simmons
1e713e3bfd
Update Account unread count when BatchUpdate did perform.
2017-11-15 13:26:10 -08:00
Brent Simmons
9f56030b79
Calculate the Account’s unread count by looking at the set of flattened feeds — this way a given feed (which can occur more than once) is counted only once. Fix #101 .
2017-11-11 19:34:10 -08:00
Brent Simmons
9818278c9b
Make undo deleting feeds/folders work.
2017-11-05 12:14:36 -08:00
Brent Simmons
e16911b363
Make deleting work. Can’t undo yet. But now everything is messed-up because of an AnyHashable casting bug. Don’t run this build.
2017-11-04 22:51:14 -07:00
Brent Simmons
ef303c0c38
Make progress on deleting and especially undoing delete.
2017-11-04 19:03:47 -07:00
Brent Simmons
f9b3eeb4d7
Switch macOS deployment target to 10.13. Get MarkAllReadCommand working as an undoable command.
2017-10-29 11:14:10 -07:00
Brent Simmons
c101d9dd04
Maintain url-to-feed and feedID-to-feed dictionaries to make lookups faster. This makes OPML importing very fast.
2017-10-22 11:08:51 -07:00
Brent Simmons
649f62207f
Fix OPML importing.
2017-10-21 21:00:21 -07:00
Brent Simmons
d512908b6f
Use @discardableResult with addFeed.
2017-10-21 16:32:29 -07:00
Brent Simmons
da1b7a6c7b
Post children-did-change notification after adding a feed.
2017-10-21 16:06:25 -07:00
Brent Simmons
aca8acea7c
Update sidebar when adding a folder.
2017-10-19 13:27:59 -07:00
Brent Simmons
3812c216b2
Show unread count in window title.
2017-10-18 21:53:45 -07:00
Brent Simmons
2383ecd480
Implement ensureFolder — it actually creates and adds a folder and makes sure account is saved to disk.
2017-10-18 19:46:35 -07:00
Brent Simmons
31947854c0
Add AccountDelegate methods for reading and writing a userInfo dictionary that’s stored on disk in the same file as the rest of the Account info. Save account unreadCount with the disk dictionary. Mark an account as dirty when any descendant changes an unread count.
2017-10-18 19:14:40 -07:00
Brent Simmons
39599a43f3
Make hasAtLeastOneFeed() a Container protocol function with a default implementation. Scrap Account’s feedIDDictionary, since it’s not needed. (Well, profiling may tell us later to bring it back.)
2017-10-18 18:45:09 -07:00
Brent Simmons
fe29ccd2ed
Show unread count in dock badge. Force-update unread counts at startup.
2017-10-18 18:37:45 -07:00
Brent Simmons
3ea60cb461
Handle unread count change notifications in Folder. Update the unread count when needed.
2017-10-13 06:58:15 -07:00
Brent Simmons
505f4bcdba
Handle unread count did change notification in Account.
2017-10-13 06:50:33 -07:00
Brent Simmons
4897181909
Avoid a compiler bug with constrained Set extensions. Add a notification observation to Account when unread count changes.
2017-10-12 21:02:27 -07:00
Brent Simmons
165e74a3f3
Refactor status change handling in Account.
2017-10-10 13:23:12 -07:00
Brent Simmons
f5a5bf91b2
Update unread counts for feeds when statuses change.
2017-10-09 21:54:08 -07:00