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

Async audio messages/audio recording #4658

Closed
wants to merge 22 commits into from

Conversation

MarinTolic
Copy link
Contributor

🎯 Goal

Describe why we are making this change

🛠 Implementation details

Describe the implementation

🎨 UI Changes

Add relevant screenshots

Before After
img img

Add relevant videos

Before After

🧪 Testing

Explain how this change can be tested (or why it can't be tested)

Provide a patch below if it is necessary for testing

Provide the patch summary here
Provide the patch code here

☑️Contributor Checklist

General

  • I have signed the Stream CLA (required)
  • Assigned a person / code owner group (required)
  • Thread with the PR link started in a respective Slack channel (#android-chat-core or #android-chat-ui) (required)
  • PR targets the develop branch
  • PR is linked to the GitHub issue it resolves

Code & documentation

  • Changelog is updated with client-facing changes
  • New code is covered by unit tests
  • Comparison screenshots added for visual changes
  • Affected documentation updated (KDocs, docusaurus, tutorial)

☑️Reviewer Checklist

  • UI Components sample runs & works
  • Compose sample runs & works
  • UI Changes correct (before & after images)
  • Bugs validated (bugfixes)
  • New feature tested and works
  • Release notes and docs clearly describe changes
  • All code we touched has new or updated KDocs

🎉 GIF

Please provide a suitable gif that describes your work on this pull request

@MarinTolic MarinTolic changed the base branch from v5 to feature/async_audio_messages February 7, 2023 09:31
@JcMinarro JcMinarro force-pushed the async_audio_messages/audio_recording branch from ab475f0 to a0eeebb Compare May 5, 2023 11:42
@github-actions
Copy link
Contributor

github-actions bot commented May 5, 2023

DB Entities have been updated. Do we need to upgrade DB Version?
Modified Entities :

stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/channel/internal/ChannelEntity.kt
stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/message/attachment/internal/ReplyAttachmentEntity.kt
stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/message/internal/MessageEntity.kt
stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/message/internal/ReplyMessageEntity.kt
stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/queryChannels/internal/QueryChannelsEntity.kt
stream-chat-android-offline/src/main/java/io/getstream/chat/android/offline/repository/domain/reaction/internal/ReactionEntity.kt

@JcMinarro JcMinarro changed the base branch from feature/async_audio_messages to develop May 18, 2023 15:36
MarinTolic and others added 21 commits May 23, 2023 10:47
…d simplify recording media using Android's `MediaRecorder`

- [4654] Implement  a public `StreamFileUtil` method used for creating a new file inside the cache directory
…pe of `DefaultStreamMediaRecorder`

- [4654] Create `StreamMediaRecorderStateHolder` used for holding and propagating state events emitted from the `MediaRecorder` used internally by `StreamMediaRecorder`
…y proof of concept integration with `MessageComposer`
…y proof of concept integration with `MessageComposer`
…corderStateManager` and give it more direct governing capabilities over `StreamMediaRecorder`
…corderStateManager` and give it more direct governing capabilities over `StreamMediaRecorder`
…ingWaveForm`

- [4654] Create a new state class designed to track `StreamMediaRecorder` states with the appropriate listener functional interfaces and setter method inside `StreamMediaRecorder`

- [4654] Create max amplitude polling listener functional interface and setter method inside `StreamMediaRecorder` and a polling mechanism inside `DefaultStreamMediaRecorder`
…d also be Activity lifecycle dependent so it's a better design decision to let users provide it in the Activity the Chat is embedded in

- [4654] Rename `StreamMediaRecorderStateManager` to `StatefulStreamMediaRecorder` and expose `StreamMediaRecorder`'s functions without exposing `StreamMediaRecorder` itself

- [4654] Introduce `StatefulStreamMediaRecorder` to `MessageComposer` and `MessagesScreen` composables

- [4654] Introduce `KeyValuePair`, a facsimile of Kotlin's Pair but with more descriptive naming

-
…ration in `StreamMediaRecorder` and `StatefulStreamMediaRecorder`

- [4654] Release the media recorder if the start or stop methods fail
… were asked for and the user chose an option and optimize escaping function when appropriate.

- [4654] Improve recording reliability by starting recording only once the pointer event scope has been acquired.
@kanat kanat force-pushed the async_audio_messages/audio_recording branch from a0eeebb to f79ce04 Compare May 23, 2023 17:52
@kanat
Copy link
Collaborator

kanat commented Jul 10, 2023

Will be a part of #4828

@kanat kanat closed this Jul 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants