diff --git a/app/products/calls/components/__snapshots__/call_avatar.test.js.snap b/app/products/calls/components/__snapshots__/call_avatar.test.js.snap index d2e727d64..693e0eafa 100644 --- a/app/products/calls/components/__snapshots__/call_avatar.test.js.snap +++ b/app/products/calls/components/__snapshots__/call_avatar.test.js.snap @@ -3,194 +3,155 @@ exports[`CallAvatar should match snapshot muted 1`] = ` - + - - - - - + /> `; exports[`CallAvatar should match snapshot size large 1`] = ` - + - - - - - + /> `; exports[`CallAvatar should match snapshot unmuted 1`] = ` - + - - - - - + /> `; diff --git a/app/products/calls/components/call_avatar.tsx b/app/products/calls/components/call_avatar.tsx index 0f575ab7d..cd791e380 100644 --- a/app/products/calls/components/call_avatar.tsx +++ b/app/products/calls/components/call_avatar.tsx @@ -25,7 +25,7 @@ const getStyleSheet = (props: Props) => { return StyleSheet.create({ pictureHalo: { - backgroundColor: 'rgba(255,255,255,' + (0.16 * props.volume) + ')', + backgroundColor: 'rgba(61, 184, 135,' + (0.24 * props.volume) + ')', height: baseSize + 16, width: baseSize + 16, padding: 4, @@ -33,16 +33,23 @@ const getStyleSheet = (props: Props) => { borderRadius: (baseSize + 16) / 2, }, pictureHalo2: { - backgroundColor: 'rgba(255,255,255,' + (0.24 * props.volume) + ')', + backgroundColor: 'rgba(61, 184, 135,' + (0.32 * props.volume) + ')', height: baseSize + 8, width: baseSize + 8, - padding: 4, + padding: 3, borderRadius: (baseSize + 8) / 2, }, picture: { borderRadius: baseSize / 2, height: baseSize, width: baseSize, + marginBottom: 5, + }, + voiceShadow: { + shadowColor: 'rgb(61, 184, 135)', + shadowOffset: {width: 0, height: 0}, + shadowOpacity: 1, + shadowRadius: 10, }, mute: { position: 'absolute', @@ -59,6 +66,13 @@ const getStyleSheet = (props: Props) => { textAlign: 'center', textAlignVertical: 'center', overflow: 'hidden', + ...Platform.select( + { + ios: { + padding: 2, + }, + }, + ), }, raisedHand: { position: 'absolute', @@ -76,7 +90,8 @@ const getStyleSheet = (props: Props) => { ...Platform.select( { android: { - padding: 4, + paddingLeft: 4, + paddingTop: 2, color: 'rgb(255, 188, 66)', }, }, @@ -105,6 +120,7 @@ const CallAvatar = (props: Props) => { const style = getStyleSheet(props); const profileSize = props.size === 'm' || !props.size ? 40 : 72; const iconSize = props.size === 'm' || !props.size ? 12 : 16; + const styleShadow = props.volume > 0 ? style.voiceShadow : {}; // Only show one or the other. let topRightIcon: JSX.Element | null = null; @@ -124,34 +140,42 @@ const CallAvatar = (props: Props) => { ); } - return ( - - - - { - props.userId ? - : - - } - { - props.muted !== undefined && - - } - {topRightIcon} - - + const view = ( + + { + props.userId ? + : + + } + { + props.muted !== undefined && + + } + {topRightIcon} ); + + if (Platform.OS === 'android') { + return ( + + + {view} + + + ); + } + + return view; }; export default CallAvatar; diff --git a/app/products/calls/screens/call/__snapshots__/call_screen.test.js.snap b/app/products/calls/screens/call/__snapshots__/call_screen.test.js.snap index 7c4b51a35..4bc3e1d4b 100644 --- a/app/products/calls/screens/call/__snapshots__/call_screen.test.js.snap +++ b/app/products/calls/screens/call/__snapshots__/call_screen.test.js.snap @@ -149,6 +149,7 @@ exports[`CallScreen Landscape should match snapshot 1`] = ` } > User 2 + (you) @@ -870,6 +871,7 @@ exports[`CallScreen Portrait should match snapshot 1`] = ` } > User 2 + (you) @@ -1249,6 +1251,7 @@ exports[`CallScreen Portrait should match snapshot with screenshare 1`] = ` } > User 2 + (you) @@ -2005,6 +2008,7 @@ exports[`CallScreen should show controls in landscape view on click the users li } > User 2 + (you) diff --git a/app/products/calls/screens/call/call_screen.tsx b/app/products/calls/screens/call/call_screen.tsx index d33d00508..21606fefe 100644 --- a/app/products/calls/screens/call/call_screen.tsx +++ b/app/products/calls/screens/call/call_screen.tsx @@ -374,6 +374,7 @@ const CallScreen = (props: Props) => { /> {displayUsername(user.profile, props.teammateNameDisplay)} + {user.id === props.currentParticipant?.id && ' (you)'} );