Simple-Contacts icon indicating copy to clipboard operation
Simple-Contacts copied to clipboard

Address field

Open solokot opened this issue 6 years ago • 50 comments

The ability to correctly enter a detailed contact address: separate fields for the country, region, city, street, etc. VCF format implies such separation and periodically these fields are used for sorting when working with contacts.

solokot avatar Jan 24 '19 09:01 solokot

Please consider to support structured address fields.

https://www.davx5.com/faq/entering-structured-addresses

If someone edits an address, synchronized from nextcloud, the structered address will be destroyed by storing whole Address in street. This is very bad, because it destroys the addresses in all synchronized devices.

Google has fixed this in newer versions of their contacts app. But for LineageOS users without Google Apps there is currently no solution for this problem.

erwin68 avatar May 14 '19 13:05 erwin68

Are there plans to add this feature to one of the next releases? It's such a good app and it's realy annoying when the sync destroys the address format.

JasMan78 avatar Sep 06 '19 21:09 JasMan78

it might be added later, there are some more important issues with the app for now

tibbi avatar Sep 07 '19 13:09 tibbi

I'm also missing this feature in LineageOS, so your app would solve the problem when you implement this.

Russe avatar Oct 03 '19 09:10 Russe

I would also like to see separated input fields, such as CardBook for Thunderbird uses it:

image

This even gives you a default value for the Country, which is a real bonus.

sphh avatar Feb 13 '20 11:02 sphh

Proper address fields would be much better than the current situation, where every address change in Simple-Contacts malformes the address.

Atalanttore avatar Jul 20 '20 14:07 Atalanttore

Is there maybe an actual status on this? I am also davx5 / Nextcloud sync user whose addresses get destroyed when edited in the app.

patterchon avatar Sep 09 '20 14:09 patterchon

@tibbi I would like to have a go at this, but I saw #156 and am not sure whether you would accept such a contribution now?

I think the structured inputs would fit nicely into a dialog just like the group selection and the date picker.
It is probably not necessary to make the structured editing configurable in the settings. The current behaviour would stay almost the same. One would just use the "Street" field to input the address like it is now and ignore the rest of the address fields.

If you still think the single input is the way to go I would at least try to prevent parsing the address when it hasn't changed. This would enable editing other fields without messing up the address structure.

lukashass avatar Sep 28 '20 00:09 lukashass

I want to keep the one liner, splitting it is a useles complication. Not sure what you mean by preventing the parsing when it hasnt changed, but if it fixes some bugs, just go ahead.

tibbi avatar Sep 28 '20 08:09 tibbi

@tibbi, can you please recap for all of us, why you believe that entering an address in one field with newlines separating the different parts of the address is advantageous compared to a structured input?

If you have your contacts in many different countries, personally I find it much easier to enter the addresses using a structured mask, especially if the fields auto-suggests contents from already entered entries. This is not possible with a one-liner and helps to keep the data consistent throughout your address book (e.e. not having entries of Praha, Prague, Prag for the same city). This also helps when I want to search for all persons in Praha!

sphh avatar Sep 28 '20 09:09 sphh

I dont like complicating things unnecessarily, Google Contacts has only one field too and it is by far the most widely used Contacts app. 99% of users seems to be satisfied with it. You can already search "Praha", the top menu search searches across all fields. Having the address split into multiple fields wouldnt prevent you from naming it differently anyway.

tibbi avatar Sep 28 '20 10:09 tibbi

I would not say, that Google gets everything right … If that were true, there would be no Simple Apps! Look at the success of CardBook, which introduced structured input some time ago. If that were a problem for many users, they would complain bitterly about this change, but I could not find any relevant issue at all. If that change to a structured input were that bad, CardBook would have lost a lot of users, which very obviously have not happened. What does that tell us? That most of the users are just to lazy to suggest any improvements. It is save to assume, that a few people voicing their opinion actually counts for many, many others. Hence I would also be very cautious to use "to not suggest an improvement" synonymously with "to seem to be satisfied with it" without factoring in human laziness and lethargy … ;-)

You are right, structured input it does not prevent me from naming it differently, but it helps me to fill in all fields. If it also has automatic incremental suggestion, e.g. if I start typing "Pra" in Thunderbird/Cardbook, it shows me my previous entries, in this case "Praha", it helps me to select the right entry. But it would not keep me from entering "Prahran", if I really want to add an address in that town.

You can also see this as a (soft) saveguard against typos and keeping the address book consistent. Without this, some addresses would never be found without much effort and disappears forever.

For me, Simple Contact's behaviour makes it more complicated for me, because I have to edit all addresses entered on the go later on my laptop to get it into a format I need.

Why do I need this structured format? If you use your addresses for e.g. personalized letters with the mail merge function of a word processor, you do need the addresses in structured format.

Maybe many people use Simple Contacts only on their mobile phone. They most likely would not notice any problems with a structured input, but for all of us, who synchronize the addresses with other programs and use them for other tasks as well, would benefit from a structured input.

I believe that both approaches by @lukashass (https://github.com/SimpleMobileTools/Simple-Contacts/issues/364#issuecomment-699707833) and #156 are good approaches: No changes for your user base, who do not care, but a big improvement for "power users". Nevertheless I want to suggest a third approach:

  • For entering a new address, offer a button beside the simple textbox, which opens a dialog for structured input. So the users wanting a structured input can do it there.
  • For editing existing addresses:
    • If the entry is already structured, tapping in the edit field would open the dialog for structured input (or make the field not editable and tapping the button opens the dialog as described above).
    • If the entry has just a street name, editing works as it does now. With the button described above, the dialog opens with the street value copied in the appropriate field.

This approach would not need any configuration, is transparent to the user and does not change anything for existing users not wanting to enter addresses in a structured way.

sphh avatar Sep 28 '20 11:09 sphh

There was a screenshot of googles contacts version 2.4 added to https://www.davx5.com/faq/entering-structured-addresses which provides proper address fields.

I found this old version at apkmirror.com and installed it on lineage16 tablet. And yes, there are proper address fileds, in edit screen. But I have not yet tested whether address changes are correct synchronized to my nextcloud.

erwin68 avatar Sep 28 '20 19:09 erwin68

Thanks @erwin68. Looks like the Google Contacts app works like my suggestion regarding editing existing addresses! I was not aware of this. It simply does not support entering a structured address when there is no such address stored yet. For Simple Contact to be better, there should be a way to enter a structured address into a new contact (or an empty address field)!

sphh avatar Sep 28 '20 19:09 sphh

"It simply does not support entering a structured address when there is no such address stored yet."

If the contact has not yet an adress, then there is an option "weitere Felder" (more fields?) in the edit screen. This brings up the fields for street, city, postal code etc.

erwin68 avatar Sep 28 '20 19:09 erwin68

Brilliant! Even the first part of my proposal is not invented by me. Looks like the experts came up with the very same approach! If this has Google's blessing, it must be The Right Way …

sphh avatar Sep 28 '20 20:09 sphh

@tibbi Long term google 'haters' were most likely already using a predecessor app to davdroid made by dmfs GmbH, a German company, for syncing calendars and contacts. The company provided 2014 a contact editor app (org.dmfs.android.contacteditorpp) that let you edit every single entry in address field. And enter a ton of other things (webpages, organizational information, anniversaries, a note field) but the user can configure what to display in what order or to merge accounts. Also the field to choose the right carddav account was on top. This is important in environments when you have different accounts for business / private use.

As is written above - most users don't complain about missing functions, they just use other apps. Like me. I like your contact app as replacement for google but I am using a 6 year old app for entering my addresses. So there is a need out there in business environment.

User interfaces are most important in apps (other than privacy) and certainly the reason why I'm still looking for some replacements and / or stick to apps that a ≥ 5 years old. Or switch the app if a function is missing. (Hint: missed calls that are not shown in a dialer app.)

This is also the reason why I once in a while write comments like this one :-)

Just a comment. I am still a fan.

tusch001 avatar Sep 28 '20 20:09 tusch001

contacts editor from dmfs didn't work anymore on Lineage16/Android9 and developer didn't respond to inquiries.

I just tested sync of address data, modified by google contacts app 2.4, with nextcloud. It works. Next step will be whether it works with android10 too.

erwin68 avatar Sep 28 '20 22:09 erwin68

I'd also like to add my voice in support of structured address fields (config: Simple Contacts, Thunderbird Cardbook, NextCloud). Enjoying Simple Contacts greatly, thanks for all your work on it. I hope you can consider this feature at some point.

aGrimRepoMan avatar Oct 27 '20 17:10 aGrimRepoMan

I totally see the reason for keeping it a simple field for the end-user. But it's a pity that syncing addresses with Nextcloud basically doesn't work as expected. ~~I'm wondering: rather than both positions stuck in the tranches, isn't it possible to have both, somehow? I reckon it would be quite a bit of work, but maybe the newlines in Simple Contacts could be used as 'next field' indicators for contact cards. The first line could then be stored in the Address field, with subsequent lines stored in subsequent fields.~~

EDIT: Actually the behaviour described on the DavX5 FAQ page, referenced by @erwin68, can work nice (and probably more reliable than what I described). This keeps the interface as simple & clean as it is for most users.

If a structured address is known (for instance, because DAVx⁵ downloaded it from your server), the "formatted address" will be shown and not the single components (street, etc.). However, if this single field is empty and you enter something into it, it will be stored as "street".

An option to open a dialog as suggested by @lukashass (when creating/editing a contact) would be nice, but I can totally live without it.

Already with the above improvement (display separate fields when a contact's source data has them, no dialog) I can manage this info elsewhere, and at least corrections/updates to the data would be synced properly (which currently isn't the case: #678). @tibbi Would you accept a PR that implements this 'hidden' behaviour? (Well hidden except to those using structured fields.)

keunes avatar Apr 29 '21 20:04 keunes

I want to keep the one liner, splitting it is a useles complication.

If I am really honest, the Simple Contacts app has a partially useless sync feature because of this one liner... addresses are synchronised incorrectly if they are entered in the app first! This is a real hassle when I am on my laptop and have the remote address book open... Have to reformat every address remotely.

Hope you can reconsider this, I obviously appreciate your work on the entire suite of Simple apps.

ghost avatar Jul 09 '21 10:07 ghost

it synchronizes just fine in the vast majority of cases, only some services cannot handle it properly

tibbi avatar Jul 09 '21 10:07 tibbi

it synchronizes just fine in the vast majority of cases, only some services cannot handle it properly

I have no way of knowing how many people are affected, but I do observe that this open issue has the most comments for the app...

ghost avatar Jul 09 '21 10:07 ghost

sure, there are some commenters, but the app has half a million active users :)

tibbi avatar Jul 09 '21 11:07 tibbi

And I think the following suggestion by @erwin68 shouldn't affect those half million :)

If a structured address is known (for instance, because DAVx⁵ downloaded it from your server), the "formatted address" will be shown and not the single components (street, etc.). However, if this single field is empty and you enter something into it, it will be stored as "street".

What do you think of this proposal, @tibbi?

keunes avatar Jul 11 '21 13:07 keunes

it synchronizes just fine in the vast majority of cases, only some services cannot handle it properly

@tibbi: It is not just about synchronizing properly, where most services will but the STREET field into the STREET field, it's about entering the data in a structured way (and editing the data, if it was entered in a structured way).

The vCard RFC states explicitly, that there are fields for:

  • the street address;
  • the locality (e.g., city);
  • the region (e.g., state or province);
  • the postal code; and
  • the country name

Hence if you want to keep RFC6350 conformability, these fields should be implemented …

There were many suggestions how to implement this in a transparent way, which would not break to upset your ½ million users and who knows, you might gain another ¼ million users with this change?

And please do not forget, that every user here probably speaks for 10 000 users ‘out in the wild’. Or have you heard back from all your 500 000 users, that they like this feature and want to keep it as it is?

Please bite the bullet and bring yourself to implement structured address input. You will be our hero!!

sphh avatar Jul 11 '21 14:07 sphh

Hopefully you can find a way to implement a way to enter a structured address. I really, really miss this feature a lot.

Offerel avatar Sep 20 '21 19:09 Offerel

I also miss this feature. Google Contacts have all fields and its working great with my Nextcloud and DAVx. But its Google Contacts... I prefer apps like Simple Contacts. Anyone found an alternative app which supports different address fields?

xelayz avatar Jun 14 '22 18:06 xelayz

Since Android 12, Samsung Contacts has also separate fields for contacts addresses synced via DavX5.

Offerel avatar Jun 14 '22 18:06 Offerel

Offerel wrote:

I also miss this feature. Google Contacts have all fields and its working great with my Nextcloud and DAVx. But its Google Contacts... I prefer apps like Simple Contacts. Anyone found an alternative app which supports different address fields?

There is an app on F-Droid called "OpenContacts":

  • https://f-droid.org/en/packages/opencontacts.open.com.opencontacts/

It seems to support structured address field editing.

Tibbi, does it perhaps provide a model for Simple Contacts?

aGrimRepoMan avatar Jun 15 '22 12:06 aGrimRepoMan