Fix blank review avatars on app detail page#8097
Open
mdmohsin7 wants to merge 6 commits into
Open
Conversation
There was a problem hiding this comment.
2 issues found across 4 files
Reply with feedback, questions, or to request a fix.
Fix all with cubic | Re-trigger cubic
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.
Problem
Reviewer avatars on the app detail page (Apps → app → Reviews) render as blank grey circles.
Avatars are not stored anywhere — neither the
AppReviewmodel nor the backend includes a photo field. They were generated at render time from a third-party hobby service,avatar.iran.liara.run. That service is currently unreachable: every request hangs (HTTP 000, the TCP handshake never completes). Because a hung connection never raises an error, the widget's initial-lettererrorBuilderfallback never fired, leaving the grey placeholder circle on screen indefinitely.Fix
Drop the external dependency entirely. New
ReviewAvatarwidget renders a fully local initials avatar — a deterministic background color derived from the reviewer's uid/username plus their first initial. No network call, works offline, can't regress on a third-party outage.Wired into both call sites:
reviews_list_page.dart)app_detail.dart)The now-unused
_getAvatarUrlhelpers were removed from both files.Verification
No simulator/device available in the build env, so verified programmatically:
flutter analyzeclean on all touched files.test/widgets/review_avatar_test.dart), 5/5 pass — asserts the correct initial renders, falls back toAon an empty name, emits zeroImagewidgets (never touches the network), and produces a stable color per seed.