Commit graph

162 commits

Author SHA1 Message Date
Mark Jerde
99bfb5441e Update hashes to reflect rough position after merging commits. 2020-01-10 23:20:16 -06:00
Mark Jerde
e15f937214 Update to MJCloudKitUserDefaultsSync 134a0d6f1a2c5012a3394ae187467c93eb58b339. 2018-10-30 23:05:04 -05:00
Mark Jerde
6a307b7200 Switch to MJCloudKitUserDefaults.framework. 2018-10-30 23:05:04 -05:00
Mark Jerde
64643088f5 Changes to go with update to MJCloudKitUserDefaultsSync d6b4a8431df171320bff7693a36a1bdec69b69e6 2018-10-30 23:05:04 -05:00
Mark Jerde
6df5dfc8be Update to MJCloudKitUserDefaultsSync d6b4a8431df171320bff7693a36a1bdec69b69e6 2018-10-30 23:05:03 -05:00
Mark Jerde
82350d9fda Detect iCloud sync errors due to not being signed in or not having iCloud Drive enabled and inform the user giving option to open Settings. If the user declines to open Settings do not ask again this until app is closed and opens again. 2018-10-30 23:05:03 -05:00
Mark Jerde
8f634d41a9 Update to MJCloudKitUserDefaultsSync 44ff38e31a9d1aa1640ae793b362114aae67d746 2018-10-30 23:05:03 -05:00
Mark Jerde
667e828dc7 Restore original default values now that iOS has settings for these. 2018-10-30 23:05:03 -05:00
Mark Jerde
06a3460eca Add iOS App Store link, change DRM-free link to location of sync-enabled version, remove sync from the to-do list, and log iOS update submission info. 2018-10-30 23:05:03 -05:00
Mark Jerde
61053c2dde Bump version numbers for improvements to sync. 2018-10-30 23:05:03 -05:00
Mark Jerde
6efb7851bf Update to MJCloudKitUserDefaultsSync 9fef682787a549137d9c13e19ea2e4feb253e193. 2018-10-30 23:05:03 -05:00
Mark Jerde
dc7b728eac Add Diagnostics to in-app settings. Move reading of acknowledgements file to constructor of the SettingsViewController to delay execution until possibly needed. 2018-10-30 23:05:03 -05:00
Mark Jerde
4ce5b1a2ad Update to MJCloudKitUserDefaultsSync f5787013f14f47055e3ae77eae821a8bbe5428a2. 2018-10-30 23:05:03 -05:00
Mark Jerde
d43c0b98b8 Bump iOS version number for change to ensure correct preference setting. 2018-10-30 23:05:03 -05:00
Mark Jerde
0d57a6c6ce Ensure that the setting to save clippings is correct when iCloud Sync is enabled. 2018-10-30 23:05:03 -05:00
Mark Jerde
e113959003 Add demo content for App Store screenshot use. 2018-10-30 23:05:03 -05:00
Mark Jerde
484a2f68b8 Bump iOS version number for entitlements tweak. 2018-10-30 23:05:03 -05:00
Mark Jerde
cf89ed3c2f Setup separate entitlements files for macOS and iOS. 2018-10-30 23:05:03 -05:00
Mark Jerde
705284ef9d Bump version numbers.
Summary of changes since last bump:
  Moved acknowledgements into a file that can be shared by all targets.
  Added settings to Flycut iOS.
2018-10-30 23:05:03 -05:00
Mark Jerde
c10e1ec185 Expand URL support and move iOS version target from 10.2 to 8.0 because everything we depend upon was available in iOS 8.0. 2018-10-30 23:05:03 -05:00
Mark Jerde
adad531327 Use a DispatchSemaphore for blocking rather than a DispatchQueue. 2018-10-30 23:05:03 -05:00
Mark Jerde
99d471f46a Extend Settings access to Flycut iOS
Use InAppSettingsKit to display Settings within the app in addition to within
Settings.app.  This allows changes that initiate a user prompt to prompt the
user immediately when the change is made, rather than upon app launch as is the
case with using Settings.app, providing better user experience.

Move acknowledgements from preferences panel into a text file that is sourced into the preferences panel on macOS and the settings bundle (in-app only) on iOS.
2018-10-30 23:05:03 -05:00
Mark Jerde
6f72517444 Modify InAppSettingsKit to recognize a Key key on Group elements allowing the footer text to be pulled from UserDefaults as an alternative to the FooterText key. 2018-10-30 23:05:03 -05:00
Mark Jerde
189bd3ce82 Modify InAppSettingsKit to only post TextField changes to _settingsStore (NSUSerDefaults) when the edit is complete rather than after every addition or deletion of individual characters. This avoids excessive noise for observers. 2018-10-30 23:05:03 -05:00
Mark Jerde
d1502bc3bf Import InAppSettingsKit 0ea1b98eb8ea3293845b86dfa0358ccd4d11e65f to provide the settings panel within the app. This makes the settings easier to find for users who are not familiar with the iOS Settings.app approach and allows Flycut to provide user feedback in cases like shrinking the stack immediately when the setting is changed rather than a delayed cause-effect which would appear clunky. 2018-10-30 23:05:03 -05:00
Mark Jerde
1eedd23e35 Update to MJCloudKitUserDefaultsSync 631f00fad92c72d600bd94caccf3818cc4ad6f7c. 2018-10-30 23:05:03 -05:00
Mark Jerde
d65a709aae Move observers for events that should involve the Model from the AppDelegate to the ViewController, eliminating a messy linkage from AppDelegate to ViewController. 2018-10-30 23:05:03 -05:00
Mark Jerde
2a9197dccf Bump version numbers. 2018-10-30 23:05:03 -05:00
Mark Jerde
1eef30cbd1 Move saveForgotten settings from FlycutOperator to AppController since they are reasonable to have different preference on different platform. Ensure that they are disabled on iOS for now, since they would be inaccessible files. 2018-10-30 23:05:03 -05:00
Mark Jerde
94757b6290 Add support for additional pasteboard item type that is sufficiently compatible with what Flycut supports. 2018-10-30 23:05:03 -05:00
Mark Jerde
4d11c5e934 Add mechanism to prompt user only if necessary, after receiving first sync pull, to merge or overwrite existing lists or disable sync. Include support for merge at initial pull, seubsequent pulls, and conflict resolution. Ask user if they would like to enable iCloud Sync on first iOS launch since preferences are not yet implemented on that platform. 2018-10-30 23:05:03 -05:00
Mark Jerde
442a5252a3 Add non-persisted journaling to FlycutStore to inform merge processes and sync processes. 2018-10-30 23:05:03 -05:00
Mark Jerde
b2ca345074 Change saveForgottenClippings from acting only when a clipping is added, and sometimes saving when a duplicate is ignored and thus nothing forgotten, to saving when informed by the store that something is being forgotten. Includes safeguards to not save a forgoten clipping if the user initiated the forgetting via delete or save-and-delete, or when a clipping is moved to the favorites store. 2018-10-30 23:05:03 -05:00
Mark Jerde
f2fad2a8da Add mechanism to prevent saving the engine if there have been no changes since it was last saved. This becomes important with iCloud Sync to prevent pushing an update whenever the app is closed, unloaded, or other activities that invoke saveEngine. 2018-10-30 23:05:03 -05:00
Mark Jerde
5a81af5942 Move pollPBTimer to a run loop and mode that allows it to keep firing while the menu is open. 2018-10-30 23:05:03 -05:00
Mark Jerde
c125b4de17 Connect AppController as delegate for FlycutStore to complete a proper MVC pattern to dynamically update the menu and bezel if displayed. Previously, changes from pollPB: would be received but not reflected in the displayed bezel until the user navigated, producing a confusing experience. Now pollPB: and iCloud Sync changes are reflected in what is seen real time. 2018-10-30 23:05:03 -05:00
Mark Jerde
13ceb8d7d0 Add support for iCloud Sync. 2018-10-30 23:05:03 -05:00
Mark Jerde
7958af9110 Switch to my code signing and get CloudKit working on both iOS and macOS at the same time. 2018-10-22 22:47:25 -05:00
Mark Jerde
603ac66511 Add MJCloudKitUserDefaultsSync to the project. 2018-10-22 22:47:25 -05:00
Mark Jerde
8b9cdcce52 Import MJCloudKitUserDefaultsSync 9dca4718726025350c480f1fb56dc928fdd29a71 to provide synchronization of Flycut data via iCloud. This would be a great opportunity to use Git submodules, but is currently imported to match with the existing style of the code base (ShortcutRecorder, SGHotKeysLib, and UKPrefsPanel). 2018-10-22 22:47:25 -05:00
Mark Jerde
28bfca83f4 Decrease redundant object instantiations by using dequeueReusableCell and creating the MGSwipeButton instances only once. 2018-10-22 22:47:25 -05:00
Mark Jerde
5fdf4dd742 Move displayNum and displayLen back to AppController since they are UI-specific. 2018-10-22 22:47:25 -05:00
Mark Jerde
4eb0921677 Add documentation for cross-referencing App Store relases with code revisions. 2018-10-22 22:47:25 -05:00
Mark Jerde
3e4ea04567 Set temp values needed for the iOS version. 2018-10-22 22:47:25 -05:00
Mark Jerde
08c5eb29d4 Update documentation for iOS app. 2018-10-22 22:47:25 -05:00
Mark Jerde
aa83f93754 Convert to use MGSwipeTableCell to provide better swipe capabilities. 2018-10-22 22:47:25 -05:00
Mark Jerde
4fd18601e4 Add MGSwipeTableCell to the project. 2018-10-22 22:47:25 -05:00
Mark Jerde
d96df4d8f2 Import MGSwipeTableCell 7dbd771c897d3c439d0d7a3f0140fcc881e2a5a0 to provide higher-quality swipe handling than the APIs provide. This would be a great opportunity to use Git submodules, but is currently imported to match with the existing style of the code base (ShortcutRecorder, SGHotKeysLib, and UKPrefsPanel). 2018-10-22 22:47:24 -05:00
Mark Jerde
3210b31350 Initial minimum-functional Flycut iOS app. Due to iOS security mechanisms preventing persistent pasteboard visibility, this app will only add clippings when active and checks for a new clipping when activated. Hence the usage mode is to copy something, then open Flycut and it will add the current clipping to the store. App displays a list of the clippings, most recent on top, and places them on the pasteboard when tapped. Future plans include a more refined visual style, action extensions, access to settings, and iCloud sync. 2018-10-22 22:47:24 -05:00
Mark Jerde
f383482e4a Divide AppController into two files, one for UI and one for management of clipping stores. 2018-10-22 22:47:24 -05:00