[UPDATED] A nil type is never OK. Crash early if it is so.
[UPDATED] Set crashlytics identifiers using its userIdentifier and userName property for good metadata.
[FIXED] Make sure the MOC has a PSC with stores when returning it.
[FIXED] Don't reset the store for just any open error! Only if it's actually incompatible.
[IMPROVED] Remove timestamps from Crashlytics and TestFlight logs, they already provide them.
[FIXED] Avoid crashes in some odd cases where there's no type set.
[FIXED] Import fixes:
- Wait for MOC to become available.
- Progress UI while working.
- Import files exported with a different master password.
- Core Data crashes.
[RENAMED] Site's User name -> Login name.
[FIXED] Core Data crashes related to using entities from old MOCs.
[FIXED] Importing stored content when not logged in with the same key.
[FIXED] Holding entities is a bad idea when MOCs can change. Holding ObjectIDs instead now.
[REMOVED] Disable TestFlight for release, it doesn't work anyway.
[FIXED] Properly handle unlock screen when there is no MOC yet.
[FIXED] Some log statements format strings & arguments.
[IMPROVED] Don't block when MOC is not yet ready, just return nil.
[IMPROVED] Outdated tip links to info, icon links to site search.
[IMPROVED] Minor improvements to error handling during import.
[FIXED] Don't recalculate key for each entry in import list.
[FIXED] Use correct fetch request to find user entity for import.
[FIXED] Properly schedule all use of MOC with performBlock*
[ADDED] Use undoManager to revert failed import changes.
[ADDED] Word wall: Show some random dictionary words while user
thinks of a new master password to give him some
inspiration.
[IMPROVED] Only select user after he choose to reset.
[IMPROVED] Ugly backdrops in the guide images cleaned up.
[FIXED] Export of sites should now include a password version field.
[FIXED] Filename to save exported passwords into should use day of
the month instead of day of the year.
[FIXED] No search predicate was set when search scope button wasn't
set. As a result, sites from other users showed up.
[IMPROVED] A master password key is now better abstracted in an object.
[IMPROVED] A master password algorithm is now better astracted in an
object.
[ADDED] Elements now have a specific algorithm version.
[ADDED] Automatic/explicit migration of elements.
[ADDED] Searching outdated elements.
[ADDED] Allow saving a user name per site. This is an optional
addition, toggled by tapping the new settings icon.
Obviously user names can't be recovered after loss.
[ADDED] Versioning and explicit migration to MPElementEntity.
[ADDED] Upgrade button in case the element needs explicit migration.
[ADDED] Messages in Crashlytics and TestFlight logs upon
initialization so we can easily see it worked and what the
client's versioning looks like.
[IMPROVED] Only show firstRun UI tooltips once.
[IMPROVED] Automatically select the latest user upon load of unlock.
[IMPROVED] Automatically select the user when his password is reset.
[IMPROVED] Hide active element when logging a user out.
[ADDED] "version" to MPElementEntity.
[ADDED] Tool tip, a tip that points at the content tool.
[ADDED] Upgrade tool, a tool used for upgrading outdated elements.
[ADDED] Page controller in guide to see where in the guide you are.
[ADDED] FontReplacer to be able to "use" Exo from IB (by
substituting "Futura").
[FIXED] A crash when loading the main VC because of the reset
password gesture recogniser.
[IMPROVED] Font in tables to standard system fonts.
[IMPROVED] Guide content positioning and sizing making space for pager.
[IMPROVED] Use action sheets instead of alerts when showing destructive
action choices.
[IMPROVED] Make tappable regions at least 44x44pt.
[IMPROVED] Title/message for alert/sheets.
[FIXED] Importing of mpsites with passwords showing for
stored password types.
[FIXED] Don't try to show mail composition dialog when the user has
no mail account configured. This will crash. Instead,
show a friendly popup explaining things.
[IMPROVED] Message of password export emails.
[FIXED] Hierarchy of MPUnlockVC so password field becomes touchable.