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

Entry widget and secure conversations v2 #1036

Draft
wants to merge 109 commits into
base: development
Choose a base branch
from

Conversation

rasmustautsglia
Copy link
Contributor

What was solved?

Release notes:

  • Feature
  • Ignore
  • Release notes (Is it clear from the description here?)
  • Migration guide (If changes are needed for integrator already using the SDK - what needs to be communicated? Add underneath please)

Additional info:

  • Is the feature sufficiently tested? All tests fixed? Necessary unit, acceptance, snapshots added? Check that at least new public classes & methods are covered with unit tests
  • Did you add logging beneficial for troubleshooting of customer issues?
  • Did you add new logging? We would like the logging between platforms to be similar. Refer to Logging from iOS SDKsThings to consider for newly added logs in Confluence for more information.

Screenshots:

@rasmustautsglia rasmustautsglia changed the title Feature/entry widget and secure conversations v2 Entry widget and secure conversations v2 Sep 9, 2024
@rasmustautsglia rasmustautsglia force-pushed the feature/entry-widget-and-secure-conversations-v2 branch 2 times, most recently from cd21e48 to fa640ff Compare September 23, 2024 18:11
@rasmustautsglia rasmustautsglia changed the base branch from master to development September 25, 2024 07:00
@ykyivskyi-gl ykyivskyi-gl force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from cfb864f to 17349d7 Compare October 8, 2024 08:44
@rasmustautsglia rasmustautsglia force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from cdf1e06 to cac42b4 Compare October 17, 2024 11:07
@igorkravchenko igorkravchenko force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from aed3878 to 0228f93 Compare October 17, 2024 15:49
Base automatically changed from development to master October 18, 2024 12:55
@igorkravchenko igorkravchenko force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from 7a5e1a8 to f4300ab Compare October 18, 2024 14:33
@andrews-moc
Copy link
Contributor

@rasmustautsglia I think the target branch should be changed to 'development', shouldn't it?

@igorkravchenko igorkravchenko force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from f4300ab to ef727e2 Compare October 21, 2024 07:22
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch 2 times, most recently from 68ade5b to e0349d0 Compare October 22, 2024 11:31
@EgorovEI EgorovEI changed the base branch from master to development October 22, 2024 11:56
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from e0349d0 to 6606af7 Compare October 22, 2024 12:06
@igorkravchenko igorkravchenko force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from 9b2e7c1 to 14d76ce Compare November 1, 2024 14:18
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from ea35791 to 1ea3ecf Compare November 11, 2024 13:22
Base automatically changed from development to master November 12, 2024 09:19
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch 2 times, most recently from 50ee073 to d507d17 Compare December 5, 2024 14:43
@EgorovEI EgorovEI changed the base branch from master to development December 5, 2024 14:47
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from d507d17 to 37c9a9d Compare December 5, 2024 18:47
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from 76c87b1 to c57e113 Compare December 13, 2024 14:00
Base automatically changed from development to master December 17, 2024 15:06
@EgorovEI EgorovEI changed the base branch from master to development December 17, 2024 15:07
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from c735b3e to e2ee5e6 Compare December 17, 2024 16:35
@ykyivskyi-gl ykyivskyi-gl force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from ee51db8 to fdaf96c Compare December 27, 2024 10:29
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from 01e024c to 7ad0d5b Compare December 31, 2024 10:38
Egor Egorov and others added 10 commits January 24, 2025 11:33
Both platforms now also log when ongoing engagement

MOB-3909
Currently if there visitor is enqueuing and decides to initiate engagement
again, then that will cancel their queue ticket and create a new one. This is
really bad from UX perspective because a person would potentially lose
a great spot in a long queue, even though their reason was to just resume the existing one.

The new solution would check for the engagement kind and if the current one matches
the new one, then instead of cancelling the old, the old one is resumed.

There were technical difficulties to achieve that because currently the SDK converts EngagementKind
to simplified mediaType, which makes this upgrade impossible. This PR simplifies the approach significantly
and allows the SDK to rely on EngagementKind as long as possible and only use mediaType when absolutely needed.
This PR lays a pathway forward to continue removing mediaType from places where EngagementKind is suffice.

MOB-3931
Restoring engagement on configuration step or during authentication turns `skipLiveObservationConfirmations` value to `true` to prevent displaying the dialog. This value never turns back to default value, which is `false` without re-configuring the SDK. This commit fixes it.

MOB-3964
This commit introduces:
- the logic for restoring the bubble for the cases when SC engagement gets:
	- restored from Follow Up;
	- started using Outbound Message feature;
	- started while visitor is on SecureConversation.Confirmation screen
- unit tests

MOB-3951
This commit fixes the issue when Interactor instance and media are captured during EngagementLauncher creation.

MOB-3963
When visitor is enqueued, instead of showing all the options in EntryWidget,
We show only the one that the visitor is enqueued to.

MOB-3950
@EgorovEI EgorovEI force-pushed the feature/entry-widget-and-secure-conversations-v2 branch from 86ce9ea to 1fa66b0 Compare January 24, 2025 09:40
BitriseBot and others added 19 commits January 24, 2025 12:15
This commit introduces the logic erasing `interactor.state` to align its behaviour in case when deauthentication happended during trasferred SC.

MOB-3972
If integrator creates EntryWidget and then re-configures the SDK, EntryWidgets stops handling engagement states, because it owns outdated interactor instance.
To solve this problem we need to re-subscribe on interactor.currentEngagement property once the SDK is reconfigured. This PR does that by making interactor as a published property. EntryWidget will always be up to date with the most recent interactor.

MOB-3965
Rely on 'Engagement.actionOnEnd' to determine the need to present survey.

MOB-3966
Handle case when engagement is ended with 'actionOnEnd = .retain' by switching to SC from Live Chat, instead of ending engagement.

MOB-3978
- Snackbar shown for video/audio enqueueing if chat/SC running
- Snackbar shown for chat/SC enqueueing if video/audio running
Since transferred SC behaves as Secure Conversation queue ticket, we don't need to take it into account during evaluating EntryWidget's viewState.

MOB-3992
Add unit test that ensures that 'ChatCoordinator' calls 'migrate' on 'TranscriptModel' and asserts migration related properties.

MOB-3989
This commit introduces a logic:
- Don't restore bubble for transferred SC;
- Don't end transferred SC when close button is pressed on Chat screen;
- Showing close button instead of end one in case of transferred SC;
- unit tests;

MOB-3974
Interactor state had a mixture of new and old approach. This PR removes didSet and instead subscribes for updates directly.

MOB-3979
This commit:
- fixes enqueueing to Live engagement during Transferred SC;
- fixes Chat UI for case when SC queue ticket created by Transferred SC gets accepted by operator;
- fixes chatType for the case if visitor leaves current conversation in favour of Live engagement;
- unit tests;

MOB-3973
After Interactor was refactored to be Published property, interactorProviding was replaced with interactorPublisher using Combine

MOB-3982
- Show already in contact snackbar for chat/SC enqueueing if audio/video already enqueued
- Maximize bubble for chat/SC enqueueing if chat/SC already enqueued
- Show already in contact snackbar for audio/video enqueueing if chat/SC already enqueued
- Maximize bubble for audio/video enqueueing if audio/video already enqueued
Fix file upload issue by calling 'TranscriptModel.start'.

MOB-3993
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

5 participants