linphone-tutorials/uwp/cs/07_AdvancedChat/Readme.md
Thibault Lemaire aca479888a Give the UWP Tutorial a little refresher
In order to write an equivalent tutorial for Xamarin, I am first
following the UWP tutorial.

Fixed many little spelling mistakes and rephrased some sentences.

Fixed a crash when video is requested but the device has no camera.

Fixed a crash when opening an audio recording. (Linphone.Content.FilePath
returns a path with mixed '/' and '\'. I don't know why and I'm not sure
I understand why the file was auto-downloaded either)
2022-02-17 16:10:10 +01:00

50 lines
2.3 KiB
Markdown

Linphone X UWP tutorial 07_AdvancedChat
========================================
You reached the last step of this tutorial ! Well done ! In this step we will show you
how to create group chat, enable encryption and send ephemeral messages.
Linphone provides end-to-end encryption to your Flexisip chat with LIME. We will learn
in this step how to enable and use LIME to secure our ChatRoom. If you want more
informations about LIME take a look to [this page](https://linphone.org/technical-corner/lime).
To test a secure chat room try to create a group chat room and tick the check box
"I want a secure chat room". Most of the new and documented code can be found in
CoreService.cs.
One-to-one encryption is similar to group chat encryption as it uses LIME. To learn
how to create a one-to-one encrypted chat room also see CoreService.cs. You can also try to create one
yourself using the new "Create a new secure ChatRoom" on top of the ChatsPage.
Ephemeral messages are meant to disappear after a certain amount of time has elapsed.
You can enable the ephemeral mode directly on a ChatRoom object, see ChatPage.xaml.cs to
learn how to enable/disable it. And finally take a look at the new code in MessageDisplay.xaml(.cs)
to see how to handle ephemeral messages.
New/updated files :
```
07_AdvancedChat
└───Controls :
│ │
│ │ MessageDisplay.xaml(.cs) : A user control to display chat bubbles from message event.
│ │ Ephemeral messages handling is added here in this step !
└───Service :
│ │ CoreService.cs : A singleton service which contains the Linphone.Core.
│ │ Updated to allow creation of encrypted group chat room.
│ │
└───Shared :
│ │ ChatRoomToStringConverter.cs : a class that implement IValueConverter to display the
│ │ the chat room name according to its type. Now we display a SECURE tag
│ │ for secure chat rooms
│ │
└───Views :
│ │
│ │ ChatPage.xaml(.cs) : This is the frame displayed when you select a chat room.
│ │ You can now enable/disable ephemeral mode here.
│ │
│ │ ChatsPage.xaml(.cs) : ChatRoom list with a new "Create a new secure ChatRoom" button.
│ │
```