Skip to content

WIP First draft for Charging Station Socket Type quest#6732

Draft
mcliquid wants to merge 5 commits intostreetcomplete:masterfrom
mcliquid:new-quest-socket
Draft

WIP First draft for Charging Station Socket Type quest#6732
mcliquid wants to merge 5 commits intostreetcomplete:masterfrom
mcliquid:new-quest-socket

Conversation

@mcliquid
Copy link
Copy Markdown
Contributor

@mcliquid mcliquid commented Feb 13, 2026

That was a wild journey through compose 🤣 This is really a very early prototype. The app runs and you can select multiple plugs - so far, so good. Currently, however, everything is static; there is no distinction between countries. The socket selection also needs to be expanded and then linked to the future countrymetadata YAML. But you can already get a feeling for how it could work in the future.
This brings us to the tagging question:
Is it sufficient to tag each socket with a yes or would it be necessary to add an input field to the UI for each socket so that the number of sockets can also be specified? However, this could appear visually chaotic.

Closes #5164

image

So far running and tagging is working, UI is not beautiful, but works.
@paulklie
Copy link
Copy Markdown
Collaborator

paulklie commented Feb 14, 2026

#5164 For reference

Is it sufficient to tag each socket with a yes or would it be necessary to add an input field to the UI for each socket so that the number of sockets can also be specified? However, this could appear visually chaotic.

Aye, we would need to tag the amount of sockets, since that is normally what the value of the socket:type tag.
Maybe we could use the (new) maxweight menu as an inspiration? Here you can add multiple signs and type numbers for each.

@westnordost
Copy link
Copy Markdown
Member

Aye, we would need to tag the amount of sockets, since that is normally what the value of the socket:type tag.

yes is a valid value. Couldn't it be a follow-up quest?

@mcliquid
Copy link
Copy Markdown
Contributor Author

@westnordost @paulklie Thank you for your feedback so far. I started reuse the maxweight-Quest but I have some UX-related questions.
(Please ignore the icons for the time being)

I thought it would be cool to show all possible sockets and for each one selected an input gets visible and you can insert the number. But in the end it seems to be a waste of the available screen-area. I'm wondering whether it wouldn't make more sense to display all sockets below each other and only save the ones in which a number is entered?
Screen_recording_20260214_192635.webm

yes is a valid value. Couldn't it be a follow-up quest?

I just read it as I was typing after switching to number input. But I can also dismiss the commit?

@mcliquid
Copy link
Copy Markdown
Contributor Author

After testing the quest a few times, I am left with three options UI-wise:

  • Option A – like MaxWeight: After selecting a socket type, a number input dialog opens (repeat for each socket)
  • Option B – directly in the grid: Plus/minus buttons directly below each socket icon (Works with a maximum of 4-5 sockets, after that it becomes confusing)
  • Option C – combination: First multi-select → then query number per type (as shown below)
    1. User selects the available types (grid)
    2. A small number query then appears for each selected type
    3. Only types with a quantity > 0 are saved

Current behaviour:
Starting the quest:
image

For each selected socket you can specify the number of sockets:
image

Check Tagging:
image

@westnordost
Copy link
Copy Markdown
Member

westnordost commented Feb 15, 2026

While option B might be slightly faster for the user, I find it better for consistency when the UI is similar to maxweight.

Option A – like MaxWeight: After selecting a socket type, a number input dialog opens (repeat for each socket)

That's not how maxweight form works, though. Have another look at the form. Maxweight-alike would look something like this

image

But I am really not sure whether we shouldn't keep it simple and just ask for which are present at all, tag yes, and then in a follow-up quest ask about the number. Implementation would be easier, at least. Also, that's the most important information, which socket type is available.

@paulklie
Copy link
Copy Markdown
Collaborator

then in a follow-up quest ask about the number.

This would include a quest for each possible socket right? So 10+ new quests, which seems a bit excessive to me.

Also it would result in alot of changsets, which might lead to other users complaining. Imagine a charging station with 3 types of plugs, we would now have 4 change sets for adding these sockets instead of one.

@westnordost
Copy link
Copy Markdown
Member

This would include a quest for each possible socket right? So 10+ new quests, which seems a bit excessive to me.

No, it would be just one and the same quest type that would pop up several times in a row for the same object (if that station has several different sockets)

@paulklie
Copy link
Copy Markdown
Collaborator

Also such a solution would require a lot more time for the surveyor. Since they would spend additional time selecting and submitting the quests.

@mcliquid
Copy link
Copy Markdown
Contributor Author

Option A – like MaxWeight: After selecting a socket type, a number input dialog opens (repeat for each socket)

That's not how maxweight form works, though. Have another look at the form.

Okay, now I'm confused. Do we have different versions of the quest?
I only see an “Add sign” button in the maxweight quest, then a selection of signs appears. I can only select one at a time. After confirming, the sign appears in a list where I can enter the number, then I can select more signs using the same principle.
Here's a video of what the maxweight quest looks like for me:
https://github.com/user-attachments/assets/e7d301cf-4ceb-4048-8b77-ce28304dd73b
Like "After selecting a maxweight sign, a number input dialog opens (repeat for each sign)" --> "After selecting a socket type, a number input dialog opens (repeat for each socket)".

Anyway, it's your repo, you have the force to decide.

@westnordost
Copy link
Copy Markdown
Member

westnordost commented Feb 15, 2026

@paulklie

The quest form would then decide for which of the missing socket types it is going to display the

[ ] x <socket type>

UI.

Or alternatively, it would ask for all at once (necessarily pre-filling those that already have been defined). E.g.

[ 2 ] x type2
[   ] x domestic

However, that would make the exception case more difficult to handle: I.e. what if the listed types are not correct?

@westnordost
Copy link
Copy Markdown
Member

Okay, now I'm confused. Do we have different versions of the quest?

No, you have the same version of the quest. But you see, there is not a dialog that asks to input the number, you input the number on the main form but select the maxweight sign type in a dialog. You can also add several signs and remove them again using the trashcan icon.

@mcliquid
Copy link
Copy Markdown
Contributor Author

But you see, there is not a dialog that asks to input the number, you input the number on the main form but select the maxweight sign type in a dialog. You can also add several signs and remove them again using the trashcan icon.

Okay, the only difference: The maxweight quest displays an additional dialog box, which I solved in a single view. The path for the user is virtually identical.

@westnordost
Copy link
Copy Markdown
Member

Also such a solution would require a lot more time for the surveyor. Since they would spend additional time selecting and submitting the quests.

Not true. Including OK button tap and taps related to the keyboard, for a hypothetic charging station with 2 type2 and 1 domestic, there are about 12 taps for the maxweight UI vs about 12 taps for the mutliple quest UI.

maxweight:

  1. tap quest
  2. tap "add socket"
  3. select type2 socket
  4. tap on input field (keyboard opens)
  5. tap "2"
  6. (optionally) tap ✔️ (to close keyboard)
  7. tap "add socket"
  8. select domestic socket
  9. tap on input field (keyboard opens)
  10. tap "1"
  11. (optionally) tap ✔️ (to close keyboard)
  12. tap OK

atomic quests:

  1. tap socket types quest
  2. tap type2
  3. tap domestic
  4. tap OK
  5. tap socket amount quest
  6. tap input field (keyboard opens)
  7. tap "2"
  8. tap OK
  9. tap socket amount quest
  10. tap input field (keyboard opens)
  11. tap "1"
  12. tap OK

@westnordost
Copy link
Copy Markdown
Member

@mcliquid 's "option B" has of course by far the fewest taps: just 5 for this example.

@westnordost
Copy link
Copy Markdown
Member

westnordost commented Feb 15, 2026

Pro maxweight / "option B"

  • no "intermediate" state (that may as well stay that way if user didn't solve the follow-up quests just after)
  • option B only: less taps. But: unique more complex UI

Pro atomic quests

  • simpler implementation
  • simpler more atomic UI (users can contribute basic information quicker)
  • we offer to catch the ~2% of taggings that currently just have yes with that quest

@mcliquid
Copy link
Copy Markdown
Contributor Author

My opinion so far:

Option A – Similar to MaxWeight (Add → Select type → Enter number → Repeat)

Super heavy UI for objects with 1–2 connector types

Option B – Directly in the grid with +/- buttons

Definitely the fastest UX (fewest taps), ideal for frequent 2–4 types, but UI quickly becomes confusing with >4 types
but Standalone custom UI has a higher maintenance risk?

Option C – Multi-select → then number per type (two-stage)

Clear distinction between type and number but requires more taps and doesn't really offer any clear advantage.

Atomic Quests (D?) (first type yes/no, then separate number quest)

Simple implementation, simple UI - but more changesets, more quest popups in total, intermediate states possible if "amount quest" is not activated. My biggest fear would be that Person A tags the different sockets and Person B then has to enter the numbers, but has a different understanding of the sockets, making it unnecessarily complicated to "correct" this. Just like with the sidewalk (ah, no, wrong, sidewalk is completely different here → recording starts all over again).
And when I look at taginfo, “yes” does appear as a value, but not very often. StreetComplete would massively increase the use of a value that has been relatively underused up to now: socket:type2 is currently the most common socket; of nearly 66k objects, only just under 3% have the value yes. https://taginfo.openstreetmap.org/keys/socket%3Atype2#values

The question is whether, in reality, charging stations with more than 3-4 different types are really more common than rare. And if that were the case, then you should probably make a comment with pictures anyway.

And that would put me personally in favor of option B. But: I don't know if I can manage to create such a UI myself.

@mnalis
Copy link
Copy Markdown
Member

mnalis commented Feb 15, 2026

TL;DR: My current favourite is "Atomic Quests (D?) (first type yes/no, then separate number quest)".

But "Option B – Directly in the grid with +/- buttons" have some nice advantages (but also a huge disadvantage that it is time consuming to use; unless it is modified to allow me to enter "yes it exists, but with uncounted number of sockets" (which makes it even more technically challenging to implement).


Option B – Directly in the grid with +/- buttons

Another advantage of that option, is that it would allow for easy counting of bigger stations (i.e. you could just walk from charging point to charging point and simply press "up" arrow on appropriate type -- for all others methods, if there are more then few of different chargers, you'd likely have to count them somewhere else1 and then enter the sum in the app, which is unusable IMHO (unless on very small charging stations)

And that would put me personally in favor of option B. But: I don't know if I can manage to create such a UI myself.

Doesn't the address number Quest allow for increasing/decreasing housenumber by arrows? Could it be used as an inspiration?

but Standalone custom UI has a higher maintenance risk?

True. But it also allows for other quests which would benefit from that method. 🤷

I'd much prefer if one could also set it to yes instead of the number, see below.


Atomic Quests (D?) (first type yes/no, then separate number quest)

This would also be preferable from "⚛️ Atomic quests: Per quest, only one thing should need to be answered by the user." guideline IMHO.

My biggest fear would be that Person A tags the different sockets and Person B then has to enter the numbers, but has a different understanding of the sockets

It isn't my fear. After all, if the numbers were likely to be counted differently due to different understanding, then such data fails verifiablility principle and is ill-fitted for OSM anyway (and we should stick to unambiguous yes/no only).

But I don't really think such miscounting should be happening often (in which case this is not really a problem).

Simple implementation, simple UI - but more changesets, more quest popups in total

Only if you enable them. 😉

As a bicycle user, I'd stop at electrical car charger station mostly to use air compressor (or buy something at a shop) and be off. So while average electric car user will likely linger for at least half an hour (so has ample time to count stations and micromap everything), I'd be mostly affected by "🐿️ Easy answer: Users are out and about and impatient" tenet.

IOW, I'd add what types of car be charged, but not count them (i.e. I'd have all the counting quests disabled in my my most used preset). If only way to solve quest was to count up all different types of sockets, I'd most likely just fully disable that quest so they'd be left fully unanswered.

So that is a huge disadvantage; unless that "option B" (or whatever) allowed me to easily answer yes (unknown number) instead of exact number of sockets.

* we offer to catch the ~2% of taggings that currently just have `yes` with that quest

This is another benefit of "Atomic quest" approach.

And when I look at taginfo, “yes” does appear as a value, but not very often. StreetComplete would massively increase the use of a value that has been relatively underused up to now

This is however biggest (if not only) possible negative of "Atomic quest" approach that I recognize. But it boils down to how many users are like me which would only add partial information. (and whether we thing if partial information is preferred to no information for such people, and how would the

I would wager that there are significantly more electric car owners visiting those charging stations -- but how much of them are SC users, and how much of them are fully happy with their proprietary charging apps on their mobile phones (and don't care at all about OSM data having the details) is hard to tell. 🤷‍♂️

In any case, it would be borderline (but not really violate) "🚧 Established tags only: No new or unestablished tags should be introduced through StreetComplete" -- the value yes is both documented and used... but StreetComplete might make it more popular that it used to be.

Footnotes

  1. e.g. in notepad or some generic counting app or game token counter app or whatever.... (if it is only two types, and a few of them, you can probably using your fingers on both hands for counting, but when you'd hold the phone then 😄).Or you can holding the counter matrix in your mind, but that is prone to error and stressful

Comment on lines +20 to +23
nodes, ways with
amenity = charging_station
and bicycle != yes
and motorcar != no
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would it be possible to ask for man_made=charge_point as well, and exclude all amenity=charging_station areas that contain a man_made=charge_point? Or is that too difficult or not worth the effort?

My thinking is that for bigger charging stations that are mapped as areas with separate charge points, it is much easier to answer the quest for the charge points individually than having to sum up all sockets from all charge points to answer the quest once for the whole charging station.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, should be possible like this:

val hasChargePointsInside = mapData
                    .filter("nodes with man_made = charge_point")
                    .any { cp ->
                        val cpGeom =
                            mapData.getGeometry(cp.type, cp.id) ?: return@any false
                        bounds.contains(cpGeom.center)
                    }

                if (hasChargePointsInside) return@filter false

https://github.com/Helium314/SCEE/pull/889/changes#diff-659bd9b32ad4bc8e3781b27b07e58d6923a9eb7d4109f4c832587a65ad60b8baR55

@paulklie
Copy link
Copy Markdown
Collaborator

Not true. Including OK button tap and taps related to the keyboard, for a hypothetic charging station with 2 type2 and 1 domestic, there are about 12 taps for the maxweight UI vs about 12 taps for the mutliple quest UI.


Hmm, indeed not as bad as I though.

Though I would still argue that the seperate quests require more time since the user will need to read more text (question text for every socket) etc.

@paulklie
Copy link
Copy Markdown
Collaborator

paulklie commented Feb 15, 2026

I would like to point out that the vast majority of charging stations have very few sockets. For example, for the most common socket, type 2, less than 2% of stations have more than 6 sockets: https://taginfo.openstreetmap.org/keys/socket%3Atype2#values. And 93% have 4 or less.

Additionally, in my experience, the places that have more sockets, tend to be larger charging stations. A user who is here is more likely to be driving, and maybe also waiting to charge, so would have more time available to count all sockets.

Thus I do not think we should be planning to much around these rare cases, and more around the default case: smaller charging stations with 1-4 sockets.

Asking for the amount here might also improve data quality, as simply asking for what sockets exist might lead to users only checking a few sockets, and not surveying the entire (larger) station, and thus missing some other socket types. If they are also asked to count them they might be encourage more to check every charger.


Another advantage of a "maxweight" type solution is that it is easier to correct mistakes.
Imagine for example I survey a charging station with type X and Y chargers. However I mistake charger Y with charger Z, and only discover the mistake when asked for the amount of charger Z after having already filled out the charger X information. Now I need to "unsubmit" both of the previous quests and reenter the previous data again.

@paulklie
Copy link
Copy Markdown
Collaborator

Another point on data quality:, imagine a scenario when using the atomic solution: a charging station with type2 and type2 combo chargers. These look quite similar and can be confused.

  1. User 1 correctly surveys that both sockets are present.
  2. User 2 comes by and is asked how many type2 sockets exist. They do not see the difference between the two and count both sockets ans type2, leading to incorrect data.

An advantage of a maxweight solution is that every "possible" socket is always visible, thus a user is less likely to confuse them.

@mcliquid
Copy link
Copy Markdown
Contributor Author

To better evaluate the UI requirements, I ran a Python-based analysis of the current OSM data in order to better understand common cases and edge cases. Using Overpass Turbo, I retrieved all amenity=charging_station objects worldwide that are not tagged with access=no or access=private.

TL;DR: On average, 1.47 sockets per charging station are tagged.

Details Riding the data-rollercoaster, we do have 175,594 charging stations worldwide. Of these:
  • 86,724 stations (49.4%) have no socket:* information at all
  • 88,870 stations (50.6%) have at least one socket:<type> tag
    I only counted the first level (i.e., socket:type2 and not subkeys such as :output, :voltage, :current) and only values that are not 0, false or no.

This means the analysis measures the number of documented, present socket types per charging station.

Distribution

Number of Socket Types Number of Stations
0 86,724
1 59,695
2 18,180
3 9,652
4 1,246
5 90
6 5
7 2
  • Average (stations with ≥1 socket type): 1.47
  • Maximum: 7

Observations:

  • 34.0% of all stations have exactly one documented socket type.
  • 16.6% of all stations have two or more distinct socket types.
  • ≥5 socket types are extremely rare.
  • Only 7 stations worldwide have more than five documented socket types.

The following stations have 6 or 7 documented socket types:

By the way: I assume that the two “7” objects are duplicates of each other.


Implications for the Quest UI

The data shows:

  • About half of all stations have no documented socket types → worth the effort
  • When socket types are documented, it is usually exactly one → this means you don't have to press “Plus” that often
  • Two types are significantly less common.
  • More than three distinct socket types are rare edge cases.

Since we already know that there are usually only 3-5 relevant socket types per country, I have given it some more thought and would suggest the following UI (rough copy&paste mockup):
image

@westnordost
Copy link
Copy Markdown
Member

I don't quite follow how from that finding (on average a charging point or station has 1.47 different socket types), you arrive at the conclusion that this UI best fitted.
Or is it rather that you find that your finding just doesn't contradict that this UI is good, and better than "option B" I suppose?

@westnordost
Copy link
Copy Markdown
Member

westnordost commented Feb 16, 2026

The following things are difficult with this UI:

  • You always have to pull up the form to see all the values. In particular with sockets that look similar, it can be a problem when not all are visible from the get go

  • (Potentially you have to deal with previously mapped yes values. Or should we just ignore those? It's just 2% of charging points, but that is still a number)

  • (not intuitively possible to select "yes" as mnalis mentioned would be convenient without also specifying the number)

What's extremely convenient, however, is of course the number of taps/swipes.

On average, just 3.5 taps + 0.5 swipes
With atomic quests, it's 9.5 taps

@mcliquid
Copy link
Copy Markdown
Contributor Author

mcliquid commented Feb 16, 2026

I don't quite follow how from that finding (on average a charging point or station has 1.47 different socket types), you arrive at the conclusion that this UI best fitted.

What I meant to say is that first of all, you usually only select between 1 and 2 sockets, and then you can prefer a UI that focuses on 1-type and 2-type cases instead of a UI that allows for an infinite number of combinations. Multi-type cases are important, but secondary in this quest. Extreme edge cases are negligible and can be solved with notes. I wanted to show a UI that works according to the KISS (keep it short and simple) principle and only covers the most important aspects.

  • You always have to pull up the form to see all the values. In particular with sockets that look similar, it can be a problem when not all are visible from the get go

This is already the case for many quests, such as smoothness, surface, recyclingType, etc. This should not be an obstacle.

  • (Potentially you have to deal with previously mapped yes values. Or should we just ignore those? It's just 2% of charging points, but that is still a number)

I would simply overwrite these values with a number and display them as “missing” (empty) in the UI.

  • (not intuitively possible to select "yes" as mnalis mentioned would be convenient without also specifying the number)

In my opinion, this can be disregarded (based on the data). If we further consider stations with at least one documented socket:*, the average number is 3.81 connectors (plugs?) per station. This means that, on average, you have to press the “plus” button four times and count to four beforehand. I would have no problem trusting all SC users to do this.

To summarize: On average (rounded) worldwide, there are 2 different socket types and 4 sockets (plugs) in total per charging station. Does that make sense for you?

@westnordost
Copy link
Copy Markdown
Member

westnordost commented Feb 16, 2026

Well, I think I have not such a strong opinion on this. Your suggestion is convenient. It needs few taps and due to it being so quick to use, there'd be little desire by the likes of mnalis to commit early (i.e. tag yes only), as a surveyor must check all sockets present anyway to correctly answer which socket types are present anyway.


Alright, it looks like you've made your mind up about this. You are welcome to implement it and I'll merge it. The following composables might help you in your implementation:

  • StepperButton
  • DecimalInput (if you even want to allow input via keyboard. After all, about 90% of all charging points have 1-2 sockets)
  • Icon (use to display the socket drawing and also the EU label, it will automatically use the correct color)

The Stepper Button is a +/- arranged vertically, to be put to the right side of a text field or label. If you think an input like [ - ] [ 1 ] [ + ] (to be placed below the socket icon?) would be better, you'd have to build this composable yourself, but you can take the components the StepperButton is made of.

The data model you'd use within the charging sockets form composable would be a mutable state of a Map<SocketType, Int> composable that you copy on each change, or a mutableStateMapOf the same (which you can modify without copying).

If you haven't yet, maybe before implementation it would be a good idea to review the "getting started" documentation of Jetpack Compose, especially regarding best practices. Since the entire composeable-widget codebase in StreetComplete has been written with that in mind, you might also just learn from existing code.

At the "top level", i.e. directly used in the AddSocketTypeAndCountForm fragment would be a composable named e.g. SocketTypeAndCountForm that accepts a Map<SocketType, Int> as input and renders it accordingly and a callback function that reports any changed map up.

@matkoniecz
Copy link
Copy Markdown
Member

#6732 (comment)

maybe better question to ask would be "how many" ?

@westnordost
Copy link
Copy Markdown
Member

westnordost commented Feb 16, 2026

I have identified some additional things that need to be taken into account:

affecting quest filter and applying tags

  1. (optional:) Ask again and delete deprecated tags

    All tags starting with socket:tesla.* as well as socket:css (and socket:unknown, socket:type, socket:type3, socket:scame) have been deprecated. We should ask this quest if any of these are present and when the user answers, those should be cleaned up! 🙂

  2. (optional:) Treat any socket:.*=yes as not tagged yet, i.e. ask this quest again

affecting applying tags only

  1. (only mandatory if the quest is also asked if any socket:.* key is already present) All selectable socket types that were not selected must be deleted.

    E.g. if previously, socket:type2=yes, socket:chademo=1 and socket:bosch_3pin=3, socket:cee_blue=1 was tagged and the user selected only type2_cable = 2 instead, both socket:type2 and socket:chademo must be deleted, while socket:bosch_3pin=3 and socket:cee_blue=1 remain untouched.

  2. (only mandatory if the quest is also asked if any socket:.* key is already present)
    Since we tag and/or remove domestic depending on whether the user selected this, we'd actually also have to conflate this behavior to any domestic plug.
    E.g. if socket:schuko=2 was tagged before, and a domestic socket is not selected, the Schuko must be removed, too. If it is selected, however, either socket:schuko must be replaced with socket:domestic or socket:schuko must be updated instead of socket:domestic.
    Indeed, this introduces quite some complexity!!

  3. (mandatory:) When type2 was selected but type2_cable was not selected, socket:type2_cable=no should additionally be tagged. This is to unambiguously tag that the type2 definitely has no cable.

    See https://community.openstreetmap.org/t/charging-station-sockets-type2-cable/141530 as to why. (Maybe include the link as a comment in the implementation, for reference.)


Given the complexity involved with solving point 4, I think it is better to not ask this quest at all if any ~socket:.* key is present.

Point 1 and point 2 could still be done, but the filter must be crafted cautiously to only include deprecated socket keys and supported (non-domestic) socket keys with a yes value.

Otherwise, only point 5 is strictly mandatory.

@mcliquid
Copy link
Copy Markdown
Contributor Author

#6732 (comment)

maybe better question to ask would be "how many" ?

That was just a mockup, no final UI proposal ;)


I note down:

  1. Option B (Grid mit +/- direkt im Grid) seems most feasible
  2. What we need is a SocketTypeAndCountForm in Compose with a mutableStateMapOf<SocketType, Int>() data model and a UI like this:
[ ICON ]
[ EU HEX ICON ]
[ - ] [  2  ] [ + ]

or a vertical stepper to the right of the number (like StepperButton)
3. We set socket:type2_cable=no if type2 is set but no type2_cable.
4. Handling deprecated keys: Display quest → remove them when saving
5. Treat socket:* = yes: If value = yes → treat as “not yet counted” → replace with number
6. Domestic conflation: Only display quest if no socket exists* → No domestic mapping of Schuko etc.

That means a version 1.0 has:

  • Option B UI (Grid with +/- buttons)
  • Shows only if no socket:* exists
  • Saves socket:typeX = number
  • Saves type2_cable=no if necessary
  • Max Validation = 50
  • Unusual Input Dialog at 0 or >50
Note on the scheduleI've ruined my entire dev environment once again. I suspect it was fatal that I forked SCEE first and then later tried to fork StreetComplete alongside it, which doesn't work at all. In any case, my personal StreetComplete repo has completely detached from upstream and I can't reconnect it (only one fork rule) and I can't access the correct SC master branch via the (still functional) SCEE fork. I have no idea how to solve this yet, but at the moment I can't upload any new code.

@westnordost
Copy link
Copy Markdown
Member

I've ruined my entire dev environment once again.

Well, maybe have two different directories, one for SCEE, one for StreetComplete, if they deviate that much (😢)

@westnordost
Copy link
Copy Markdown
Member

Option B (Grid mit +/- direkt im Grid) seems most feasible

It is more space saving. I am a little concerned however that it may not be crystal clear to which a - [ 3 ] + (below a socket) might belong to, however. Well, we can try it out.

@matkoniecz
Copy link
Copy Markdown
Member

I've ruined my entire dev environment once again.

Well, maybe have two different directories, one for SCEE, one for StreetComplete, if they deviate that much (😢)

my typical problem is Android Studio having some leftover data from other version - and stubbornly compiling SC with SCEE app id.

In my experience deleting all files except .git folder and doing git reset --hard tends to fix it

@mcliquid
Copy link
Copy Markdown
Contributor Author

With the help of @Helium314 and GitHub support, I managed to fix the git environment yesterday 🥳

In the meantime, I just kept playing around with the UI and currently ended up with this approach, which I find quite practical. On a current Pixel phone, 5 sockets are displayed without any scrolling.
Everything fits above the fold on the screen. In my opinion, the operation is self-explanatory. A few UI refinements, such as graying out when 0 or similar, can still be added.
Just in case anyone is wondering: this is really a work in progress! Neither the text nor the graphics nor the interface and logic are final in any way! The small "household icon" should be the EU label in the future.
image

@westnordost
Copy link
Copy Markdown
Member

Well, looks fine so far. It is unfortunate that the most important thing for deciding which to select is now quite small. The name is (much) less important.

For the record, I still slightly prefer the atomic quest solution, especially after having done some research and found that the list of socket types that could be found in some countries may be rather long. Examples include India first and foremost, but as most countries outside EU and China don't seem to mandate a certain socket, the situation there can be quite topsy turvy - any e-vehicle producer bringing their own system, basically. Still, even France has not only the three type2 ones, chademo and dimestic, but also two types of type3, i.e. in total 7.

Your UI excels most when the list is short and when more different socket types are supported by each station.

@mcliquid
Copy link
Copy Markdown
Contributor Author

For the record, I still slightly prefer the atomic quest solution

Okay, fair enough. That clearly means back to the beginning, two separate quests, one just asks what, the other how much? Any other requirements?

@matkoniecz
Copy link
Copy Markdown
Member

matkoniecz commented Feb 17, 2026

I guess that having such display in areas with reasonable variety of plugs and atomic ones in less normalized ones would not be viable?

(atomic quests also have problem of increasing chance of misidentification of plugs, compared to case when multiple designs are shown in one go)

@mcliquid
Copy link
Copy Markdown
Contributor Author

I guess that having such display in areas with reasonable variety of plugs and atomic ones in less normalized ones would not be viable?

Quick fix: Only show the quest in countries that already have advanced charging station development. The wild growth that some states currently have will not be sustainable in the long term.

@westnordost
Copy link
Copy Markdown
Member

Okay, fair enough. That clearly means back to the beginning, two separate quests, one just asks what, the other how much? Any other requirements?

No, it doesn't. I said, for the record. You seem to prefer your current solution and as I said, I do not have such a strong opinion about it that I wouldn't accept your PR with your UI.

@paulklie
Copy link
Copy Markdown
Collaborator

the situation there can be quite topsy turvy - any e-vehicle producer bringing their own system, basically. Still, even France has not only the three type2 ones, chademo and dimestic, but also two types of type3, i.e. in total 7.

In such a situation an atomic quest also has issues, since it might lead to users needing to answer 8 quests to add the sockets of a station (and thus 8 changesets).

@westnordost
Copy link
Copy Markdown
Member

I just noticed, by the way, that in your last screenshot of the UI, the socket type was especially small because it (still) included the hexagons

@mcliquid
Copy link
Copy Markdown
Contributor Author

I just noticed, by the way, that in your last screenshot of the UI, the socket type was especially small because it (still) included the hexagons

Yes, in that case it always makes sense to read the corresponding text as well:

Neither the text nor the graphics nor the interface and logic are final in any way!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Complete sockets of an EV charging station

6 participants