timrozum Github contribution chart
timrozum Github Stats
timrozum Most Used Languages

Activity

14 Sep 2022

Timrozum

Make layout changes since the SDK view no longer handles layout---probably not working yet

Pushed On 14 Sep 2022 at 03:16:03

Timrozum

add navigation view stack style to render HomeView correctly on iPadOS

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

VIDEO-XXXX update to 5.2.0 (#216)

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Increment version number [skip ci]

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Merge branch 'master' into task/nav-view-style-for-ipad-compatibility

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Merge pull request #215 from twilio/task/nav-view-style-for-ipad-compatibility

Use StackNavigationViewStyle to render HomeView correctly on iPadOS

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Test placeholder view

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Make pip work with room view

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Merge branch 'master' into spike/uikit-pip

Conflicts:

VideoApp/VideoApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Pushed On 13 Sep 2022 at 04:20:48

Timrozum

Task/video 11148/android sync sdk integration raise hand feature

Pull Request Details

JIRA link(s):

Description

  • Implemented SyncSDk along with UserDocument, RaiseHandMap, ViewersMap and SpeakersMap
  • Implemented Raise-hand feature for the Viewer
  • Implemented API call raise-hand to notify the user has raised the hand.
  • Implemented API call send-speaker-invite but it's not being used yet.

Demo

https://user-images.githubusercontent.com/929504/189435755-80203439-0bd6-4aa6-b837-e958bdedada2.mov

Forked On 12 Sep 2022 at 05:20:10

Timrozum

So this is just a standard debug build which is what most customers will use to try out the app initially right? If that is the case I'm not sure we should be logging so much. What is the value of logging everything by default when things should be working normally? The video SDK generates a LOT of logging when turned up like this and can make logs very difficult to read. What do you think about using default log levels?
On 12 Sep 2022 at 05:20:10

Timrozum

Task/video 11148/android sync sdk integration raise hand feature

Pull Request Details

JIRA link(s):

Description

  • Implemented SyncSDk along with UserDocument, RaiseHandMap, ViewersMap and SpeakersMap
  • Implemented Raise-hand feature for the Viewer
  • Implemented API call raise-hand to notify the user has raised the hand.
  • Implemented API call send-speaker-invite but it's not being used yet.

Demo

https://user-images.githubusercontent.com/929504/189435755-80203439-0bd6-4aa6-b837-e958bdedada2.mov

Forked On 12 Sep 2022 at 11:26:41

Timrozum

The name of this is less of an issue than the document class, but I think the same logic applies. The name currently implies that this class is to be used with any sync object that is a map, which isn't really true. This class is really only to be used for sync maps that have this specific structure where the identifier is the user identity. We could add other maps in the future that are used completely differently. This is minor stuff, but I think useful to have a less generic name.
On 12 Sep 2022 at 11:26:41

Timrozum

Task/video 11148/android sync sdk integration raise hand feature

Pull Request Details

JIRA link(s):

Description

  • Implemented SyncSDk along with UserDocument, RaiseHandMap, ViewersMap and SpeakersMap
  • Implemented Raise-hand feature for the Viewer
  • Implemented API call raise-hand to notify the user has raised the hand.
  • Implemented API call send-speaker-invite but it's not being used yet.

Demo

https://user-images.githubusercontent.com/929504/189435755-80203439-0bd6-4aa6-b837-e958bdedada2.mov

Forked On 12 Sep 2022 at 11:20:48

Timrozum

This code makes this object specific to the `user` sync document. And so I think it would be good to have `user` somewhere in the name of the class. Otherwise the name of this class implies it is for any kind of sync document.
On 12 Sep 2022 at 11:20:48

Timrozum

Task/video 11148/android sync sdk integration raise hand feature

Pull Request Details

JIRA link(s):

Description

  • Implemented SyncSDk along with UserDocument, RaiseHandMap, ViewersMap and SpeakersMap
  • Implemented Raise-hand feature for the Viewer
  • Implemented API call raise-hand to notify the user has raised the hand.
  • Implemented API call send-speaker-invite but it's not being used yet.

Demo

https://user-images.githubusercontent.com/929504/189435755-80203439-0bd6-4aa6-b837-e958bdedada2.mov

Merged On 12 Sep 2022 at 11:51:59

Timrozum

Approved but had a coupling naming suggestions.

Commented On 12 Sep 2022 at 11:51:59

Timrozum

Task/video 11148/android sync sdk integration raise hand feature

Pull Request Details

JIRA link(s):

Description

  • Implemented SyncSDk along with UserDocument, RaiseHandMap, ViewersMap and SpeakersMap
  • Implemented Raise-hand feature for the Viewer
  • Implemented API call raise-hand to notify the user has raised the hand.
  • Implemented API call send-speaker-invite but it's not being used yet.

Demo

https://user-images.githubusercontent.com/929504/189435755-80203439-0bd6-4aa6-b837-e958bdedada2.mov

Merged On 12 Sep 2022 at 11:51:58

Timrozum

Approved but had a coupling naming suggestions.

Commented On 12 Sep 2022 at 11:51:58
Issue Comment

Timrozum

Implementation of screen broadcasting.

The Problem

Could you implement screen broadcasting in the app with replayKit? (In-app broadcasting and Out-app broadcasting)

Forked On 08 Sep 2022 at 04:20:43

Timrozum

@manishmg you should be able to use this quickstart to create the broadcast: https://github.com/twilio/video-quickstart-ios/tree/master/ReplayKitExample

And this quickstart to view the broadcast: https://github.com/twilio/video-quickstart-ios/tree/master/VideoQuickStart

Make sure to use this room name when joining the room to view the broadcast: https://github.com/twilio/video-quickstart-ios/blob/c1544311ca82ba6af0e145d2f7fc11898696559d/ReplayKitExample/BroadcastExtension/SampleHandler.swift#L80

If Apple adds iOS support to ScreenCaptureKit in the future, at that time we would probably add features to the SDK for system screen capture. Unfortunately the new Apple API is only available for macOS.

Commented On 08 Sep 2022 at 04:20:43

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Merged On 29 Aug 2022 at 03:03:43

Timrozum

Commented On 29 Aug 2022 at 03:03:43

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Forked On 26 Aug 2022 at 08:47:35

Timrozum

Ok, I will leave it up to you if you want to refactor now or later when you implement the speaker layout.
On 26 Aug 2022 at 08:47:35

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Merged On 26 Aug 2022 at 08:47:36

Timrozum

Commented On 26 Aug 2022 at 08:47:36

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Forked On 26 Aug 2022 at 08:45:47

Timrozum

How does this error handling cover other errors like `TVIErrorParticipantDuplicateIdentityError = 53205`? Errors that do not require specific handling should still be handled in a generic way. Can you explain the path for this case? For example this is how iOS handles other errors: https://github.com/twilio/twilio-live-interactive-video/blob/fea431032bffde35f5fb93b6ff8afb2caf95c3de/apps/ios/LiveVideo/LiveVideo/Twilio/Room/RoomManager.swift#L91
On 26 Aug 2022 at 08:45:47

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Merged On 26 Aug 2022 at 08:45:47

Timrozum

Commented On 26 Aug 2022 at 08:45:47

Timrozum

Use StackNavigationViewStyle to render HomeView correctly on iPadOS

Added navigationViewStyle modifier on HomeView's NavigationView to prevent it from being hidden away in portrait mode on iPadOS.

Merged On 26 Aug 2022 at 08:39:25

Timrozum

Nice! We don't officially support iPad but this looks simple enough.

Commented On 26 Aug 2022 at 08:39:25

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Forked On 26 Aug 2022 at 08:24:22

Timrozum

Is there a good way to move this from the grid code to the participant view code? For these reasons: 1. The grid code would be more single responsibility. It would be responsible for adding, removing, or moving grid items but not the internal behavior of a grid item. 2. When the speaker layout is implemented this popup will need to be handled there also. If the popup code remains in the grid code, it would need to be duplicated for the speaker layout.
On 26 Aug 2022 at 08:24:22

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Forked On 26 Aug 2022 at 08:07:00

Timrozum

What happens when there is some random error that we don't specifically handle? Don't we need to clean up and pass that error to the UI to display? I don't see how this code handles this case but maybe I don't understand the Kotlin.
On 26 Aug 2022 at 08:07:00

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Merged On 26 Aug 2022 at 08:26:35

Timrozum

Commented On 26 Aug 2022 at 08:26:35

Timrozum

task/VIDEO-11001 android transition move speaker as viewer

Pull Request Details

JIRA link(s):

Description

  • Implemented transition Speaker to Viewer by themself
  • Implemented transition Speaker to Viewer by host
  • Implemented API call to removeSpeaker
  • Implemented UI popup menu for speaker bottom controls
  • Implemented UI popup menu for each remote participants to allow Host moves speakers as viewers.

Demo

  • Host sends speaker as viewer

https://user-images.githubusercontent.com/929504/186794212-edb65f14-9bc9-4c33-b720-8bebb22756bd.mp4

  • Speaker is sent as viewer by host

https://user-images.githubusercontent.com/929504/186981625-849224f3-4ba7-4949-8109-bcc365f690f9.mp4

  • Speaker choose the move as viewer by themselves

https://user-images.githubusercontent.com/929504/186982486-72b26f21-e6f7-4cfe-878f-2340dbef616a.mp4

Merged On 26 Aug 2022 at 08:26:34

Timrozum

Commented On 26 Aug 2022 at 08:26:34

Timrozum

VIDEO-XXXX update to 5.2.0

update to 5.2.0.

Contributing to Twilio

All third-party contributors acknowledge that any contributions they provide will be made under the same open-source license that the open-source project is provided under.

  • [X] I acknowledge that all my contributions will be made under the project's license.

Merged On 24 Aug 2022 at 10:32:09

Timrozum

Commented On 24 Aug 2022 at 10:32:09

Timrozum

task/VIDEO-10999 Optimize grid mode

Pull Request Details

JIRA link(s):

Description

  • Optimize the grid rendering, to avoid remove and add existing participants UI thus avoid flickering.
  • Created GridManager.kt in order to manage all the UI GridMode operations.
  • Implemented Switch View when a Dominant Speaker changed.

Demo

For this demo purposes, the Off-Screen Participants Limit was changed to 4.

https://user-images.githubusercontent.com/929504/184175172-c292098c-2a01-4a79-b600-42b60b01ef18.mp4

Merged On 24 Aug 2022 at 03:23:16

Timrozum

Nice!

Commented On 24 Aug 2022 at 03:23:16

Timrozum

PlayerView isEmpty

pod 'TwilioLivePlayer', '1.1.0' pod 'AmazonIVSPlayer', '1.8.0'

I integrate the Twilio live player in the storyboard custom view. I get a player view that is nil. I am using player-manager delegate and get player

Forked On 19 Aug 2022 at 04:23:40

Timrozum

Hi @ArifJezir I don't think I understand the specific problem you are having.

Can you identify the specific line of code that is having an issue and what issue it is? Thanks!

Commented On 19 Aug 2022 at 04:23:40

Timrozum

task/VIDEO-10999 Optimize grid mode

Pull Request Details

JIRA link(s):

Description

  • Optimize the grid rendering, to avoid remove and add existing participants UI thus avoid flickering.
  • Created GridManager.kt in order to manage all the UI GridMode operations.
  • Implemented Switch View when a Dominant Speaker changed.

Demo

For this demo purposes, the Off-Screen Participants Limit was changed to 4.

https://user-images.githubusercontent.com/929504/184175172-c292098c-2a01-4a79-b600-42b60b01ef18.mp4

Forked On 11 Aug 2022 at 07:50:42

Timrozum

It seems like `RoomManager` should not depend on `GridManager`. I think we want to avoid low level SDK code from calling into higher level UI code. I would expect higher level UI code to observe state changes in lower level code. Otherwise the code can be hard to follow because of circular paths.
On 11 Aug 2022 at 07:50:42

Timrozum

task/VIDEO-10999 Optimize grid mode

Pull Request Details

JIRA link(s):

Description

  • Optimize the grid rendering, to avoid remove and add existing participants UI thus avoid flickering.
  • Created GridManager.kt in order to manage all the UI GridMode operations.
  • Implemented Switch View when a Dominant Speaker changed.

Demo

For this demo purposes, the Off-Screen Participants Limit was changed to 4.

https://user-images.githubusercontent.com/929504/184175172-c292098c-2a01-4a79-b600-42b60b01ef18.mp4

Forked On 11 Aug 2022 at 08:22:06

Timrozum

Looks like this code is swapping participants. iOS and web apps behave differently. When the oldest dominant speaker is removed from the grid, they are always moved to the start of the offscreen list. This way if someone on the grid disconnects later, the most recent dominant speaker off screen will be moved offscreen. See how this is a 4 step process on iOS: https://github.com/twilio/twilio-live-interactive-video/blob/eba1c8a78235cc22a90cf2bfd3780d6b267dfbf3/apps/ios/LiveVideo/LiveVideo/Views/Stream/SpeakerGridViewModel.swift#L110-L113
On 11 Aug 2022 at 08:22:06

Timrozum

task/VIDEO-10999 Optimize grid mode

Pull Request Details

JIRA link(s):

Description

  • Optimize the grid rendering, to avoid remove and add existing participants UI thus avoid flickering.
  • Created GridManager.kt in order to manage all the UI GridMode operations.
  • Implemented Switch View when a Dominant Speaker changed.

Demo

For this demo purposes, the Off-Screen Participants Limit was changed to 4.

https://user-images.githubusercontent.com/929504/184175172-c292098c-2a01-4a79-b600-42b60b01ef18.mp4

Forked On 11 Aug 2022 at 08:27:17

Timrozum

Also it seems like `GridManager` should not modify internal state of `RoomManager`. It gets to be difficult to follow all the places the state is being modified. It seems like the grid state is split between `GridManager` and `RoomManager`. I would recommend having `GridManager` own state for all participants regardless if they are visible or not on the grid. Eventually you will be implementing speaker layout which is a completely different layout. The User will be able to switch between grid and speaker layouts. It is important for each layout to manage their own state so that one layout has no impact on another layout.
On 11 Aug 2022 at 08:27:17

Timrozum

task/VIDEO-10999 Optimize grid mode

Pull Request Details

JIRA link(s):

Description

  • Optimize the grid rendering, to avoid remove and add existing participants UI thus avoid flickering.
  • Created GridManager.kt in order to manage all the UI GridMode operations.
  • Implemented Switch View when a Dominant Speaker changed.

Demo

For this demo purposes, the Off-Screen Participants Limit was changed to 4.

https://user-images.githubusercontent.com/929504/184175172-c292098c-2a01-4a79-b600-42b60b01ef18.mp4

Merged On 11 Aug 2022 at 08:40:11

Timrozum

Looks like a good solution for the UI view.

I think we just need to have the grid model own all of the grid state and have a clearer boundary between the grid and RoomManager.

Commented On 11 Aug 2022 at 08:40:11

Timrozum

task/VIDEO-10999 Optimize grid mode

Pull Request Details

JIRA link(s):

Description

  • Optimize the grid rendering, to avoid remove and add existing participants UI thus avoid flickering.
  • Created GridManager.kt in order to manage all the UI GridMode operations.
  • Implemented Switch View when a Dominant Speaker changed.

Demo

For this demo purposes, the Off-Screen Participants Limit was changed to 4.

https://user-images.githubusercontent.com/929504/184175172-c292098c-2a01-4a79-b600-42b60b01ef18.mp4

Merged On 11 Aug 2022 at 08:40:11

Timrozum

Looks like a good solution for the UI view.

I think we just need to have the grid model own all of the grid state and have a clearer boundary between the grid and RoomManager.

Commented On 11 Aug 2022 at 08:40:11
Create Branch
Timrozum In twilio/twilio-video-app-ios Create Branchspike/uikit-pip

Timrozum

A collaboration application built with the Twilio Video iOS SDK

On 11 Aug 2022 at 03:49:48

Timrozum

Update audio-mixer-v2

Contributing to Twilio

All third party contributors acknowledge that any contributions they provide will be made under the same open source license that the open source project is provided under.

  • [x] I acknowledge that all my contributions will be made under the project's license.

Pull Request Details

Description

This PR changes the default media extension from audio-mixer-v1 to audio-mixer-v2. According to the changelog, there are no breaking changes that we need to worry about in this application.

Burndown

Before review

  • [ ] Added unit tests if necessary
  • [ ] Updated affected documentation
  • [ ] Verified locally with all effected platforms
  • [ ] Manually sanity tested running locally
  • [ ] Included screenshot as PR comment (if needed)
  • [x] Ready for review

Before merge

  • [ ] Got one or more +1s
  • [ ] Re-tested if necessary

Merged On 09 Aug 2022 at 09:48:00

Timrozum

Commented On 09 Aug 2022 at 09:48:00

Timrozum

fix: Gemfile.lock to reduce vulnerabilities (#20)

The following vulnerabilities are fixed with an upgrade:

  • https://snyk.io/vuln/SNYK-RUBY-JMESPATH-2859799

Co-authored-by: snyk-bot snyk-bot@snyk.io

Pushed On 09 Aug 2022 at 08:48:38