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

Release 2.1.0 #772

Merged
merged 67 commits into from
Sep 15, 2023
Merged

Release 2.1.0 #772

merged 67 commits into from
Sep 15, 2023

Conversation

yurii-glia
Copy link
Contributor

No description provided.

rasmustautsglia and others added 30 commits September 14, 2023 18:28
This PR consists of metadata parsing into gva objects and laying the
groundwork for the rendering. It also contains placeholders for the UI,
because these will be implemented in a separate ticket. In addition,
this PR refactors ChatMessage to address certain issues with current implementation
of computed properties

MOB-2360
This PR creates GVA Response text UI. This PR also splits ChatView.swift
a little bit, since it was closing on 1000 lines of code which is not
desired and hard to read.

MOB-2363
This PR allows the HTML to be rendered in GVA messages. The conversion
of string to attributed string happens in decoding for performance and
proper layout reasons.
Added unit tests for GVA button actions

MOB-2378
This PR adds GVA Persistent Button UI and connects the buttons to
corresponding actions. Some paddings were also changed due to new requirements.
This PR also fixes GVA button decoding to support NSAttributedString, and
Gallery Card decoding (unrelated to the ticket).

MOB-2370
Address layout inconsistencies after PureLayout removal.

MOB-2469
This PR adds Unified customization to Persistent button, together with
default theme. In GVAPersistentButtonVIew the ContainerView was moved to
a stand-alone class so layoutSubviews() could be used properly, since
gradient color can only be applied in that method.

In addition, it adds system message to unified customization
since it wasn't applied before but was actually ready to be used.

MOB-2372
Added QuickReplyView which displays left-aligned button's grid
Added handling QR button actions
Added displaying QR messages

MOB-2395
Add initial snapshot tests for dynamic type fonts.
Note that these tests reveal that some UI does not take into account dynamic font type, so appropriate tickets are to be created.

MOB-2476
Sdk differentiate custom card and usual response card based on metadata.
If the type is single choice card and metadata is nil, SDK should draw a message
as a response card.
If the type is single choice card and metadata is not nil, SDK should pass
metadata to renderer and render custom card.

MOB-2342
Ensure that BubbleView has correct layout in BubbleWindow after PureLayout removal.

MOB-2348
Add more accessibility identifiers to visitor info UI and replace regular UISegmentedControl with custom implementation to overcome Voice Over (screen reader) issue, where views order is broken, if such control is used in section header.

MOB-1100
In the new list of strings unified between iOS and Android, there are some strings that have changed their name. However, the string itself is the same. Thus, there's a layer that converts between these new strings and the old strings. These aren't used anywhere yet. However, subsequent pull requests will put them to use. The idea is to have those old strings deprecated and only use the new ones, and then delete this layer in a year, just keeping the new ones in use.

Also some strings were changed already if the change was really small and new strings that didn't have an equivalent before were added.

MOB-2492
This PR covers Persistent button with VoiceOver and Layout snapshot tests.
However, due to complications, dynamic font snapshot tests are not working
as expected and will be postponed until later in order to maximise progress
with the project. Rest assured, dynamic font in attributed string works
well in simulator and in real device.

This PR also utilizes textstyle as a key component in making attributed
string scale with dynamic font. Because of that, no default value is
provided in the styles for textStyle anymore.

MetadataWrapper is necessary for making proper metadata json, as the nature
of the Metadata type is somewhat restrictive.

MOB-2375
This PR adds snapshot tests for GVA response text.

MOB-2509
There were a couple of warnings about preferring `== nil` notation and a disable
all that didn't re-enable all rules in the localization file.
Due to the nature of quick replies container, it was not possible to snapshot test the entire screen with quickreplies' container present. However the container itself is testable and this PR covers 2/3 tests for it.

MOB-2521
gva_not_supported → gva_error_unsupported

MOB-2525
This PR covers GVA Gallery cards with snapshot tests. It also covers
ADA compliance for this feature.

MOB-2409
MOB-2413
This PR adds unified customization to GVA Gallery card.

MOB-2405
Some of the views were rendered differently in dark mode, and needed
some adjustments.
InputQuestion doesn't need to have separate background property
and should inherit the background from option's normal state.

MOB-1946
Instead of trying to reuse some old strings, deprecate some other strings, and
have them coexist in the same file, I have decided to deprecate the `L10n.swift`
class altogether, and create a new one called `Localization.swift`. This allows
me to remove that horrible abbreviated name, and also make a clear distinction
between old and new. With this, all new strings will just go to the
`Localizable.strings` as always, and the `Deprecated.strings` ones shouldn't be
used anymore.

This was done by adding two `.stencil` files: one that handles adding the
`@deprecated` line to the old file, and a new one that handles ignoring all
strings that start with `android`. This is because on the new way to do strings,
the Android-specific ones will start with `android.`. We could remove these from
the file, but this would be manual, some could be missed, and at the moment of
this PR, we haven't yet determined how we are going to sync these strings with
the strings in the Glia Hub.

Finally, the new `Localization.swift` file is `internal`, as opposed to
`L10n.swift` which is public. This is because these strings have changed from
being the main way to show strings in the widgets, to being a fallback. Now, the
Glia Hub will be the main way to pass strings to the widgets, so there's no need
to shoot ourselves in the foot, making this public, and then have to worry about
deprecations, as we have to do with `L10n.swift`.

With this, there's no need to have `L10n+BackwardsCompatibility.swift`, as the
new strings and the old ones are separated entities. However, I still need to
do a layer that goes between the strings and the rest of the code, for when the
strings have functionality that is not present anymore (example, placeholders
for values that now just have the direct value in the string).

In a year, we can easily remove `L10n.swift` and the associated `.stencil` file.

MOB-2529
Address issue where changing existing key name of custom attributes resulted in old key name still being kept.

MOB-1100
This PR fixes the issue of system message not shown in chat

MOB-2544
When messages from history are loaded, same messages delivered from sockets are to be discarded to avoid duplicates.

MOB-2542
rasmustautsglia and others added 22 commits September 14, 2023 18:29
This method minimizes Glia screens to the Bubble. It might be used by integrators during handling deep links.
Added tests for `minimize()` and `resume()` methods.

MOB-2607
Before SDK opened http(s) links in SafaryViewController, tel: and mailto: links using UIApplication.open method. Deep links were skipped at all.
Now any type of URL is opened using UIApplication.open method to align behaviour with GVA feature and Android SDK.

MOB-2605
This string is not needed as a hint because we are working with a label, so the
text of the label itself is the hint. Same PR has been done for custom-locales
branch, but without this PR, all ios-sdk-widgets snapshot tests will fail.

MOB-2614
Bump Core SDK version to latest 1.1.1 release.
Delivery of visitor message was initially relying on REST response only, which resulted in visitor messages from same session being skipped if sent from another device or web. Changes here enable visitor message delivery via socket. Also it uses newly added send message payload API for predictable message delivery. Note that this PR can be merged only when CoreSDK with send message payload will be released.

MOB-2311
This commit removes constraint warnings from Call Visualizer
Previously the "Delivered" status was displayed for GVA Quick replied messages.
Now it works the same way as regular visitor messages. After receiving response for sent single choice option, the outgoing message is replaced with visitor message with "Delivered" status.

MOB-2613
This PR makes buttons in alerts and in survey ADA compliant, enabling
dynamic font scaling
With introduction of visitor messages delivered by socket we are now able to receive messages from web and other devices simultaneously.
For regular chat messages all changes in Widgets were done accordingly, but other functionality that involves visitor send message request-response may not take it to account, such as response and custom cards.
This commit fixes duplications of sent SingleChoiceResponse messages coming from API response and sockets.

MOB-2624
This PR fixes the issue that the time is partially hidden under the view's bounds.

MOB-2599
White labeling has to be on by default. These changes make it so in default Theme.

MOB-2577
With changes added by enabling visitor messages to be delivered via socket and using send message payload API, new logic for message processing has been introduced, to handle messages delivered via web-socket and via REST API. These tests cover situations were message via socket gets delivered before REST API and vice versa, to ensure that no visitor message duplications occur.

MOB-2638
These changes will allow integrators fetching available
queues without the needs to configure SDK with specific
queue id.

Deprecated:
- Interface for configuration SDK with queue ID

Introduced:
- Configuration method without queue id
- Starting engagement with queue ids

MOB-2594
Address visitor-on-hold and unread message count being incorrectly displayed for initial 'minimised' state during audio engagement.

MOB-2644
Added mechanism for fetching queue id dynamically
and assigning into settings.

MOB-2594
Restore Swift Package Manager
compatibility in a local package
connectivity mode.

MOB-2594
@yurii-glia yurii-glia merged commit 7dec4bd into master Sep 15, 2023
1 check passed
@yurii-glia yurii-glia deleted the release/2.1.0 branch September 15, 2023 08:43
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