Brent Simmons
fe2d329301
Make has(feed) a Container protocol method.
2019-08-21 21:05:47 -07:00
Brent Simmons
f513741ddb
Start work on filtering timeline so that articles from deleted feeds never show up.
2019-08-21 13:23:46 -07:00
Brent Simmons
4667e533fc
Merge branch 'mac-candidate'
2019-07-24 09:27:34 -07:00
Brent Simmons
9edc726065
Make the Today smart feed show articles from the last 28 hours, so it doesn’t surprise people by emptying out at midnight.
2019-07-24 09:27:03 -07:00
Maurice Parker
e263665a21
Merge branch 'mac-candidate'
2019-07-23 16:36:46 -05:00
Maurice Parker
4fc1998cf3
Make Account and AccountDelegate interfaces more consistent by requiring the container parameter on removeFeed. Resolves #802
2019-07-17 15:41:21 -05:00
Brent Simmons
0d5ebad782
Merge branch 'mac-candidate'
2019-07-08 23:10:41 -07:00
Brent Simmons
055e0f09ad
Update code formatting in Account.
2019-07-08 23:06:40 -07:00
Brent Simmons
783477c58e
Merge branch 'mac-candidate'
2019-07-07 15:07:21 -07:00
Brent Simmons
36791fc3ad
Make fetching article IDs async — use a callback rather than a fetch sync and a returned value.
2019-07-07 15:05:36 -07:00
Brent Simmons
424daa0a5c
Merge branch 'mac-candidate'
2019-07-07 14:26:05 -07:00
Brent Simmons
590961fb2c
Add comment that Account is main-thread-only, and assert that we’re on the main thread in flattenedFeeds().
2019-07-07 14:01:44 -07:00
Brent Simmons
fe5570fbea
Merge branch 'mac-candidate'
2019-07-06 11:54:14 -07:00
Brent Simmons
a68ca58242
Remove a precondition that is no longer valid when doing async fetches.
2019-07-06 11:50:22 -07:00
Brent Simmons
3999c7b3c5
Merge branch 'mac-candidate'
2019-07-05 22:42:01 -07:00
Brent Simmons
7a204ad6ed
Run database fetches async, in the timeline, when appropriate — for instance, when All Unread is selected and new articles come in.
2019-07-05 20:06:31 -07:00
Maurice Parker
5f045706e4
Removed usaged of UIApplication.present
2019-06-27 14:21:07 -05:00
Maurice Parker
1ac1144b2d
Reduce footprint of Account credentials API
2019-06-20 11:19:15 -05:00
Maurice Parker
fa62acb585
Rebrand Reader API to FreshRSS
2019-06-20 07:22:51 -05:00
Maurice Parker
74f84dc000
Restrict OPML import for Account types that don't support it
2019-06-19 17:50:32 -05:00
Maurice Parker
b4b80c51bc
Renamed google reader api to just reader api to make it consistent everywhere we use it
2019-06-19 15:40:03 -05:00
Jeremy Beker
d87f68a006
Renamed GoogleReaderCompatible to just Reader
2019-06-19 12:25:37 -04:00
Maurice Parker
47a7fa420d
Fixed error caused by updating to the latest from RSWeb
2019-06-16 14:55:48 -05:00
Jeremy Beker
029bcbda96
Merge cleanup.
2019-06-15 13:30:12 -04:00
Jeremy Beker
f54bc3569b
Merge branch 'master' into google_reader_compatible_syncing
...
# Conflicts:
# Frameworks/Account/Account.swift
# submodules/RSWeb
2019-06-15 12:34:50 -04:00
Maurice Parker
c1e89a2ae0
Updated to the latest RSWeb
2019-06-12 15:09:06 -05:00
Jeremy Beker
98c32b9987
Merge branch 'master' into google_reader_compatible_syncing
2019-05-31 09:54:25 -04:00
Maurice Parker
88b2775076
Make sure that an account doesn't try persist to the disk in the time that it is logically deleted and when it is actually deallocated
2019-05-31 08:05:26 -05:00
Maurice Parker
10296a1b74
Clear the feed metadata on Feedbin feed delete
2019-05-31 07:47:05 -05:00
Maurice Parker
30c21bb125
Enable folders to be dropped in a move or copy between accounts
2019-05-30 14:36:21 -05:00
Maurice Parker
1352dda8aa
Modify Feedbin feed deletes so that they emulate how the local account feed deletes work.
2019-05-30 10:12:34 -05:00
Jeremy Beker
fdc0374c4f
Ensure credentials are available for use
...
Need to load metadad first
2019-05-30 07:48:34 -04:00
Maurice Parker
51284b5aa4
Rename deleteFeed to removeFeed to be more consistent with other API's
2019-05-29 21:04:44 -05:00
Maurice Parker
527e677934
Rename deleteFolder to removeFolder to make the API more consistent
2019-05-29 20:53:00 -05:00
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