Repository navigation
Review fixes, new settings and drawer wordmark [minor] - #26
Merged
Merged
Conversation
Pin every action in ci.yml to a SHA and stop the release build from reading the shared Gradle cache. Run the tests and lint before a release is built, name dry run APKs apart and keep Dependabot action bumps from releasing. Refuse plain http addresses at sign in with their own message and tell a refused cleartext call apart from an unreachable server. Cancel HTTP calls with their coroutine and cap each call, so a sign out over a dead VPN ends on time. Keep the edit token with the sign in it belongs to, treat 403 as bad credentials everywhere and a login answer without an Auth line as no API. Favicons only get the key over the API's own scheme, icons must be http or https, images go out with a plain User-Agent, backups and device transfers leave the data behind, the API key is not kept in saved state and the sign out guard no longer survives a process restart.
A refresh while a mark all is still queued wrote the covered items back as unread, so the list showed rows under a header that said 0. Items a pending mark all covers now stay read, by the same rule the queue used when it marked them, unless a later item mark is pending. A corrupt credentials or settings file is replaced with an empty one instead of crashing every start, and the deliberate blocking read at startup is explained where it happens.
Opening a feed could show rows that were already dimmed: the server still listed them as unread because their read marks had not been sent yet, and the new list took every id it fetched. A new list now leaves out the items that are read here, while the fetched ids still decide what is kept and what is marked read. A refresh also waits until the marks made just before it are in the database.
Error messages, item ages and the new screen reader texts come from string resources; the view models hand out a resource and the screens word it. Ages are a value instead of an English token, and screen readers hear them in full. Rows say whether they are read, the hidden new items pill is gone from the accessibility tree, login errors are announced, headers are headings and the wordmark reads as Wick. The repeated grey and scrim colours live in WickColors.
Drop the feed site address, which nothing read, with a Room migration to version 2 that keeps the queue of read marks, and test that migration from the exported version 1 schema. Remove the item reader only tests used, the unused queue delete, the unused colour and DTO fields, and an unused import. Make the mark all arm's inner steps private and the work names internal, and let a link fall back to a plain view only from a Custom Tab. Share one list of known API paths, one store format and migrate helper, one way to find a view's feeds, and one log tag, tap target, note and button style, chunk size and HTML input cap. Move the account wipe and switch out of the settings UI, rename the drawer filter, use the v2 Compose test rule, keep the bar colours to the versions that read them and say why the test JVM flag is there.
The feature list reads as plain sentences, the requirements name https and the known API paths without tying them to one server, and the privacy part says that the API key travels in favicon addresses and so lands in the server's access logs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes from a full review of the repo, plus a list bug and two UI changes from device testing.
Security and CI
ci.ymlactions are pinned to commit SHAs, with the version in a comment on the same line.release.ymlno longer uses the Gradle cache (cache-disabled: true), so the signed build never consumes a cache another workflow wrote.testDebugUnitTestandlintDebugbefore signing, in a step without the signing secrets.dry-run-wick-<tag>.[skip release]prefix.http://addresses with its own message. A cleartext refusal (UnknownServiceException) is reported as such instead of "Is your VPN on?".FaviconAuthalso checks the scheme before adding the key.dataExtractionRulesexclude the datastore and the database from cloud backup and device transfer.State bugs
Authit was fetched for, and is dropped when the account changes.callTimeout. A sign out on a dead VPN no longer waits for the socket timeouts.signingOutlives inAppContainer. It lasts through a rotation, but process death no longer restores a blank screen.upsertKeepingLocaltreats items covered by a pending mark-all like items with a pending mark, so a failed mark-all no longer brings rows back as unread under a 0 count.ReplaceFileCorruptionHandler.markMissingReadstill use the full server id set. The refresh waits for applied marks first.Auth=counts as no Google Reader API, and 403 is mapped the same way everywhere.Consistency and accessibility
AccountSwitchandwipeAccountmove out of the settings UI package.Dead code
htmlUrlis removed from the entity, the DTOs and the model. Room goes to schema 2 with anAutoMigrationand@DeleteColumn, so the pending marks queue survives.2.jsonis exported and a migration test covers it.WickColors.Core,CategoryDto.id,OriginDto.htmlUrl, an unused import, and the duplicate fallback inopenLink.UI
README
Not in this PR
Tests
235 unit tests, lint and
assembleReleasepass. Only the drawer and settings snapshots changed.