RESStorage.getItemsAsync: a facade for "asynchronously" fetching data from storage
This is a non-async implementation to be used as a crutch while migrating RES modules to using asynchronous storage, and it should be swapped out at a later point.
i'm just gonna cheat and call it function getItemsAsync to avoid any clobbering
RESUtils.loggedInUserInfo refactored a little for async resstorage
first-run check now resstorage-async
RESannouncement check - resstorage async'd
also removed xdr cruft
keyboardNav.go - keyboardNavLastIndex async'd
I'm going to assume after a quick look-over that nothing will try to access the module's .keyboardlastIndexCache until after RESStorage finishes
keyboard dotconsole RESStorage get/update updated with resstorage async
modules['userTagger'].go's loads up tags with resstorage async
i'm a titch nervous about not loading data quick enough for the dashboard tab, but the timing seems to work out
make getItemsAsyc actually "async"
getItemsAsync result's .0 is the first item, for convenience
modules.userTagger.getTags/.putTags utility wrappers for fetching userTagger.tags
userTagger.handleVoteClick uses async storage via .getTags, refactored a little
because lordie indentation
userTagger.drawUserTagTable uses async storage
deleteing userTagger tag doesn't touch userTagger.tags
BECAUSE IT IS NO MORE
getAsyncItems "items" result._ is the item for result._key
whoops i should've commited five commits ago
keyboardNav.keyboardNavLastIndexCache fetched from async storage
betteReddit mail indicator checker now storage async
whoops wrong var name for a keyboardActive thing
commentTools.migrateData now storage async
commentTools.getUserCompletions uses async storage