diff --git a/developer/creating-jami-plugins.md b/developer/creating-jami-plugins.md index e73767698cf8c48c539fb96d34df44675227bd3d..7e235bafcfd30b5b9b675d0501be4e5869055dac 100644 --- a/developer/creating-jami-plugins.md +++ b/developer/creating-jami-plugins.md @@ -5,7 +5,7 @@ Creating Jami plugins ## Jami Plugins As from September of 2020, Jami team has added plugins as a call feature for GNU/Linux, Windows, and Android users. -This meaning that now you can personalize your call and chat experience by using one of our available plugins. +This meaning that now you can personalize your call and chat experience by using one of our available plugins. But that is not all, you can also transform your awesome ideas into a brand new plugin! Here you will be guided throught the SDK that will help you start your plugin developpment. @@ -136,7 +136,7 @@ There is limited types of preferences supported by the plugin system and each of The generic properties of a preference are those that must be set by any type of preference: `category`, `type`, `key`, `title`, `summary`, `defaultValue`, and `scope`. The specific ones are linked to the type of the preference constructed. For `EDITTEXT` preferences there is no other property to be set. For `PATH` preferences we have: `mimeType`. -For `LIST` preferences we have: `entries` and `entryValues`. +For `LIST` preferences we have: `entries` and `entryValues`. A `LIST` preference must have a list of possible values to be used and a list of 'names' for these values. For example: If you have two `entriesValues`: '0' and '1', these values may not be understandable by the user. Jami's UI will take the values from `entries` to be shown as 'names' for each one of these `entryValues`. Then you can call '0' and '1' as 'sent' and 'received'. The UI will show these names that are more user friendly! @@ -194,7 +194,7 @@ The SDK will ask other informations needed to correctly accomplish the task. The final plugin file is an archive compressed to a `JPL` format. This archive contains libraries, manifest.json, preferences.json, icons and other custom important files for your plugin. OBS.: files added by the developper must be organized under the `data/` folder. -The SDK assemble option has two different behaviours: +The SDK assemble option has two different behaviors: * it creates a build folder and copies there all files that will be compressed to the final plugin archive. For linux host: `<plugins>/<HelloWorld>/build-local/jpl/` and for a windows host: `<plugins>/<HelloWorld>/msvc/jpl/`; * it compresses all files inside the build folder to the jpl archive wich is output under `<plugins>/build`. @@ -215,7 +215,7 @@ To compress all assembled to a jpl archive, from inside Jami Plugins SDK shell, The SDK will ask other informations needed to correctly accomplish the task. #### Build -The SDK build option has two different behaviours: +The SDK build option has two different behaviors: * it creates basic CMakeLists.txt and buils.sh files; * it build the plugin library with default options defined at the files mentioned above. @@ -317,7 +317,7 @@ Set plugin version (default 0.0.0): 1.0.0 > Choose a API for functionality "CenterCircle". -> Available APIs: +> Available APIs: (1) video during a call (Media Handler API) (2) audio during a call (Media Handler API) (3) chat messages (Chat Handler API) @@ -325,11 +325,11 @@ For more information about the API, call help preferences. > Enter a data type number: 1 -> Add another functionaliy? [y/N] +> Add another functionaliy? [y/N] > Would you like to add a preference? [y/n] y -> Your preferences options available are: +> Your preferences options available are: (0) List; (1) Path; (2) EditText; @@ -355,7 +355,7 @@ Type an entry name for '1': received > Would you like to add a preference? [y/n] y -> Your preferences options available are: +> Your preferences options available are: (0) List; (1) Path; (3) EditText; @@ -451,7 +451,7 @@ python3 SDK/pluginMainSDK.py > Choose a API for functionality "CoinCircle". -> Available APIs: +> Available APIs: (1) video during a call (Media Handler API) (2) audio during a call (Media Handler API) (3) chat messages (Chat Handler API) diff --git a/developer/improving-quality-of-jami.md b/developer/improving-quality-of-jami.md index 0963958b951101688e70975af6a9299c0def0e4a..4458285711bd2a1c540262924d12528dc607a684 100644 --- a/developer/improving-quality-of-jami.md +++ b/developer/improving-quality-of-jami.md @@ -30,21 +30,21 @@ Improving the quality of Jami * Code-review is made by a fellow developer, sometimes the code is reviewed by the same developer, this should be avoided to emphasize Linus’ law. The ‘Jenkins verified’ label is sometimes discarded and replaced by +1 from a developer, this should also be avoided. * Sonarqube lets Jenkins build Jami and verify linting. You can find filters and results at: sonar- jami.savoirfairelinux.net Sonar uses clang-tidy as a preprocessor linting compilator, you can find clang’s filters in .clang-tidy file in the daemon folder. - + * On sflvault sonarqube can be found at service m#2637 and admin logins at service s#7169 ## Doc and feedback: * You can find all the documentation on docs.jami.net - + * Issues are made by developers or users on git.jami.net ## Monitoring * A script is called every 30 minutes on a virtual machine jami-monitorpeervm-01. You can find it on sflvault service s#7209 and is calling an other client viratual jami- monitorpeer-02 (service s#7224). A series of calls is being made and it returns the failure rate. You can find all the details at https://wiki.savoirfairelinux.com/wiki/Jami-monitorpeervm-01.mtl.sfl. - + * If needed, the manual command is ./script.sh –peer 031acbb73f2a3385b2babc7161f13325be103431 - + * It traces a real time point by point graph on https://monitoring.savoirfairelinux.com/grafana/dashboard/script/dyndash.js?host=jami-monitorpeervm-01.mtl.sfl&service=Check%20JamiCall&panelId=1&fullscreen&orgId=1 ## Smoke tests @@ -73,15 +73,15 @@ The script to generate MR is in the client-android repo (fdroidMergeRequest.sh) ## What needs to be done * Push coverage closer to 60% - + * Establish a system within the team to assure maintenance and creation of unit-tests. * Each major functionality should be tested as whole by adding a framework test (i.e. making sure a message was received, the call was ended well on both side, etc...) * Each new functionality should be tested on each platform before merging it to reduce regression - + * Integrate sonarqube on each client -* Automate the testing of Jami’s behaviour on network compatibility +* Automate the testing of Jami’s behavior on network compatibility * Make a make_ring.py script adaptable to windows also diff --git a/developer/libjamiclient-documentation.md b/developer/libjamiclient-documentation.md index c5ef3c88e04adf07fe58f8668740f12fcd1dce26..cf81476c2d1aad9de5f47407b699178343c4a830 100644 --- a/developer/libjamiclient-documentation.md +++ b/developer/libjamiclient-documentation.md @@ -6,7 +6,7 @@ libjamiclient documentation ### Introduction - Lrc (Libringclient) is an interface between the clients and - the daemon. It ensures to get the same behaviour for all client + the daemon. It ensures to get the same behavior for all client using it.  diff --git a/developer/swarm.md b/developer/swarm.md index 8786f214fc5b005e5bf0d039831683bf3bf713d2..79e45608d58b328091059c6aeb043ec85283943d 100644 --- a/developer/swarm.md +++ b/developer/swarm.md @@ -261,6 +261,36 @@ In the synchronized data, each devices sends to other devices the state of the c + if the remote is already fetched, we check that the local last displayed is before in the history to replace it + Finally if a message is announced from the same author, it means that we need to update the last displayed. +#### Preferences + +Every conversation has attached preferences set by the user. Those preferences are synced across user's devices. This can be the color of the conversation, if the user wants to ignore notifications, file transfer size limit, etc. For now, the recognized keys are: + ++ "color" - the color of the conversation ++ "ignoreNotifications" - to ignore notifications for new messages in this conversation ++ "symbol" - to define a default emoji. + +Those preferences are stored in a packet MapStringString, stored in `accountDir/conversation_data/conversationId/preferences` and only sent across devices of the same user via SyncMsg. + +The API to interact with the preferences are: + +```cpp +// Update preferences +void setConversationPreferences(const std::string& accountId, + const std::string& conversationId, + const std::map<std::string, std::string>& prefs); +// Retrieve preferences +std::map<std::string, std::string> getConversationPreferences(const std::string& accountId, + const std::string& conversationId); +// Emitted when preferences are updated (via setConversationPreferences or by syncing with other devices) +struct ConversationPreferencesUpdated +{ + constexpr static const char* name = "ConversationPreferencesUpdated"; + using cb_type = void(const std::string& /*accountId*/, + const std::string& /*conversationId*/, + std::map<std::string, std::string> /*preferences*/); +}; +``` + ### Merge conflicts management Because two admins can change the description at the same time, a merge conflict can occur on `profile.vcf`. In this case, the commit with the higher hash (eg ffffff > 000000) will be chosen. diff --git a/locales/fa/LC_MESSAGES/developer.po b/locales/fa/LC_MESSAGES/developer.po index 99ef3da93af1723b767fa79864888794fe4e5fe9..5425a199d96dfdbcfd23397c90e950f55ae2b539 100644 --- a/locales/fa/LC_MESSAGES/developer.po +++ b/locales/fa/LC_MESSAGES/developer.po @@ -2282,7 +2282,7 @@ msgid "" msgstr "" #: ../../../developer/creating-jami-plugins.md:197 -msgid "The SDK assemble option has two different behaviours:" +msgid "The SDK assemble option has two different behaviors:" msgstr "" #: ../../../developer/creating-jami-plugins.md:199 @@ -2324,7 +2324,7 @@ msgid "Build" msgstr "" #: ../../../developer/creating-jami-plugins.md:218 -msgid "The SDK build option has two different behaviours:" +msgid "The SDK build option has two different behaviors:" msgstr "" #: ../../../developer/creating-jami-plugins.md:220 @@ -4050,7 +4050,7 @@ msgid "Integrate sonarqube on each client" msgstr "" #: ../../../developer/improving-quality-of-jami.md:85 -msgid "Automate the testing of Jami’s behaviour on network compatibility" +msgid "Automate the testing of Jami’s behavior on network compatibility" msgstr "" #: ../../../developer/improving-quality-of-jami.md:87 @@ -4761,7 +4761,7 @@ msgstr "" #: ../../../developer/libjamiclient-documentation.md:8 msgid "" "Lrc (Libringclient) is an interface between the clients and the daemon. It " -"ensures to get the same behaviour for all client using it. " +"ensures to get the same behavior for all client using it. " "" msgstr "" diff --git a/locales/fa/LC_MESSAGES/user.po b/locales/fa/LC_MESSAGES/user.po index 4a08e4259a8fd0865dc9e1146a1ec816eccc55d7..c4055ff04a30371e6e5e4a91e3171e7901ce321a 100644 --- a/locales/fa/LC_MESSAGES/user.po +++ b/locales/fa/LC_MESSAGES/user.po @@ -2,7 +2,7 @@ # Copyright (C) 2018-2022 Savoir-faire Linux Inc. and contributors # This file is distributed under the same license as the Jami documentation. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# +# # Translators: # . . <ovari123@zoho.com>, 2022 # Mohammad Amin Sameti <mamins1376@gmail.com>, 2022 @@ -14,7 +14,7 @@ # ali ask <aliraadlar@gmail.com>, 2022 # Hamid reza Zaefarani, 2022 # Danial Behzadi <dani.behzi@ubuntu.com>, 2022 -# +# #, fuzzy msgid "" msgstr "" @@ -627,7 +627,7 @@ msgid "Expected Result" msgstr "" #: ../../../user/bug-report-guide.md:154 -msgid "It's a description of expected or desired behaviour." +msgid "It's a description of expected or desired behavior." msgstr "" #: ../../../user/bug-report-guide.md:157 diff --git a/locales/fr/LC_MESSAGES/developer.po b/locales/fr/LC_MESSAGES/developer.po index fb82bfe9bfdef6c2e2bd2c58e60398329d7e9dec..f8fdeb0f04167389015c3886e3666c616d37e794 100644 --- a/locales/fr/LC_MESSAGES/developer.po +++ b/locales/fr/LC_MESSAGES/developer.po @@ -2288,7 +2288,7 @@ msgid "" msgstr "" #: ../../../developer/creating-jami-plugins.md:197 -msgid "The SDK assemble option has two different behaviours:" +msgid "The SDK assemble option has two different behaviors:" msgstr "" #: ../../../developer/creating-jami-plugins.md:199 @@ -2330,7 +2330,7 @@ msgid "Build" msgstr "" #: ../../../developer/creating-jami-plugins.md:218 -msgid "The SDK build option has two different behaviours:" +msgid "The SDK build option has two different behaviors:" msgstr "" #: ../../../developer/creating-jami-plugins.md:220 @@ -4056,7 +4056,7 @@ msgid "Integrate sonarqube on each client" msgstr "" #: ../../../developer/improving-quality-of-jami.md:85 -msgid "Automate the testing of Jami’s behaviour on network compatibility" +msgid "Automate the testing of Jami’s behavior on network compatibility" msgstr "" #: ../../../developer/improving-quality-of-jami.md:87 @@ -4767,7 +4767,7 @@ msgstr "" #: ../../../developer/libjamiclient-documentation.md:8 msgid "" "Lrc (Libringclient) is an interface between the clients and the daemon. It " -"ensures to get the same behaviour for all client using it. " +"ensures to get the same behavior for all client using it. " "" msgstr "" diff --git a/locales/fr/LC_MESSAGES/user.po b/locales/fr/LC_MESSAGES/user.po index 80673ecaa36a1b0639eabb6d684db4f7c216ec92..5bbe282a2b23b053d60e615e898218656bc57d17 100644 --- a/locales/fr/LC_MESSAGES/user.po +++ b/locales/fr/LC_MESSAGES/user.po @@ -2,7 +2,7 @@ # Copyright (C) 2018-2022 Savoir-faire Linux Inc. and contributors # This file is distributed under the same license as the Jami documentation. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. -# +# # Translators: # savoirfairelinux <support@savoirfairelinux.com>, 2022 # Ecko <edric.milaret@gmail.com>, 2022 @@ -15,7 +15,7 @@ # Zertrin, 2022 # Antoine Gorenflot, 2022 # Cyrille Béraud <cyrille.beraud@savoirfairelinux.com>, 2022 -# +# #, fuzzy msgid "" msgstr "" @@ -628,7 +628,7 @@ msgid "Expected Result" msgstr "" #: ../../../user/bug-report-guide.md:154 -msgid "It's a description of expected or desired behaviour." +msgid "It's a description of expected or desired behavior." msgstr "" #: ../../../user/bug-report-guide.md:157 diff --git a/user/bug-report-guide.md b/user/bug-report-guide.md index b2e22e412398c729f7511bc746b10caebb517b0c..85f8ebe469abb59d1bc8fad609ec75de50787a70 100644 --- a/user/bug-report-guide.md +++ b/user/bug-report-guide.md @@ -151,7 +151,7 @@ Please include: Expected Result --------------- -It's a description of expected or desired behaviour. +It's a description of expected or desired behavior. Providing additional information