Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: call notification popup (callbox) #868

Merged
merged 6 commits into from
Dec 3, 2024
Merged

feat: call notification popup (callbox) #868

merged 6 commits into from
Dec 3, 2024

Conversation

ShGKme
Copy link
Contributor

@ShGKme ShGKme commented Nov 4, 2024

☑️ Resolves

🖼️ Screenshots

Settings

image

Callbox

Animation

callbox

Position on the screen

  • Top center, half height on top
  • Doesn't grab focus when open
  • Always on top, toolbar on Window, panel on macOS

image

Long name

image

Actions

  • If not disabled by settings - shows a callbox instead of a native notification
  • Decline or Quit X - closes the callbox
  • Join call - opens a chat with media settings (direct-call)
    image
  • Auto close:
    • After 45 s
    • If a user has already joined the call (checked every 2 seconds)
    • Shows a notification, which opens a notification on click
      image
Design 3:

image

Design 2

call-2

Design 1

Call notification popup is designed to have phone-call-like look.

Dark Light Draft
image image image

With animation

call

🚧 Tasks

  • Add callbox window
  • Open window on call notification
  • Join call with direct call
  • Add "Missed call" notification

@ShGKme ShGKme added enhancement New feature or request 2. developing labels Nov 4, 2024
@ShGKme ShGKme self-assigned this Nov 4, 2024
@ShGKme

This comment was marked as outdated.

Copy link
Member

@jancborchardt jancborchardt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice! Just some small feedback:

  • Considering the vertical whitespace between caller and buttons it possibly looks better to just make the modal square (I do appreciate your use of the golden spiral though ;)
  • In Nextcloud and also on other calling systems like on iOS, Discord, etc the "Join call" button is usually on the right while "Decline" is on the left

@ShGKme
Copy link
Contributor Author

ShGKme commented Nov 5, 2024

  • In Nextcloud and also on other calling systems like on iOS, Discord, etc the "Join call" button is usually on the right while "Decline" is on the left

On all the systems or only on Apple?

@ShGKme ShGKme changed the title feat: Call notification popup feat: call notification popup (callbox) Nov 30, 2024
src/main.js Outdated Show resolved Hide resolved
@ShGKme ShGKme force-pushed the feat/call-popup branch 2 times, most recently from 79ae4dd to 60035f9 Compare December 2, 2024 14:59
@ShGKme ShGKme marked this pull request as ready for review December 2, 2024 16:10
* @param token - Conversation token
*/
async function getCallParticipants(token: string) {
const response = await axios.get<CallGetParticipantsForCallResponse>(generateOcsUrl('apps/spreed/api/v4/call/{token}', { token }))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

might be cheaper to fetch a single conversation and check:

  • .hasCall if call is ongoing
  • .participantFlags if current user is connected to the call

But agree with doing it in a follow-up

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nickvergessen is it actually cheaper?

Copy link
Member

@nickvergessen nickvergessen Dec 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let use this here /call for now as it's what the clients also use. We could also do a specific cheapest endpoint in the future

This comment was marked as outdated.

Copy link
Member

@nickvergessen nickvergessen Dec 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PS: releasing with CallGetParticipantsForCallResponse endpoint call is totally fine
we will have the first performance already available in the next release :)

src/talk/renderer/notifications/notifications.store.js Outdated Show resolved Hide resolved
Copy link
Contributor

@Antreesy Antreesy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nothing blocking from me, tested in a group call

src/callbox/renderer/CallboxApp.vue Outdated Show resolved Hide resolved
src/callbox/renderer/CallboxApp.vue Outdated Show resolved Hide resolved
@ShGKme ShGKme dismissed jancborchardt’s stale review December 3, 2024 08:56

A new design is applied according to the discussion in chats

@ShGKme
Copy link
Contributor Author

ShGKme commented Dec 3, 2024

Signed-off-by: Grigorii K. Shartsev <[email protected]>
Signed-off-by: Grigorii K. Shartsev <[email protected]>
@ShGKme
Copy link
Contributor Author

ShGKme commented Dec 3, 2024

The last one fix force pushed:

Zoom was applied twice:

  • Once to get scaled size
  • Then again to set it as the window size

image

@ShGKme ShGKme merged commit ccfac04 into main Dec 3, 2024
10 checks passed
@ShGKme ShGKme deleted the feat/call-popup branch December 3, 2024 11:16
This was referenced Dec 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3. to review enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Notifications: add popup window for a call notification with join/decline buttons
4 participants