Commit Graph

1086 Commits

Author SHA1 Message Date
Kiel Gillard 3ed5a43de3 Improves the behaviour and fixes some issues with cancelling of Feedly operations. 2019-11-15 07:59:44 +11:00
Maurice Parker 96dbd96527 Change keychain accessiblity to allow access when the device is locked. Issue #1292 2019-11-12 19:24:07 -06:00
Maurice Parker 3b3dd9f1bd Always use cloud environment for Feedly. 2019-11-11 18:18:59 -06:00
Maurice Parker 4c97d099ea Add ProjectSettings.xcconfig to be included in the Account build. 2019-11-11 17:57:49 -06:00
Maurice Parker 2617744d49 Merge branch 'master' of https://github.com/brentsimmons/NetNewsWire 2019-11-11 13:52:52 -06:00
Maurice Parker 866988edcf Correct deep link comments. 2019-11-11 13:47:28 -06:00
Kiel Gillard c87f8c974a Store the last article fetch when articles were successfully fetched. 2019-11-11 17:42:14 +11:00
Kiel Gillard a4bcbf5c36 Automatically refreshes a new Feedly account after its creation. 2019-11-11 08:10:39 +11:00
Kiel Gillard 8c27187ad8 Make the OAuthAuthorizationClient an implementation detail the Account.framework. 2019-11-09 21:44:13 +11:00
Kiel Gillard 39c7bdb5e2 Give this test a bit more time to execute on a stressed system. 2019-11-09 21:44:13 +11:00
Kiel Gillard b8f7e3f519 Use ASWebAuthenticationSession to authenticate Feedly users and grant NNW access tokens. 2019-11-09 21:44:13 +11:00
Maurice Parker 9846428071 Update Feedbin tests to match latest functionality. 2019-11-07 19:36:31 -06:00
Maurice Parker 6b2ecdaca0 Merge branch 'mac-release' 2019-11-07 19:17:53 -06:00
Maurice Parker e2434e620c Get extended subscription information from Feedbin. Issue #917 2019-11-07 19:07:10 -06:00
Kiel Gillard 4c9e98c150 Ensures refresh tokens occurs before syncing. Implements cancelAll for Feedly. 2019-11-07 20:44:51 +11:00
Kiel Gillard 6bef313937 Feedly accounts now refresh their access tokens on initialisation. 2019-11-07 18:55:05 +11:00
Kiel Gillard 434b11ed17 Ensures Feedly status operations finish at the right time. In part, this is achieved by adding and using completion handlers to the asynchronous ensure status API. 2019-11-06 13:26:12 +11:00
Kiel Gillard 1a1ee0fa17 Fixes an issue where sending article statuses to Feedly was finishing prematurely. 2019-11-06 11:22:10 +11:00
Maurice Parker 098f5050eb Cancel local account network activity when told to shutdown by the OS. Issue #1232 2019-11-04 20:41:08 -06:00
Maurice Parker c6e3ed6692 Cancel network activity when told to shutdown by the OS. Issue #1232 2019-11-04 20:24:21 -06:00
Maurice Parker 219e5751a1
Merge pull request #1144 from kielgillard/master
Syncs articles in pages, decouples article syncing from status syncin…
2019-11-04 14:29:22 -06:00
Maurice Parker 2f2efb5eac Change Feedbin to no longer clear lastFetchDate on errors. Issue #1233 2019-11-02 16:21:37 -05:00
Kiel Gillard 4f70cb6040 Improves test coverage in Feedly. Adds callbacks to SyncDatabase. Content is paged from Feedly. Unread status is set before articles are ingested. 2019-11-02 10:29:34 +11:00
Brent Simmons 4cb602f24a Merge mac-release. 2019-10-26 12:44:33 -07:00
Brent Simmons 3354d5a569 Delete articles and statuses from feeds no longer subscribed-to. At startup. Fix #899. 2019-10-24 22:28:26 -07:00
Jonathan Bennett 48e47ec40b Allow adding of feeds 2019-10-24 11:48:12 -04:00
Jonathan Bennett 77fc1bd8fe Merge branch 'master' into feature/feed-wrangler
# Conflicts:
#	submodules/RSCore
2019-10-23 21:10:57 -04:00
Ryan Dotson 48fb3ebc18 Curled some quotes 2019-10-22 19:58:05 +09:00
Maurice Parker af16731ecd Add the ability to specify folder in Add Feed shortcut 2019-10-20 18:49:17 -05:00
Brent Simmons 68687059d3 Avoid embedding frameworks in extensions and in Account.framework. Fix some Info.plist glitches. 2019-10-19 22:31:06 -07:00
Jonathan Bennett 4dea5e2cbb use URLQueryItem helper 2019-10-17 13:59:43 -04:00
Jonathan Bennett 2c150ae685 Merge branch 'master' into feature/feed-wrangler
# Conflicts:
#	Frameworks/Account/Account.xcodeproj/project.pbxproj
#	submodules/RSWeb
2019-10-17 13:34:54 -04:00
Maurice Parker 579717dd86 Move extensions for compositing query items to RSWeb 2019-10-17 06:01:08 -05:00
Jonathan Bennett d70c996c06 use the URLQueryItem helper 2019-10-17 01:56:42 -04:00
Jonathan Bennett ae014375ed QueryItem helper 2019-10-17 01:37:22 -04:00
Jonathan Bennett 09faf1a0c2 start supporting article sync 2019-10-17 01:05:18 -04:00
Jonathan Bennett c7d0d23146 add page size configuration option 2019-10-16 15:06:01 -04:00
Jonathan Bennett 81bffda093 allow removal of feeds 2019-10-16 11:43:49 -04:00
Jonathan Bennett 36861f2eb3 allow renaming of feeds 2019-10-16 11:32:22 -04:00
Jonathan Bennett d1b4c20494 append query items, don't overwrite everything 2019-10-16 11:12:55 -04:00
Jonathan Bennett d26b3b9917 Merge branch 'feature/feed-wrangler-refresh-feeds' into feature/feed-wrangler 2019-10-16 10:05:31 -04:00
Maurice Parker acbbee870e Rename Feedbin specific tests to reflect the specificity and move them to a Feedbin folder 2019-10-16 08:36:21 -05:00
Maurice Parker f17a278349 Fix randomly failing Feedbin test 2019-10-16 08:30:37 -05:00
Jonathan Bennett 1d6519cce9 Merge branch 'master' into feature/feed-wrangler 2019-10-16 09:24:14 -04:00
Jonathan Bennett 51dc82ffef use swiftier property names 2019-10-16 09:04:24 -04:00
Jonathan Bennett d80aeefdb3 Allow refreshing of Feed Wrangler subscriptions 2019-10-16 08:30:11 -04:00
Kiel Gillard 05cb3773de Follows the continuation until the starred articles stream has been consumed. 2019-10-16 22:12:37 +11:00
Jonathan Bennett 86caa869fc Merge branch 'master' into feature/feed-wrangler
# Conflicts:
#	Frameworks/Account/Account.xcodeproj/project.pbxproj
2019-10-16 05:48:03 -04:00
Kiel Gillard 16be64c440 Feedly: removes redundant mapping of articles to feed IDs. 2019-10-16 17:35:28 +11:00
Kiel Gillard 2b0413224a Fixes failing Feedly tests and improves debugging mock network responses. 2019-10-16 09:37:35 +11:00
Kiel Gillard 2ecdf92f40 Tweaking the logging to be more useful. 2019-10-15 18:39:09 +11:00
Kiel Gillard 0d20bccc55 Send and receive starred articles, refactoring status syncing code into operations for better code reuse. 2019-10-15 18:31:24 +11:00
Brent Simmons 7b09c86858 Use the new article saving function for both Feedly and ReaderAPI. 2019-10-13 19:32:46 -07:00
Brent Simmons c04322990c Merge branch 'mac-release' 2019-10-13 19:24:06 -07:00
Brent Simmons fcb0f0c439 Remove a no-longer-used Account.update function — we have a new one that’s way faster. Also: assert that we’re in the main thread in that new update function. 2019-10-13 19:23:36 -07:00
Brent Simmons c5e0d96adb Merge changes from mac-release, including performance fix. 2019-10-13 19:08:27 -07:00
Brent Simmons 1d0cacd5fc When syncing, update the database by articleIDs rather than by feeds — this means *far* fewer fetches and much less data pulled from the database. It should help app responsiveness dramatically during sync, and especially during an initial sync. 2019-10-13 19:02:56 -07:00
Brent Simmons 099172d9d2 Empty the database articles cache when NetNewsWire moves to the background. This helps prevent the cache from growing forever. 2019-10-12 15:06:21 -07:00
Maurice Parker ee1f26899c Add Test build configuration 2019-10-11 17:38:01 -05:00
Kiel Gillard 438338ac9f Refactor add and create feeds since they differ only by refreshing after adding. 2019-10-11 20:32:21 +11:00
Kiel Gillard e0b35d6854 Add feed request 2019-10-11 18:14:23 +11:00
Maurice Parker 02128b8b12 Add VerifyNoBS script on framework projects 2019-10-10 13:58:31 -05:00
Kiel Gillard d1e4c84a9e Refactoring create feed 2019-10-10 21:25:14 +11:00
Kiel Gillard 7cac3e6238 Simplifying operations to improve their reusability and composability 2019-10-10 21:25:14 +11:00
Maurice Parker df79422185 Remove provisioning profile 2019-10-10 00:32:18 -05:00
Maurice Parker 0b5be9057f Correct build configuration for CI build 2019-10-10 00:24:36 -05:00
Kiel Gillard 3089f2332e Show progress while fetching the content of a newly created feed. 2019-10-09 19:47:15 +11:00
Kiel Gillard 13197054bf Implement restore folders. Not sure how to test this. 2019-10-09 19:44:52 +11:00
Kiel Gillard dedce600a4 Implement restore feeds. Not sure how to test this. 2019-10-09 19:42:12 +11:00
Kiel Gillard a965677687 Fetch the contents of the feed when first adding it 2019-10-09 19:38:16 +11:00
Kiel Gillard 614628883f Use a suitable error for unexpectedly failing to add a feed 2019-10-09 19:15:48 +11:00
Kiel Gillard 92fa66f345 Refresh progress updates for changes which cannot be applied immediately and restored on failure 2019-10-09 19:06:59 +11:00
Kiel Gillard 41ca023c31 Implements creating, updating, moving and removing feeds. 2019-10-09 18:38:28 +11:00
Maurice Parker 590b2d5874 Remove explicit dependencies and fix iOS sync database dependency 2019-10-07 10:53:05 -05:00
Jonathan Bennett 0c2185ae25 fix db file extension 2019-10-07 10:22:10 -04:00
Maurice Parker 88f5ca24dd Remove problematic build settings 2019-10-06 19:29:43 -05:00
Brent Simmons 50276233d1 Add feeds all in one go when processing Feedbin subscriptions. This is a performance enhancement. 2019-10-06 12:37:46 -07:00
Kiel Gillard 39d3999a0d 2019-10-06 13:22:36 +11:00
Maurice Parker 0000e03083 Add the ability to handoff from iOS to Mac 2019-10-03 15:49:27 -05:00
Maurice Parker 0c9a1ba8d0 Add notification deep linking for iOS 2019-10-03 09:53:21 -05:00
Kiel Gillard e1b0e17b6a Allows folders to efficient add and remove many feeds. 2019-10-03 18:45:16 +10:00
Kiel Gillard 56a92e7938 Adds unit testing and implements fixes for unread counts, icons, missing metadata and more. 2019-10-03 18:06:49 +10:00
Brent Simmons 1cfafe3014 Add feeds from Feedbin all in one go, which helps performance by not triggering Account’s rebuilding of its feedDictionary. 2019-10-02 23:05:35 -07:00
Maurice Parker cc187875d9 Add initial support for per feed notifications 2019-10-02 19:42:16 -05:00
Maurice Parker aba0d15cb6 Modify background fetch so that it doesn't have to use a background process 2019-10-02 16:41:32 -05:00
Maurice Parker 281416eaee Make sure metadata gets saved if background fetch is performed. 2019-10-02 15:32:34 -05:00
Kiel Gillard 8f53916a79 Make Account framework tests compile and pass. 2019-09-30 17:17:58 +10:00
Brent Simmons 13eb6450c7 Merge branch 'mac-release' 2019-09-28 13:52:07 -07:00
Brent Simmons d7b45a1413 Change parseDatePublished() to a lazy var parsedDatePublished — it appeared that it was getting called more than once, and date parsing is expensive. Also: use RSDateWithString rather than an NSDateFormatter, since NSDateFormatter is so massively slow. 2019-09-27 23:01:31 -07:00
Jonathan Bennett 59c768abae externalize keys 2019-09-28 01:59:49 -04:00
Jonathan Bennett 50428f3179 Allow adding Feed Wrangler accounts 2019-09-28 01:59:49 -04:00
Kiel Gillard 060366f447 Implements creating, updating and deleting Folders/Collections. Issues #1044 #1048 2019-09-27 21:47:30 +10:00
Maurice Parker 6536dbf2a5 Use correct account method for adding folders 2019-09-27 06:38:43 -05:00
Kiel Gillard 465b6e789b Sends and receives unread statuses #1058. Also implements OMPL import #1043. 2019-09-27 08:26:18 +10:00
Maurice Parker e60ce37dc9 Merge branch 'mac-release' 2019-09-26 11:49:53 -05:00
Maurice Parker 90834fe6b1 Delete conditional get information for taggings if it looks like Feedbin may have renamed a folder. Issue #1050 2019-09-26 11:35:07 -05:00
Maurice Parker b721f74e17 Merge branch 'mac-release' 2019-09-25 17:09:21 -05:00
Maurice Parker c4ee1edb69 Add externalID to Folder and persist it to OPML file. Issue #1060 2019-09-25 17:01:09 -05:00
Maurice Parker 833a789e6e Merge branch 'mac-release' 2019-09-25 15:39:14 -05:00
Maurice Parker 08a8b8f6c2 Update to Swift 5.1 2019-09-25 15:32:30 -05:00
Maurice Parker e2a25e6239 Require 13.0 deployment target for iOS in frameworks 2019-09-25 10:13:15 -05:00
Maurice Parker 46c737c777 Make sure delegates get set even if a metadata file isn't found. Issue #1051 2019-09-24 06:56:39 -05:00
Maurice Parker cb394a2a61 add APPLICATION_EXTENSION_API_ONLY build setting 2019-09-23 19:56:16 -05:00
Maurice Parker eaf798991f Remove name from the feed metadata as we manage it using the OPML file instead 2019-09-23 12:29:48 -05:00
Maurice Parker 59991d0478 Save resource files immediately in the share extension 2019-09-23 11:09:40 -05:00
Maurice Parker de994a305e Remove dead code. 2019-09-23 10:35:48 -05:00
Maurice Parker 0424ba3bb7 Make unread counts show up for new feeds added by share extension 2019-09-23 10:27:17 -05:00
Maurice Parker 6f9d3953f1 Ensure that account metadata gets propagated to delegates when it reloads 2019-09-23 09:57:50 -05:00
Maurice Parker 0709b006f4 Add feed meta data did change notification 2019-09-22 21:42:49 -05:00
Maurice Parker 124997feca Reset feed to feed metadata relationship on reload 2019-09-22 21:20:01 -05:00
Maurice Parker 20fa5d9e48 Implement keychain groups 2019-09-22 16:00:06 -05:00
Maurice Parker 43bed44d46 Merge branch 'mac-release' 2019-09-20 11:42:06 -05:00
Maurice Parker ea13f911f1 Change to ignore unsupported accounts instead of crashing 2019-09-20 11:41:28 -05:00
Maurice Parker af0d6c9022 Implement AccountBehaviors so that we don't have to keep adding boolean flags to account 2019-09-20 11:34:31 -05:00
Maurice Parker f3a1b074ac Call download progress on the main queue 2019-09-20 10:16:51 -05:00
Kiel Gillard 1d965142d9 Initial implementation FeedlySyncStrategy and basic usability improvements to allow for downloading and reading articles without crashing. 2019-09-20 16:56:51 +10:00
Maurice Parker 5e48c45d78 Make article extract feed flag optional 2019-09-19 20:12:55 -05:00
Maurice Parker d67c9144f5 Add Reader View is always on preference for Feeds 2019-09-19 19:49:11 -05:00
Kiel Gillard 9cc5fa3608 Initial implementation allowing Feedly accounts to be added given the Feedly user's consent. 2019-09-19 10:11:53 +10:00
Maurice Parker 8e939e9942 Change Credentials to be a struct instead of an enum 2019-09-15 10:03:47 -05:00
Maurice Parker 530e9ca60f Change writing options for resource files to none 2019-09-13 16:58:10 -05:00
Maurice Parker 82d4e0e3b3 Fixed metadata name suffixes 2019-09-13 16:41:08 -05:00
Maurice Parker 7b29eaab7a Make feed metadata a managed resource file 2019-09-13 16:35:53 -05:00
Maurice Parker b24e6a4725 Make account metadata a managed resource file 2019-09-13 16:12:19 -05:00
Maurice Parker f7bb58ea4d Modify OPMLFile to use the new ManagedResourceFile utility class 2019-09-13 15:46:22 -05:00
Maurice Parker f924eb91ff Fix log category name 2019-09-13 14:56:24 -05:00
Maurice Parker 762e230200 Add file coordination for the OPML file 2019-09-13 10:48:04 -05:00
Maurice Parker 4d118d89db Move more OPML file management functions to the OPMLFile class 2019-09-13 10:15:11 -05:00
Maurice Parker 7de08e992e Add the ability to observe OPML file changes 2019-09-12 18:41:42 -05:00
Maurice Parker 83476baa5b Move OPML I/O functions into a separate OPMLFile class 2019-09-12 18:05:29 -05:00
Maurice Parker 5985b00480 Inject the Accounts folder name so that it can be in different locations between the iOS and Mac Apps. 2019-09-12 10:59:26 -05:00
Brent Simmons 03bf97df90 Fix parts of ReaderAPI implementation that I broke with an API change in Account. 2019-09-08 21:52:02 -07:00
Brent Simmons 2eccfbb90e Merge branch 'mac-release' 2019-09-08 21:44:28 -07:00
Brent Simmons 41c82eca15 Rename existingFeed(with:) to existingFeed(withFeedID:) to make it more clear. Make account.idToFeedDictionary private — callers should use existingFeed(withFeedID:). 2019-09-08 21:44:05 -07:00
Brent Simmons f5f306f60f Add comments to feed.iconURL and feed.faviconURL, explaining that these are set only if that info was part of the feed (which is a JSON-Feed-only feature). 2019-09-08 21:17:57 -07:00
Maurice Parker c4f7090b9c Automatically expand any activated accounts and clean up the expandedNodes table for inactivated accounts 2019-09-08 09:58:27 -05:00
Maurice Parker e61efbe47a Split AccountsDidChange notification into both add and delete notifications and automatically expanded new accounts on iOS 2019-09-08 09:43:51 -05:00
Maurice Parker d9ea35b6f6 Merge branch 'mac-release' 2019-09-08 04:29:37 -05:00
Maurice Parker 7ca2226669 Move credentials classes to the Account framework in NetNewsWire 2019-09-08 04:28:43 -05:00
Maurice Parker ab0ca49882 Added new OAuth credentials 2019-09-06 17:38:48 -05:00
Maurice Parker 6cf1e4539d Merge branch 'mac-release' 2019-09-01 10:51:22 -05:00
Maurice Parker e31dec7c44 Call completion handler when there are no feeds associated with the folder being removed. Issue #938 2019-09-01 10:49:35 -05:00
Maurice Parker fe2e0155da Add scoped searching of articles 2019-08-31 15:53:47 -05:00
Maurice Parker 995fca5d6a Updated FreshRSS to pull statuses before articles and to work with the new sync status API's 2019-08-30 11:47:08 -05:00
Maurice Parker ea1f21797c Merge branch 'mac-release' 2019-08-30 11:28:16 -05:00
Maurice Parker a69be4117a Retrieve statuses before articles during sync process and default starred articles to read if there isn't an unread status Issue #868 2019-08-30 10:39:52 -05:00
Daniel Jalkut a5a36e0986 Fix for #885: Include 403 status code in list of errors to prompt with 'update credentials' error message, and expand that message to cover the possibility an account is no longer valid with the service, i.e. in the case of an expired Feedbin subscription. 2019-08-28 11:40:12 -04:00
Brent Simmons 1ab0f7c25c Merge mac-candidate. 2019-08-21 21:44:07 -07:00
Brent Simmons bffda93700 Give has(feed) a default implementation in Container.swift. 2019-08-21 21:07:40 -07:00
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 2027e83504 Merge branch 'mac-candidate' 2019-08-12 09:43:48 -07:00
Brent Simmons f8c8fc5f34 Fix crashing bug with marking all as read via contextual menu. Implement feed.fetchUnreadArticles. 2019-08-12 09:43:29 -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
Jeremy Beker 9b552d8003
Remove DispatchQueue.main.sync calls that are not appropriate anymore 2019-07-13 08:47:00 -04:00
Jeremy Beker fe9129ac4a
Use Feed Finder before attempting to add feed urls 2019-07-13 08:37:08 -04: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 1e998543a5 Use right single curly quote instead of foot mark in error messages. 2019-07-08 22:59:29 -07:00
Brent Simmons 21faa0ddc0 Update code formatting in some files in Account.framework. 2019-07-08 22:58:19 -07:00
Brent Simmons b1c96fddf8 Use async article ID fetches. 2019-07-07 19:56:52 -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 597c57e61c Remove references to DispatchQueue.main.sync and assert that we’re on the main thread. 2019-07-07 14:24:50 -07:00
Brent Simmons 1e82ad4845 Note that AccountManager is main thread only. Add an assert in a strategic location (activeAccounts property). 2019-07-07 14:05:27 -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 a5bf148d82 Make Transport callbacks run on the main thread, which is consistent with NetNewsWire’s general pattern for these types of callbacks. This helps avoid situations where we touch model objects (which are main-thread-only) on a background thread. 2019-07-07 13:42:24 -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 aab318023c Update ReaderAPI to use changed database fetch API. 2019-07-05 22:46:02 -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 9653befb94 Retrieve credentials if necessary. On iOS credentials aren't always available when the delegate initializes. 2019-06-23 13:56:11 -05:00
Maurice Parker 1ac1144b2d Reduce footprint of Account credentials API 2019-06-20 11:19:15 -05:00
Maurice Parker 2756e8f204 Ensure that invalid username/password combinations throw an error 2019-06-20 11:18:09 -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 15ae97f7c9
Merge branch 'master' into google_reader_compatible_syncing 2019-06-19 13:53:30 -04:00
Maurice Parker d794240bd9 Merge branch 'mac-candidate' 2019-06-19 11:31:38 -05:00
Jeremy Beker d87f68a006
Renamed GoogleReaderCompatible to just Reader 2019-06-19 12:25:37 -04:00
Jeremy Beker 52cb066dd4
Cleanup unused objects 2019-06-19 07:56:25 -04:00
Maurice Parker 47a7fa420d Fixed error caused by updating to the latest from RSWeb 2019-06-16 14:55:48 -05:00
Maurice Parker f6677367ec use refresh indicator to track all network activity. Issue #759 2019-06-16 14:48:50 -05:00
Jeremy Beker 42203c0170
FIrst pass at OPML import. Broken. 2019-06-16 15:14:20 -04:00
Jeremy Beker adf53add3a
removed unused page number function. 2019-06-16 13:15:36 -04:00
Jeremy Beker 17439c8c5e
Disbale and rename tags functional. 2019-06-16 13:14:23 -04:00
Jeremy Beker 41af536212
Rename feeds 2019-06-15 16:13:08 -04:00
Jeremy Beker 62afd312f0
Subscribing and loading initial articles functioning. 2019-06-15 15:46:13 -04: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
Jeremy Beker e5eb8df333
Add feed working on backend, thread crash inside account code. 2019-06-15 12:27:21 -04:00
Jeremy Beker 5490dac86d
Need to use rawValue to properly mark starred/read 2019-06-15 08:21:13 -04:00
Jeremy Beker 2128afd465
Refactor endpoints into an enum 2019-06-13 12:44:20 -04:00
Jeremy Beker dac166cf58
Refactor status change calls. 2019-06-13 09:35:01 -04:00
Maurice Parker 871dbbb752 moved dispatch group notify to background thread as it was deadlocked with the dispatch group wait on app exit 2019-06-12 17:28:54 -05:00
Jeremy Beker 45c15c96aa
Marking read/unread functioning. 2019-06-12 16:41:44 -04:00
Maurice Parker c1e89a2ae0 Updated to the latest RSWeb 2019-06-12 15:09:06 -05:00
Jeremy Beker 69c947bd65
Mark read/unread structure. 2019-06-11 16:42:28 -04:00
Jeremy Beker dc60ebf1f8
Unread status is properly set when articles are downloaded from backend 2019-06-11 15:37:21 -04:00
Maurice Parker 17c04b2aef Show the refresh progress bar when an OPML import starts. Issue #732 2019-06-10 16:17:54 -05:00
Jeremy Beker 9144ee71e5
Request article IDs and content. 2019-06-10 16:53:35 -04:00
Maurice Parker 93fbbd4cc3 Make sure that FeedFinder and InitialDownloader are running on the main thread. 2019-06-10 08:21:03 -05:00
Maurice Parker f4e0cfaf2b Fix folder renaming issue that occurs for Feedbin when the tag doesn't exist at Feedbin. Issue #724 2019-06-07 05:03:54 -05:00
Maurice Parker eb71e88845 Resolved issue where local account feed finder could lock up the UI if an error was thrown. Issue #720 2019-06-06 19:46:42 -05:00
Maurice Parker e7ec59f31f
Merge pull request #725 from tgt/tgt/feedbin-fixes
Various Minor Feedbin Fixes
2019-06-06 15:27:06 -05:00
Maurice Parker 1cfc3bceef Fixed restore folder functionality for Feedbin. 2019-06-06 15:22:25 -05:00
Tom Grimwood-Taylor b0a24b6f17 Revert "Fix updating local feed list when no remote feeds."
cd85e52fdd
2019-06-06 14:23:06 +01:00
Tom Grimwood-Taylor 534da0bca6 Move call to sendArticleStatus to delegate. 2019-06-06 14:22:29 +01:00
Tom Grimwood-Taylor 0447694142 Fix feed selection when the max feed score is 0.
This occurs, for example, when searching for “macrumors.com” and adding
to the Feedbin account. All four feeds have a score of 0 since their
source is set as HTMLLink. This would also fix a case in which there are
two feeds: one with a negative score and one with a score of 0.

Since the method uses a Set the feed selected when there are multiple
feeds with an identical maximum score will be random.
2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor ac9057299a Remove edited name when remote feed name changes. 2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor f3505e4537 Fix posting name notifications when name changes. 2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor b4d7042a7b Ensure status changes are sent before refresh.
When the refresh button was manually clicked a full refresh would occur,
but locally changed statuses wouldn't be sent. This meant the statuses
of items in NetNewsWire would revert to their remote values until an
automatic status sync was triggered.
2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor 3c1b84dd73 Fix a Feedbin subscriptionID going out of sync.
If, for example, a user deleted a feed and recreated it on the server
without a sync in between, the subscription ID for the feed would update
on the server, but remain unchanged locally. If the user then wanted to
delete or rename the feed they'd get a 404 error.
2019-06-06 10:31:00 +01:00
Tom Grimwood-Taylor cd85e52fdd Fix updating local feed list when no remote feeds.
When there were no remote feeds the logic to remove local
feeds was skipped.
2019-06-03 17:09:17 +01:00
Jeremy Beker 6b147e7dc9
Add feeds to tags. Set iconURLs
remove unused functions.
2019-06-01 17:05:55 -04:00
Jeremy Beker a0efc7fda9
Cleanup tag names, fetch subscriptions 2019-06-01 08:08:19 -04:00
Jeremy Beker 76d1daf122
Cleanup merge issues/API changes 2019-06-01 06:54:10 -04:00
Maurice Parker 2d91e64148 Provide a better error message when encountering feed not found and already subscribed errors 2019-05-31 17:24:43 -05:00
Maurice Parker 8e0c857810 Update the extract page number function to make it more readable 2019-05-31 13:38:33 -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 fec3c69f4a Remove Feedbin api workaround for unpropagated mode=extended parameter 2019-05-31 07:54:12 -05:00
Maurice Parker 10296a1b74 Clear the feed metadata on Feedbin feed delete 2019-05-31 07:47:05 -05:00
Maurice Parker d602f894f6 Fix link parsing bug that causes crash 2019-05-31 07:22:28 -05:00
Maurice Parker 0ddb47aa32 Refactor feed finder to make it threadsafe 2019-05-30 17:35:08 -05:00
Jeremy Beker 46e21f57e8
Decoding of tags working. 2019-05-30 16:01:56 -04: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 7bec55c90b Add missing completion call that was causing restored feeds to not show 2019-05-29 21:39:53 -05: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 c7b61f7d87 Enable copy between local accounts. 2019-05-27 18:01:24 -05:00
Maurice Parker 61f9a66d74 Change so that we fire off status update immediately if the number of pending status changes exceeds 100. Issue #658 2019-05-27 12:03:12 -05:00
Maurice Parker 886b82f3bd Fix issue where unread and unstar statuses were getting lost if there wasn't already an article. Issue #708 2019-05-26 21:05:05 -05:00
Maurice Parker 7e6db47956 Add extended mode for Feedbin entries to get avatar url. Issue #669 2019-05-26 18:35:54 -05:00
Brent Simmons e974d788ff Wrap OPML import in BatchUpdate. This makes it pretty much instant. Fix #653. 2019-05-26 14:45:09 -07: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
Maurice Parker 5f98f0d2fc Correct usage of weak self in completion handlers 2019-05-22 15:40:34 -05:00
Maurice Parker a406fa9d4d Enhance error handling to make syncing more resilient to network failures. 2019-05-21 19:15:24 -05:00
Maurice Parker 8816de4a0e Fix issue where new Feeds added to a folder also got left in the account container. 2019-05-21 10:26:11 -05:00
Maurice Parker d9458c8980 Make progress indicator more accurate 2019-05-21 08:34:05 -05:00
Maurice Parker 31cc3b609c Make delete animation correct for deletes and restores by wrapping them in BatchUpdates. Issue #667 2019-05-20 18:05:28 -05:00
Maurice Parker 59ea5cadec Add status syncing to iOS 2019-05-20 13:51:08 -05:00
Phil Viso 1f8463d091 Merge branch 'master' of https://github.com/brentsimmons/NetNewsWire into iPadPopover
# Conflicts:
#	iOS/Settings/AddLocalAccountViewController.swift
#	iOS/Settings/DetailAccountViewController.swift
#	iOS/Settings/Settings.storyboard
2019-05-19 19:03:50 -05:00
Maurice Parker 48e19c23a7 Set content type for Feedbin OPML Import. 2019-05-19 18:19:08 -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 80e1888244 Rename AccountsDidChangeNotification to AccountsDidChange to match other notification names. 2019-05-19 15:51:08 -05:00
Brent Simmons 7bd4520746 Remove unused weak self. (Was causing warning in Xcode.) 2019-05-19 11:33:48 -07:00
Maurice Parker c7f02150f9 Make sure we go and get missing articles when we add a new feed. 2019-05-19 10:43:45 -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 87512a64a5 Removed old TODO and update to latest RSWeb 2019-05-16 11:01:44 -05:00
Maurice Parker d8e6355b1e Fix bug where restoring a feed in a folder could leave the feed in the account container 2019-05-16 10:33:58 -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 5f65fba9e2 Fix bug that prevented last unread or last unstrap from changing correctly. 2019-05-16 06:01:10 -05:00
Maurice Parker 6882b152d9 Add timer to trigger article status sync process. 2019-05-15 17:21:58 -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 f449ed9608 Make sure progress gets cleared incase the last page adjustment is inaccurate 2019-05-14 17:39:55 -05:00
Maurice Parker 30273795a8 Delegate article marking functionality to the account delegate 2019-05-14 15:34:05 -05:00
Maurice Parker 1984af4664 Add download progress for Feedbin accounts 2019-05-14 13:10:07 -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 39a337d096 Stub out syncing article state 2019-05-13 17:04:12 -05:00
Maurice Parker eede1cc7eb Add initial feed download for Feedbin. 2019-05-13 11:18:54 -05:00
Maurice Parker ccac456d77 Change to use the entries.json service for Feedbin instead of the per feed one 2019-05-13 10:29:34 -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 c47fee2384 Delete unused parameters (dead code) 2019-05-13 07:17:50 -05:00
Maurice Parker 20388eff46 Change how completion handlers work for refreshArticles so that we can tell for sure when all the articles have been downloaded and updated in the database 2019-05-13 06:34:27 -05:00
Maurice Parker 2684b92a67 Added service calls for unread and starred entries 2019-05-13 03:13:06 -05:00
Maurice Parker 1b22abbbfc Make sure a refresh happens after an OPML import. 2019-05-12 19:31:29 -05:00
Maurice Parker f4510e57e5 store last article fetch time in account metadata 2019-05-12 19:17:16 -05:00
Maurice Parker 9c676f29f8 add articles download for Feedbin 2019-05-12 18:32:32 -05:00
Maurice Parker 4ed1b8a66a Move ConditionalGetKeys as they are account type specific 2019-05-12 08:47:27 -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 5200e49175 Capture 401 http status codes as already subscribed error when creating a Feedbin subscription 2019-05-10 10:40:02 -05:00
Maurice Parker fd8a973084 Add already subscribed error to LocalAccountDelegate and updated iOS to work with latest Account API 2019-05-10 10:22:28 -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 75fbd9e3eb Add folder delete undo support 2019-05-09 18:20:09 -05:00
Maurice Parker 23b43ecc07 Add undo for feeds 2019-05-09 16:09:21 -05:00
Maurice Parker d4bfab2da6 Fix delete folder bug 2019-05-09 13:35:40 -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 49116fd8e3 Add subscription id to Feed so that we can correctly rename Feedbin subscriptions 2019-05-08 18:13:54 -05:00
Maurice Parker 06626f10a7 Add feed rename 2019-05-08 17:55:53 -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 f12494cc31 Add some debug logging 2019-05-08 08:20:29 -05:00
Maurice Parker e52dc84f13 added create subscription service 2019-05-08 06:56:15 -05:00
Maurice Parker c5b0bfcd91 Save feed folder relationship identifier 2019-05-07 18:34:45 -05:00
Maurice Parker 52e5e43d10 Add download feed to folder relationships syncing 2019-05-07 17:41:32 -05:00
Maurice Parker ae61d36c7d Change FeedbinAccountDelegate to use BatchUpdate 2019-05-07 11:10:00 -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 29f9cf83b1 Add HTTP Caching for Feedbin (conditional get) 2019-05-05 08:44:57 -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 38202ece8d Made credentials verification errors more descriptive. 2019-05-04 09:18:14 -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 e0efcfa847 Update unread counts for activate/inactivate and delete account 2019-05-02 08:41:22 -05:00
Maurice Parker 137f061169 Prevent delete while refresh in progress 2019-05-02 06:50:35 -05:00
Maurice Parker 636468bbf0 Implement active account processing functionality 2019-05-02 06:01:30 -05:00
Maurice Parker 747079157b Implement account state UI 2019-05-02 05:41:44 -05:00
Maurice Parker f5523dd610 Add delete from disk 2019-05-01 19:22:07 -05:00
Maurice Parker 93630a7b72 Load accounts from disk 2019-05-01 13:13:53 -05:00
Maurice Parker f4180424e1 Add multiple local accounts 2019-05-01 12:37:13 -05:00
Maurice Parker 4edffa488d Rename classes to match naming convention 2019-05-01 11:05:55 -05:00
Maurice Parker fe8e825c0d Add account add UI 2019-05-01 10:28:13 -05:00
Maurice Parker 4bc7611721 Rename AccountManageer.localAccount to AccountManager.defaultAccount to make it different from other local accounts 2019-05-01 05:53:18 -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 f3c2d8c1f8 Updated to lastest RSWeb 2019-04-25 07:13:14 -05:00
Maurice Parker f4c0fca6a8 Implement background downloading of feeds 2019-04-24 07:30:35 -05:00
Maurice Parker 17caa31ee5 Added device specific local account names. 2019-04-17 13:01:26 -05:00
Maurice Parker b9f2a500a1 cleared the code signing identity 2019-04-15 17:14:47 -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 0e44c135ae Convert Account to Swift 5. 2019-03-31 16:12:17 -07: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 70bc4a7b45 Pay attention to the changed key when handling feed setting change notifications. 2019-03-17 13:54:30 -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 80bee5b487 Do minor formatting changes in Feed.swift. 2019-03-17 11:24:21 -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 e11fc1dfad Make feed.init and FeedMetadata internal. 2019-03-16 16:39:16 -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 d498c3f19d Create FeedMetadata. Not actually used just yet. (Soon.) 2019-03-12 22:40:11 -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 eb3c69f4d0 Don’t write "Untitled" to Subscriptions.opml when a feed lacks a name or editedName — “Untitled” is a localizable, display-only string, not something to store in OPML. Fix #527. 2019-02-06 21:18:22 -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 30324c8ec0 Make sure that feed.editedName is never "". Treat it as nil. 2019-02-02 17:46:15 -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 b900cbc0b7 Make Feed and Folder conform to Renewable. 2018-11-22 13:57:49 -08:00
Brent Simmons 485bde7ff2 Complete (probably) work on Feedbin sync data types. 2018-10-14 18:38:33 -07:00
Brent Simmons cd6e6daf31 Continue work on Feedbin sync data types. 2018-10-14 18:10:07 -07: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 f8d6cb48dc Remove instance where Feed equality was expected to be pointer equality, which is no longer true. 2018-09-16 12:46:50 -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 abd8fb2236 Store feed.name and feed.editedName in ODB. 2018-09-15 11:45:01 -07:00
Brent Simmons ce1fe6ed1f Store feed.editedName in ODB. 2018-09-15 11:39:33 -07:00
Brent Simmons 0f59b904ef Store feed.authors in ODB. Make Author Codable. 2018-09-15 11:16:05 -07:00
Brent Simmons 904feb9950 Store feed.homePageURL in ODB. 2018-09-14 22:23:30 -07:00
Brent Simmons fb9590de98 Make feedID and accountID the things that determine hashing and equality for a Feed. 2018-09-14 22:15:22 -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 28d084e246 Store iconURL and faviconURL in ODB. 2018-09-14 21:51:05 -07:00
Brent Simmons 6d2bb123e3 Save conditional GET info in ODB. 2018-09-14 19:33:47 -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 13fbad12a5 Store feed.contentHash in Settings.odb. 2018-09-13 22:52:34 -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
Maurice Parker 808715892f Changed project and framework projects to default to using tabs per the coding guidelines. Also corrected previously committed files with spaces used incorrectly. 2018-09-07 13:46:00 -05:00
Brent Simmons fdb159a61b Normalize homePageURL in its setter. Fix #397. 2018-09-02 12:14:04 -07:00
Brent Simmons 5d2a3e9142 Normalize homePageURL on init-ing Feed. 2018-09-02 12:08:35 -07:00
Brent Simmons 141ae5cc2f Continue rename to NetNewsWire. 2018-08-28 22:18:24 -07:00
Brent Simmons 9263ffcb79 Use synthesized init. 2018-08-25 17:07:55 -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 b16112ad56 Remove deleted frameworks from Account. 2018-07-28 17:30:12 -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 192439abe7 Make Folder watch for children-did-change notifications — when its own children change, update the unread count. Fix #322. 2018-02-12 22:22:06 -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
Olof Hellman e038fb0fb5 convert Evergreen frameworks projects to use .xcconfig files. 2018-02-02 03:24:13 -08:00
Daniel Jalkut 3507313f84 Accept Xcode 9.3 recommended build settings. 2018-01-29 11:20:30 -05: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 cf0d5cdc51 Remove unwanted debugging print statement. 2018-01-24 21:48:20 -08: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 2cf0dbd96e Extend Notification.Name, not NSNotification.Name. 2018-01-22 22:00:01 -08:00
Brent Simmons 02ad70097e Send a Notification when a Folder’s name changes. 2018-01-22 21:59:13 -08:00
Brent Simmons 6b059671f5 Make progress on reloading timeline when feed updates. 2018-01-17 17:28:09 -08:00
Olof Hellman 775dbf0852 basic readonly scripting support for account, feed, folder 2018-01-11 00:51:25 -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 0b4a9f143e Parse Feedbin articles. 2017-12-11 13:36:16 -08:00
Brent Simmons 8160d8e38e Create Feedbin, FeedbinAccountDelegate, and FeedbinGetSubscriptionsDelegate. 2017-12-10 14:05:01 -08:00
Brent Simmons 6e93cc2718 Create FeedbinSubscription struct. 2017-12-10 14:04:14 -08:00
Brent Simmons 89a74077d9 Create FeedbinSubscription struct. 2017-12-10 13:58:44 -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 e71d763443 Save feed.authors. 2017-12-02 14:20:58 -08:00
Brent Simmons f28d921aff Avoid skipping parsing Dr. Drang’s JSON Feed, which can’t be detected that it’s a JSON Feed with only partial data, since it has the version element at the end. Add a test for this. 2017-12-01 13:19:30 -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 66c02a6fe1 Fix build errors. 2017-11-04 19:29:43 -07:00
Brent Simmons ef303c0c38 Make progress on deleting and especially undoing delete. 2017-11-04 19:03:47 -07:00
Brent Simmons c08bbaa970 Use AnyHashable instead of AnyObject as representedObject for tree nodes. 2017-11-04 15:27:32 -07:00
Brent Simmons ef1d95341b Show feeds in Feed Directory sidebar. 2017-11-04 14:53:21 -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 8d5e568cde Make folder.account weak and optional. 2017-10-21 16:37:40 -07:00
Brent Simmons d512908b6f Use @discardableResult with addFeed. 2017-10-21 16:32:29 -07:00
Brent Simmons 7bf1847588 Send notification on adding a feed to a folder. Also: Update ToDo. 2017-10-21 16:27:06 -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 324f330a3b Use localizedStandardCompare when sorting Account names. It’s likely I got the order backwards, but I won’t know until we have accounts other than the local account. (I always get this backwards, even knowing that I always get it backwards.) 2017-10-18 18:21:36 -07:00
Brent Simmons f90bf3bea1 Rename childrenContainsFeed to childrenContain. Add assertionFailure — expecting pointer equality. 2017-10-18 18:13:49 -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
Brent Simmons 77042f67b5 Include updated feeds in StatusesDidChange notification, so that updating unread counts will work. 2017-10-08 22:25:33 -07:00
Brent Simmons 6572631866 Update the timeline cell when an article’s status changes. 2017-10-08 21:06:25 -07:00
Brent Simmons 8aa3746cb8 Add code for fetching articles for the timeline. Doesn’t actually work yet, though, for some reason. 2017-10-08 18:58:15 -07:00
Brent Simmons 4b662efe15 Comment-out some debugging code. 2017-10-08 01:56:18 -07:00
Brent Simmons 1b44591692 Save new and updated articles to the database. 2017-10-08 01:54:37 -07:00
Brent Simmons ca611623aa Simplify Container and its function implementations. 2017-10-07 21:41:21 -07:00
Brent Simmons 7f6f6f9061 Set the account to dirty upon updating some Feed properties. 2017-10-07 20:25:17 -07:00
Brent Simmons c52eb024ab Avoid resetting the save timer so often during a refresh session. Instead just remove it (if refreshing) and add it back when the refresh session ends. 2017-10-07 20:24:58 -07:00
Brent Simmons 0ba557736e Avoid saving account to disk during a refresh session. Reschedule the timer and do it later. 2017-10-07 20:11:17 -07:00
Brent Simmons d8e723db46 Fix typo — send correct notification on account finishing refresh. 2017-10-07 18:31:34 -07:00
Brent Simmons ade76d6405 Save to disk when needed. Coalesce writing, so it doesn’t happen over and over during a refresh session. 2017-10-07 18:15:42 -07:00
Brent Simmons bed43dd3d6 Call the completion block in Account.update, so the refresher can do its thing properly. Also: update ToDo. 2017-10-07 17:53:37 -07:00
Brent Simmons c6f683c34c Make Account, rather than its delegate, watch for refresh progress changes. This way the delegate doesn’t have to be inited with its Account. 2017-10-07 17:43:10 -07:00
Brent Simmons b77569f38b Create and use CombinedRefreshProgress, which reports refresh progress across all accounts. Used by the status view. 2017-10-07 17:20:19 -07:00
Brent Simmons 5d8aa94dc3 Keep track of refresh beginning and finishing. Validate the refreshAll command (menu, toolbar). 2017-10-07 14:40:14 -07:00
Brent Simmons ab82febb9a Move Account/Local folder to Account/LocalAccount, to make it easier to spot (since LocalAccount is its name). Also: wire up refreshing. Make organization changes to LocalAccountRefresher. 2017-10-07 12:40:14 -07:00
Brent Simmons 6a1c39d8a3 Remove Notifications.swift from Data.framework. Clean up UnreadCountProvider. 2017-10-07 11:56:22 -07:00
Brent Simmons 12ea6e6a9f Fix a second bug loading feeds. Feeds now appear in the sidebar. 2017-10-05 21:17:50 -07:00
Brent Simmons c80c6c30f8 Fix builder errors, mostly in RSParser. 2017-10-04 13:28:48 -07:00
Brent Simmons 83231ed373 Fix some build errors. 2017-10-02 13:15:07 -07:00
Brent Simmons cb4027a951 Fix some build errors. 2017-10-01 11:28:44 -07:00
Brent Simmons 04612049f5 Make progress on adding feeds. 2017-10-01 10:59:35 -07:00
Brent Simmons a910841c65 Add createFeed method. 2017-09-30 16:56:48 -07:00
Brent Simmons 1f677ca600 Edit some access permissions in Folder. 2017-09-30 11:00:18 -07:00
Brent Simmons 5ae70758fb Perform a minor refactoring in Folder.swift. 2017-09-28 13:34:16 -07:00
Brent Simmons 3a4e545e22 Fix build errors in Account.framework. 2017-09-28 13:16:47 -07:00
Brent Simmons 1ec3484a95 Init Folder with an Account rather than an accountID. 2017-09-28 06:53:01 -07:00
Brent Simmons 48543bcfd6 Make progress reading/writing Account feeds and folders to disk. 2017-09-27 13:29:05 -07:00
Brent Simmons 55967f8731 Fix some build errors. 2017-09-26 21:43:40 -07:00
Brent Simmons 2978d4420b Start work on adding feeds and folders. 2017-09-25 13:31:36 -07:00
Brent Simmons 21080a97fc Start work on feed importing. 2017-09-24 22:35:57 -07:00
Brent Simmons 4d677b2055 Fix a bunch of build errors. 2017-09-24 12:24:44 -07:00
Brent Simmons 1ab282c23a Do some cleanups on app code. 2017-09-23 12:17:14 -07:00
Brent Simmons 8767aa3178 Continue work on non-optional article.status. 2017-09-19 08:07:06 -07:00
Brent Simmons b28a849af6 Continue march toward non-optional article.status. 2017-09-18 22:00:35 -07:00
Brent Simmons 54ca352a70 Continue fixing build errors. 2017-09-17 17:56:04 -07:00
Brent Simmons 92a60d8f06 Continue fixing build errors. 2017-09-17 17:03:58 -07:00
Brent Simmons 0336e30b0d Continue to fix build errors. 2017-09-17 16:30:45 -07:00
Brent Simmons 6631a9c2f8 Continue fixing build errors. 2017-09-17 13:07:55 -07:00
Brent Simmons c0ce68e64b Fix some build errors. 2017-09-17 12:54:08 -07:00
Brent Simmons 1b391c262e Continue working on build errors. 2017-09-17 12:34:10 -07:00
Brent Simmons 1c63e868c9 Delete dead code. 2017-09-17 12:20:59 -07:00
Brent Simmons 121fbf3c27 Move AccountManager to Account.framework. 2017-09-17 12:20:32 -07:00
Brent Simmons e78fc0d696 Get Account.framework building. 2017-09-17 12:08:50 -07:00
Brent Simmons 4bb0325c45 Delete superseded code. 2017-09-17 11:32:58 -07:00
Brent Simmons ba8d2c81e8 Create AccountDelegate. The actual implementation for each different type of Account will conform to AccountDelegate. 2017-09-16 15:30:26 -07:00
Brent Simmons 5715d2f221 Move Folder and Container from Data to Account. 2017-09-16 15:25:38 -07:00
Brent Simmons 9ee20ee270 Get Data.framework building again. 2017-09-07 21:00:30 -07:00
Brent Simmons 75603eefdc Deal with fallout from moving Account to its own framework. 2017-09-07 20:51:51 -07:00
Brent Simmons 6a4fd38056 Continue mess-making. Start Account framework. 2017-09-07 20:41:25 -07:00