If we're a member of a group swarm, we will receive profiles from
non contact (the other members of a conversation).
This patch try to get from cache before calling getContact() to be
able to retrieve profiles from non contacts if stored by the daemon
Change-Id: I864f1d5dd9f65232751e170b930606d23241d283
We do not need to write an empty profile since the daemon fully
manages the profile. Just update it from cache when new profile
is detected
GitLab: #1627
Change-Id: I31035f0666925d13f339f387e614f148b0eece8b
getContacts() is called before sync is finished. This should be
done like conversations, after first initializing.
This fix the presence showing after sync.
GitLab: #1627
Change-Id: I4ec9b7e34b5bd93b9ae4437e6c6719dbc3b78a98
Loading the profile elements from disk is now deferred to consumption. Implements a basic caching mechanism for the displayname and avatar elements.
Gitlab: #1459
Change-Id: Ic5aeec6649c198f617b9269409ded647c7536b8f
- Declares global logging categories for libclient and the app
- Introduces some macros for categorized logging
- Removes the noisy namedirectory logs by default
- Logs file/line number URIs in debug mode
Change-Id: I9dadadc6e93ef91cc70d206b7225aeb7a06f8773
There was no way to differentiate a 1:1 incoming call and a call
from a swarm, because username couldn't be checked. Now, create
conversation only if it's a 1:1 call
Change-Id: I0094967914b4888d083b9adc1d2b11de467d6f48
To be able to show calls that are transfered, we must catch new calls
from callstatechanged signal. Move all logic from newincomingcall to
callstatechanged.
Change-Id: Ibd3ff5f8b4009895b3165348fd1638956f5f66d9
Also, force the format of the vcard to always be the same to
avoid to change the shasum in a useless way.
Finally, only change if there is new details
https://git.jami.net/savoirfairelinux/jami-project/-/issues/1558
Change-Id: I95bc52e13c8d1020eae6ad64e77d4e58b1ee734b
If the avatar for an account is set on a device, it will send
to detected devices on new connections. The client was ignoring
the new avatar if it was not empty, now we just use the last
received avatar
Change-Id: I0b2cde9c193d46014c4d600775743312219b84df
Because in a swarm you can talk with non contacts, we should at
least retrieve the username when possible.
Change-Id: Ie01cd10cc1231fc4024bd5a08c30c08d69e8e7f0
GitLab: #948
Scenario, create a swarm with self.
As a warning, it will show "Can't find contact YOUR_ID this is a
bug, please report" because your account is not in your contacts.
Change-Id: I6f49f8fa77132daf00396b62da9ded470df49f98
This is libjamiclient from the jami-libclient.git repository as of
767c45b8b09806ac05cbada720864df93588c047, with the following changes:
* src/libclient/newaccountmodel.cpp:
(NewAccountModelPimpl::removeFromAccounts): The lock wait inside
'#ifdef CHK_FREEABLE_BEFORE_ERASE_ACCOUNT' was not updated when the
type of 'accounts' was changed over the years from this:
std::map<std::string, account::Info>
to this:
std::map<QString, std::pair<account::Info, std::shared_ptr<Database>>>
Basically we need to get the 'first' of the pair for 'account::Info'.
So we now do that.
* src/libclient/avmodel.cpp:
* src/libclient/callbackshandler.cpp:
* src/libclient/contactmodel.cpp:
* src/libclient/conversationmodel.cpp:
* src/libclient/database.cpp:
* src/libclient/namedirectory.cpp:
* src/libclient/newaccountmodel.cpp:
* src/libclient/newcallmodel.cpp:
* src/libclient/newdevicemodel.cpp:
* src/libclient/peerdiscoverymodel.cpp:
* src/libclient/pluginmodel.cpp:
* src/libclient/smartinfohub.cpp:
* src/libclient/vcard.h:
* src/libclient/authority/storagehelper.cpp: Replace Qt's 'foreach'
with 'Q_FOREACH' and its 'emit' with 'Q_EMIT' because in the client-qt
code base we have '-DQT_NO_KEYWORDS' to avoid conflicts with other
libraries we use.
* cmake/FindLibJami.cmake: Import cmake/FindRing.cmake from the
jami-libclient.git repository. Then, rename RING_BUILD_DIR to
LIBJAMI_BUILD_DIR (though the old name is still supported for now).
Also update other references of Ring to Jami. Further, add additional
calls to 'find_library' to make sure specified local paths for libjami
are checked before system-wide ones (in case of older/obsolete libjami
being available system-wide, which might happen on GNU/Linux systems).
* translations/lrc_*.ts: Import translation files from the libclient
repository. The message location paths were corrected by running
"sed -i 's|../src|&/libclient|g' lrc_*.ts" in 'translations/'.
.tx/config: Add section for the newly-imported libclient translations.
* CMakeLists.txt: Reformat, plus various fixes and cleanups, such as
changing indentation to 2 spaces and wrapping lines at 70 characters,
renaming the parent directory of translations from 'ring' to 'jami',
and using all lowercase function calls. Also add copyright headers.
* src/app/appsettingsmanager.cpp:
(AppSettingsManager::loadTranslations):
* src/app/utilsadapter.cpp (UtilsAdapter::supportedLang): Update to
adapt to the renaming of the parent directory of translations from
'ring' to 'jami'.
GitLab: #748
Change-Id: I86e3b0fb30e554755023e7b858b6a0d132cd59ab