Skip to content

Commit b0733e3

Browse files
Fix: Avatar is not visible when the profile is disabled but the Avatar is set to public (#568)
* Add Avatar component that takes Email and load the avatar directly from it * Use the new Avatar component in the ProfileCard * Generate new screenshots
1 parent 873de57 commit b0733e3

17 files changed

+95
-12
lines changed

gravatar-quickeditor/src/main/java/com/gravatar/quickeditor/ui/avatarpicker/AvatarPicker.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ internal fun AvatarPicker(uiState: AvatarPickerUiState, onEvent: (AvatarPickerEv
214214
}
215215
ProfileCard(
216216
profile = uiState.profile,
217+
email = uiState.email,
217218
avatarCacheBuster = uiState.avatarCacheBuster.toString(),
218219
modifier = Modifier.padding(horizontal = 16.dp),
219220
)

gravatar-quickeditor/src/main/java/com/gravatar/quickeditor/ui/components/ProfileCard.kt

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,21 @@ import androidx.compose.ui.platform.LocalDensity
2121
import androidx.compose.ui.tooling.preview.Preview
2222
import androidx.compose.ui.unit.dp
2323
import com.gravatar.AvatarQueryOptions
24+
import com.gravatar.DefaultAvatarOption
2425
import com.gravatar.ImageRating
25-
import com.gravatar.extensions.avatarUrl
2626
import com.gravatar.extensions.defaultProfile
2727
import com.gravatar.restapi.models.Profile
28+
import com.gravatar.types.Email
2829
import com.gravatar.ui.GravatarTheme
2930
import com.gravatar.ui.components.ComponentState
3031
import com.gravatar.ui.components.ProfileSummary
3132
import com.gravatar.ui.components.atomic.Avatar
3233
import com.gravatar.ui.components.atomic.ViewProfileButton
33-
import com.gravatar.ui.components.transform
3434

3535
@Composable
3636
internal fun ProfileCard(
3737
profile: ComponentState<Profile>?,
38+
email: Email,
3839
modifier: Modifier = Modifier,
3940
avatarCacheBuster: String? = null,
4041
) {
@@ -49,16 +50,15 @@ internal fun ProfileCard(
4950
avatar = {
5051
val sizePx = with(LocalDensity.current) { 72.dp.roundToPx() }
5152
Avatar(
52-
state = profile.transform {
53-
avatarUrl(
54-
AvatarQueryOptions {
55-
preferredSize = sizePx
56-
rating = ImageRating.X
57-
},
58-
).url(avatarCacheBuster).toString()
53+
email = email,
54+
avatarQueryOptions = AvatarQueryOptions {
55+
preferredSize = sizePx
56+
rating = ImageRating.X
57+
defaultAvatarOption = DefaultAvatarOption.Status404
5958
},
6059
size = 72.dp,
6160
modifier = Modifier.clip(CircleShape),
61+
cacheBuster = avatarCacheBuster,
6262
)
6363
},
6464
viewProfile = { state ->
@@ -106,6 +106,7 @@ private fun ProfileCardPreview() {
106106
profile = ComponentState.Loaded(
107107
defaultProfile(hash = "dfadf", "John Travolta"),
108108
),
109+
email = Email("[email protected]"),
109110
modifier = Modifier.padding(20.dp),
110111
)
111112
}

gravatar-quickeditor/src/main/java/com/gravatar/quickeditor/ui/oauth/OAuthPage.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,9 @@ internal fun OauthPage(
172172
uiState.profile?.let {
173173
ProfileCard(
174174
profile = it,
175+
email = email,
175176
modifier = Modifier.padding(top = 16.dp),
177+
avatarCacheBuster = uiState.avatarCacheBuster,
176178
)
177179
}
178180
val sectionModifier = Modifier.padding(top = 24.dp, bottom = 10.dp)

0 commit comments

Comments
 (0)