-
Notifications
You must be signed in to change notification settings - Fork 52
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
Add support for Akonadi / Tab KAddressBook greyed out #90
Comments
Yes, this is a known problem. |
Twinkle 1.9.0 / Qt 5.6.1 |
THAT'S a fast answer :-) no workaround? |
Nope. For time being, I'm waiting to see if KDE PIM even makes it into KDE 5. It's still based on KDE 4. |
To be honest I'm not really interested in KAdressBook :-) I've my contacts centrally store in my private OwnCloud instance, and KAddressBook is able to connect to a cardDAV share.... But I guess also no plans for cardDAV? Would be bloody cool, as qutecom didn't have, and e.g. linphone afaik also not |
Correct me if I'm wrong, but isn't this now supposed to be handled, for better or worse, through the beast that is Akonadi? Out of curiosity, I looked into migrating to Akonadi over the past few days. I'll spare you the details of that painful experience (it involved a lot of cursing), but it has unfortunately not been a resounding success. Basically, although I can talk with the Akonadi server, all I'm getting is an empty list of contacts. The data is there, and KAddressBook (the application) can see it fine, but it apparently remains out of my reach. This is rather similar to what someone reported on the kde-pim mailing-list nearly six years ago. The answer, as with many such cases, involved Nepomuk, now known as Baloo. So, what the heck, I've now installed it, and it's currently busy indexing all my files. We'll see if that changes anything, but I'm not holding my breath. (sigh) |
Hi. alot happened since 2016. Could you look at the issue nowadays? Integration with kaddressbook would be wellcomed. |
I noticed the greyed-out kaddressbook tab today and found this issue. |
Thanks for the reminder; glad to know there's an actual interest in this feature. I had already started working on this on a few occasions in the past two years, probably completing over 90% of the job, only to give up and put it aside each time after getting into yet another fight with Akonadi. I guess this is the shot in the arm I needed to motivate me to finally finish the damn thing. 😄 Thanks |
Akonadi (https://community.kde.org/KDE_PIM/Akonadi) is the PIM Storage Service in KDE Frameworks 5, effectively replacing the KAddressBook API previously used by Twinkle 1.4. Applications now connect to the Akonadi server, and agents synchronize the data with various backends. The user interface was left more or less unchanged from Twinkle 1.4, to minimize the size of this patch. A few notable differences: - The address book now features a "Synchronize" button, to synchronize each Akonadi "collection" (folder). For remote agents (e.g. CardDAV, Google), this will update the list of contacts on the Akonadi server. - All collections marked as syncOnDemand ("Synchronize when selecting this folder") will automatically be synchronized on startup. - Data changes on the Akonadi server (either from agents or other applications) will be automatically picked up while Twinkle is running. [ This option is not enabled on Travis CI, as KDE Frameworks 5 is not available on Ubuntu trusty. ] Closes #90.
I have now tentatively added Akonadi support to Twinkle, pushed to the BuildingAs stated in the README, in addition to the usual dependencies, you will also need development files for Akonadi (core library) and KContacts. (On Debian/Ubuntu, these are provided by the SetupMake sure Akonadi has been installed, configured, and is working correctly (obviously). You will also need another application, such as KAddressBook or KMail, for configuring agents and managing your list of contacts. If the Akonadi server is not already running, it will be started automatically when launching Twinkle. Unfortunately, there are some problems with this (see below). For now, you should make sure to start the server beforehand (either automatically by another application, or manually with FeaturesAll your Akonadi contacts (that have a phone number) should be listed in the address book under the Akonadi contacts tab. Their name should appear in the incoming call pop-up, and their picture should be displayed in the main window during a call. (That picture should eventually also be displayed in the incoming call popup; this will be submitted in a separate pull request for now.)
Server auto-startAs mentioned before, if the Akonadi server is not initially running, it will be started automatically when launching Twinkle. Aside from being annoyingly verbose when run in a terminal, there are some problems with this, as
A simple way to work around these issues is to use a small wrapper to clean things up before starting #!/usr/bin/env python3
#
# Akonadi Server wrapper for Twinkle
#
# This requires Python 3.3 or later; it may also be Linux-specific.
import os
import signal
# Full pathname of the real Akonadi server
TARGET = "/usr/bin/akonadi_control"
# Reset the signal mask
signal.pthread_sigmask(signal.SIG_SETMASK, [])
# Close all file descriptors, except for stdin/stdout/stderr
for fd in [int(f) for f in os.listdir("/proc/self/fd")]:
if fd > 2:
try:
os.close(fd)
except OSError:
pass
os.execl(TARGET, "akonadi_control") Bugs
|
Hi. UPDATE |
@swamp-fish Thanks for giving this a try! Did this bug only happen once, or is this something you can reproduce? |
@fbriere Hi, yes, it happens every time. Basically Synchronize button is the culprit of hiding the data, its not cleared, it is still there but you can't access it even with Kaddressbook. |
@swamp-fish This sounds like a bug with Akonadi itself, but I guess it's possible that I did something wrong nonetheless. Unfortunately, I'm unable to reproduce this bug, so I'll need your help to debug this a bit further. I've (temporarily) created the Thanks in advance for your help! |
@fbriere Thank you for adding this feature! This is what I was missing and looking for! I'm going to test it soon and give you some feedback! |
Adding the build option from @fbriere's post doesn't seem to work any more. The KAddressBook tab is still grayed out for me. I built from the AUR package as well as here from source. |
Akonadi (https://community.kde.org/KDE_PIM/Akonadi) is the PIM Storage Service in KDE Frameworks 5, effectively replacing the KAddressBook API previously used by Twinkle 1.4. Applications now connect to the Akonadi server, and agents synchronize the data with various backends. The user interface was left more or less unchanged from Twinkle 1.4, to minimize the size of this patch. A few notable differences: - The address book now features a "Synchronize" button, to synchronize each Akonadi "collection" (folder). For remote agents (e.g. CardDAV, Google), this will update the list of contacts on the Akonadi server. - All collections marked as syncOnDemand ("Synchronize when selecting this folder") will automatically be synchronized on startup. - Data changes on the Akonadi server (either from agents or other applications) will be automatically picked up while Twinkle is running. [ This option is not enabled on Travis CI, as KDE Frameworks 5 is not available on Ubuntu trusty. ] Closes #90.
Akonadi (https://community.kde.org/KDE_PIM/Akonadi) is the PIM Storage Service in KDE Frameworks 5, effectively replacing the KAddressBook API previously used by Twinkle 1.4. Applications now connect to the Akonadi server, and agents synchronize the data with various backends. The user interface was left more or less unchanged from Twinkle 1.4, to minimize the size of this patch. A few notable differences: - The address book now features a "Synchronize" button, to synchronize each Akonadi "collection" (folder). For remote agents (e.g. CardDAV, Google), this will update the list of contacts on the Akonadi server. - All collections marked as syncOnDemand ("Synchronize when selecting this folder") will automatically be synchronized on startup. - Data changes on the Akonadi server (either from agents or other applications) will be automatically picked up while Twinkle is running. [ This option is not enabled on Travis CI, as KDE Frameworks 5 is not available on Ubuntu trusty. ] Closes #90.
@wazlecracker This feature has not been brought into the main branch yet; you need to checkout/download the (Incidentally, I've just rebased the |
KAdressbook (and the framework behind, Akonadi) hits the version v5.15.3 on its plattform KDE Plasma in v20.07.80 and will be also part of upcoming Debian 11 Bullseye. So please make it possible to establish a contact to Akonadi/KAddressbook. This will extent Twinkles possibilities into an unlimited space.... Thanks a lot!! |
It seems this branch needs some testing before merging. Willing to do so. Going to report my results. |
Hello fbriere and others, I'm very glad that I found this discussion, because I've been looking for a solution for quite a while. Please find my structured bug report hereunder. Klaus Bug Report: Access KAddressBook through TwinkleSteps to reproduce the issue
What's the expected result?
What's the actual result?
My System DetailsOperating System: openSUSE Tumbleweed 20220117 Twinkle 1.10.2 - 14 February 2018 |
I gave up on using Twinkle because the bugs were too many and I do not have time to work on it. |
Just out of curiosity: What do you use? I am still searching for a good SIP client with encryption. I ended up using linphone but this is also far from perfect. |
@fbriere
Please find the log file attached and advise. |
Thank you for your help!
Nah, just ignore those. (Our
No, that's just the library; you need libxml2-dev as well. (If you were running Debian/Ubuntu, I'd offer to build you a packaged copy, but I unfortunately don't know anything about openSUSE.) |
I managed to install all missing cmake elements bit by bit. Then I ran make, which looked not too bad in the beginning but stopped at 84%, as you can see from the attached terminal outputs. I guess openSUSE is not that different from other distributions. At the end, it is still Linux... |
When compiling, you need the That said, CMake should have caught this from the start. Did you get the
It doesn't matter either way. |
I have got these packages installed: |
(sigh) Akonadi I've now pushed a fix on the |
This morning I downloaded the the code from the Akonadi branch and ran through the whole build procedure without any major problem. There were some warnings, but nothing alarming (I hope). I am attaching the outputs of all three steps to let you make your analysis.
switching is done with Pulse-Audio. |
Does this perchance mean that you have an actual Diamondcard account? I've been looking for someone to give me a hand with #186, so let me know if you're up for it.
Two things come to mind:
Please do! Thanks! |
For the record, this is now covered by #259. |
Yes, I have got a Diamondcard account that I have been using for years. However, I only use it for calls, not for receiving calls as I am not on the computer all the time. |
I have done as requested:
|
Cool. I'll provide more information in #186.
It asks Akonadi to synchronize (update) all its collections (folders). So, if you have any modifications on a remote backend (such as your Nextcloud setup) which haven't been propagated to your local Akonadi server yet, they should be transferred after hitting that button. (And Twinkle should be notified and pick them up automatically.) |
As I have explained in my answer on February 23rd, Twinkle reflects all modifications I apply to my KAddressbook immediately. So, it is even not necessary to hit the Synchonize button. It is done before you can hit it. |
But if you add a contact on your phone and push it to your Nextcloud server, don't you have to do something in KAddressBook to bring that contact back to you (or vice versa)? This is what that button does as well. (To be clear, whether you synchronize in KAddressBook or Twinkle, the effect will be the same, and that contact will be available to all Akonadi applications at once.) |
Following up on your previous comment in #186:
I'm a bit confused: Are there actual initials in Akonadi? Or did Twinkle truncate the name? Could you provide me with some exact field/value data that replicates this?
If this happens again, see if "Reload" fixes it. (It basically reloads the list from scratch, just like when Twinkle is started.) |
Quoting from your previous comment in #186:
Would it be possible for you to try temporarily disabling that synchronization, pushing a contact from your phone to Nextcloud, and hitting the "Synchronize" button in Twinkle, to confirm that it's working correctly? (I wanted to try it myself, but GMail is all I have, and it no longer works with Akonadi. Bummer.) Incidentally, I just pushed a fix related to synchronization, so if you could compile the current version before testing, that'd be really swell. Thanks! |
I'm afraid, I cannot help you. My Nextcloud instance sits in a NAS. Both my desktop computer and my phone synchronize with this Nexcloud instance. Of course, I could disable synchronization between them. Then a newly created contact would never go from the phone to Nextcloud. The same applies for the desktop computer. So, Nextcloud running in a NAS container is the master. All others retrieve their information from this master. |
Ah! It took me ages to realize that I could hit that Yes, I can reproduce this, even without Twinkle running. The behavior is somewhat inconsistent, and seems to hinge on whether Kontact thinks that the
So, the name components are there, but the full name is left blank. I definitely suggest you file a bug against Kontact/Akonadi over this. (In the meantime, one trick I've found that seems to work is to add and immediately delete a space at the end of the full name. The cursor is already there after setting the components, so it's just two extra keystrokes.) |
Since all Akonadi applications (that I have seen) provide a way to synchronize/update collections/folders, I thought it would probably be a good idea to do so as well. However, in retrospect, I would guess that 70% of all my troubles with Akonadi were due to this single feature. And to this day, I still can't make sure that it's working correctly. So I guess it's time for me to call it quits, and stop toiling over something that most people will never use anyway. I have now pushed a new version, devoid of that cursed button. (I've left "Reload" in place for now, just in case something goes wrong and reloading fixes the issue.) |
Akonadi (https://community.kde.org/KDE_PIM/Akonadi) is the PIM Storage Service in KDE Frameworks 5, effectively replacing the KAddressBook API previously used by Twinkle 1.4. Applications now connect to the Akonadi server, and agents synchronize the data with various backends. The user interface was left more or less unchanged from Twinkle 1.4, to minimize the size of this patch. A few notable differences: - The address book now features a "Synchronize" button, to synchronize each Akonadi "collection" (folder). For remote agents (e.g. CardDAV, Google), this will update the list of contacts on the Akonadi server. - All collections marked as syncOnDemand ("Synchronize when selecting this folder") will automatically be synchronized on startup. - Data changes on the Akonadi server (either from agents or other applications) will be automatically picked up while Twinkle is running. Closes #90.
Thanks to your remark, I did the test again without keeping the Twinkle window open. I confirm your observation that KAddressbook's strange behaviour has nothing to do with Twinkle. I thought it had, because when I tested the matter in KAddressbook only, I did it only once, and it worked. But as you say, the behaviour is inconsistent, it requires several attempts to see it. |
I am desperately sorry that I cannot help you testing this button. As I said, in my setup, I even do not have time to hit this button. In the second I release a modification in any contact of KAddressbook, it is showing up in Twinkle's "Akonadi contacts" tab. |
Hi all. Newbie for twinkle, installed for the first time after qutecom stopped working for new OpenSuse 42.2 release. Twinkle itself works from begin on, cool !!!
Only issue I have is that integration to KDE's KAddressBook seems not to work (anymore?). If I klick in the "Contacts" button, on the dialogue "Select Address" ("Twinkle - Auswahl Adresse" in German) only tab "local addressbook" is available. Tab "KAddressBook" is greyed out and not usable.
FYI KDE/Plasma 5.8.3, KAddressBook 4.14.10
The text was updated successfully, but these errors were encountered: