Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
83c725f
created quests for lgbtq people
jan-leila Mar 2, 2024
d4d6c8b
added filter to not tag moments
jan-leila Mar 2, 2024
3cce8cc
added handling for lgbtq=only
jan-leila Mar 2, 2024
1f0f3ff
simplified filters
jan-leila Mar 2, 2024
9a75e34
Split the list of countries in 2 groups
mscherer Mar 13, 2024
1786667
Merge pull request #1 from mscherer/lgbtq
jan-leila Mar 17, 2024
9fcc650
removed lgbtq signed quest
jan-leila Jun 23, 2024
f03893a
formatted excluded countries
jan-leila Jun 23, 2024
f9bdfcb
added hide option to access quest
jan-leila Jun 23, 2024
111c0df
Merge branch 'modified' into lgbtq-quests
jan-leila Jun 23, 2024
320922e
fixed crash on temp hide
jan-leila Jun 23, 2024
6772f44
Add icons for LGBTQ quests
flavia-telcean Sep 24, 2024
29629e4
Fix typos
flavia-telcean Sep 24, 2024
32b66cd
Switch hiding behaviour to normal
flavia-telcean Sep 24, 2024
caafa4f
Add attribution
flavia-telcean Sep 26, 2024
800e35d
Merge pull request #2 from tiberiu-telcean/lgbtq-quests
jan-leila Sep 27, 2024
9673685
Merge branch 'modified' into lgbtq-quests
jan-leila Oct 11, 2024
0fbf2c7
made LGBTQAccess quest text only
jan-leila Nov 6, 2024
316e9a3
simplified LGBTQAccessQuest
jan-leila Nov 6, 2024
7d656cc
fixed crash on not marked
jan-leila Nov 6, 2024
881d19c
added vet and music stores to filters
jan-leila Nov 10, 2024
8af39b4
fixed formating on LGBTPropagandaCountries
jan-leila Nov 10, 2024
e9963af
merged not posted and hide forever
jan-leila Nov 10, 2024
15f6eb6
fix: changed woman to women
jan-leila Nov 28, 2025
ef8738c
Merge remote-tracking branch 'scee/modified' into lgbtq-quests
jan-leila Nov 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,9 @@ import de.westnordost.streetcomplete.quests.lanes.AddLanes
import de.westnordost.streetcomplete.quests.leaf_detail.AddForestLeafType
import de.westnordost.streetcomplete.quests.leaf_detail.AddTreeLeafType
import de.westnordost.streetcomplete.quests.level.AddLevel
import de.westnordost.streetcomplete.quests.lgbtq.LGBTQAccessQuest
import de.westnordost.streetcomplete.quests.lgbtq.LGBTQGenderSpecializationQuest
import de.westnordost.streetcomplete.quests.lgbtq.LGBTQTransgenderSpecializationQuest
import de.westnordost.streetcomplete.quests.map.AddMapSize
import de.westnordost.streetcomplete.quests.map.AddMapType
import de.westnordost.streetcomplete.quests.max_height.AddMaxHeight
Expand Down Expand Up @@ -656,6 +659,9 @@ fun getQuestTypeList(
EE_QUEST_OFFSET + 54 to AddLampType(),
EE_QUEST_OFFSET + 55 to AddPostOfficeType(),
EE_QUEST_OFFSET + 57 to AddLampMount(),
EE_QUEST_OFFSET + 58 to LGBTQAccessQuest(),
EE_QUEST_OFFSET + 59 to LGBTQGenderSpecializationQuest(),
EE_QUEST_OFFSET + 60 to LGBTQTransgenderSpecializationQuest(),
EE_QUEST_OFFSET + 10 to OsmoseQuest(osmoseDao),
EE_QUEST_OFFSET + 11 to CustomQuest(customQuestList),
// POI quests
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions app/src/androidMain/res/drawable/ic_quest_gender.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="33.9"
android:viewportHeight="33.9">
<path
android:pathData="m33.9,16.9a16.9,16.9 0,0 1,-16.9 16.9,16.9 16.9,0 0,1 -17,-16.9 16.9,16.9 0,0 1,16.8 -17,16.9 16.9,0 0,1 17,16.8z"
android:fillColor="#e9a76f"/>
<path
android:fillColor="#FF000000"
android:pathData="m28,6.59c-1.62,0.155 -3.25,0.303 -4.87,0.46 -0.304,0.172 -0.34,0.681 -0.082,1.14 0.258,0.456 0.714,0.688 1.02,0.518l1.9,-0.179 -1.52,3.09c-0.621,-0.209 -1.28,-0.326 -1.97,-0.331 -2.17,-0.015 -4.09,1.07 -5.25,2.73l-1.13,1.8 -1.13,-1.8 -0.001,0.001c-1.16,-1.66 -3.08,-2.74 -5.25,-2.73 -3.49,0.024 -6.32,2.88 -6.3,6.37 0.014,3.11 2.3,5.71 5.27,6.22v1.54h-2.09v0.001c-0.002,-0 -0.004,-0 -0.006,-0.001 -0.454,0.004 -0.821,0.457 -0.819,1.01 0.002,0.555 0.371,1 0.824,1h2.09l0.001,2.25c0.003,0.556 0.451,1 1,1 0.552,-0.001 0.996,-0.452 0.998,-1.01 0.001,-0.75 0.001,-1.5 0.001,-2.25h2.1c0.524,-0.001 0.822,-0.543 0.822,-1.02 -0.004,-0.553 -0.372,-0.998 -0.824,-0.998v-0.001h-2.09v-1.51c2,-0.269 3.24,-1.38 3.99,-2.3l1.42,-2.26 1.42,2.26c0.866,1.04 2.36,2.35 4.9,2.36 3.49,0.008 6.34,-2.83 6.36,-6.32 0.01,-2.11 -1.02,-3.99 -2.61,-5.15l1.54,-3.14c0.336,0.539 0.682,1.07 1.01,1.61 0.045,0.348 0.505,0.576 1.03,0.51 0.524,-0.066 0.913,-0.402 0.871,-0.75zM9.7,13.18c1.5,-0.01 2.83,0.716 3.65,1.84l1.61,2.57 -1.9,3.02c-0.812,0.906 -1.99,1.47 -3.31,1.48 -2.47,0.005 -4.46,-1.97 -4.47,-4.44 -0.011,-2.47 1.96,-4.46 4.43,-4.48zM22.4,13.18c2.47,0.017 4.44,2.01 4.43,4.48 -0.011,2.47 -2,4.44 -4.47,4.44 -1.32,-0.003 -2.5,-0.572 -3.31,-1.48l-1.9,-3.02 1.61,-2.57c0.814,-1.13 2.14,-1.85 3.65,-1.84z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:pathData="m28,5.53c-1.62,0.155 -3.25,0.303 -4.87,0.46 -0.304,0.172 -0.34,0.681 -0.082,1.14 0.258,0.456 0.714,0.688 1.02,0.518l1.9,-0.179 -1.52,3.09c-0.621,-0.209 -1.28,-0.326 -1.97,-0.331 -2.17,-0.015 -4.09,1.07 -5.25,2.73l-1.13,1.8 -1.13,-1.8 -0.001,0.001c-1.16,-1.66 -3.08,-2.74 -5.25,-2.73 -3.49,0.024 -6.32,2.88 -6.3,6.37 0.014,3.11 2.3,5.71 5.27,6.22v1.54h-2.09v0.001c-0.002,-0 -0.004,-0 -0.006,-0.001 -0.454,0.004 -0.821,0.457 -0.819,1.01 0.002,0.555 0.371,1 0.824,1h2.09l0.001,2.25c0.003,0.556 0.451,1 1,1 0.552,-0.001 0.996,-0.452 0.998,-1.01 0.001,-0.75 0.001,-1.5 0.001,-2.25h2.1c0.524,-0.001 0.822,-0.543 0.822,-1.02 -0.004,-0.553 -0.372,-0.998 -0.824,-0.998v-0.001h-2.09v-1.51c2,-0.269 3.24,-1.38 3.99,-2.3l1.42,-2.26 1.42,2.26c0.866,1.04 2.36,2.35 4.9,2.36 3.49,0.008 6.34,-2.83 6.36,-6.32 0.01,-2.11 -1.02,-3.99 -2.61,-5.15l1.54,-3.14c0.336,0.539 0.682,1.07 1.01,1.61 0.045,0.348 0.505,0.576 1.03,0.51 0.524,-0.066 0.913,-0.402 0.871,-0.75zM9.7,12.12c1.5,-0.01 2.83,0.716 3.65,1.84l1.61,2.57 -1.9,3.02c-0.812,0.906 -1.99,1.47 -3.31,1.48 -2.47,0.005 -4.46,-1.97 -4.47,-4.44 -0.011,-2.47 1.96,-4.46 4.43,-4.48zM22.4,12.12c2.47,0.017 4.44,2.01 4.43,4.48 -0.011,2.47 -2,4.44 -4.47,4.44 -1.32,-0.003 -2.5,-0.572 -3.31,-1.48l-1.9,-3.02 1.61,-2.57c0.814,-1.13 2.14,-1.85 3.65,-1.84z"
android:fillColor="#fff"/>
</vector>
61 changes: 61 additions & 0 deletions app/src/androidMain/res/drawable/ic_quest_lgbtq.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="33.9"
android:viewportHeight="33.9">
<path
android:pathData="m33.9,16.9c0,9.35 -7.58,16.9 -16.9,16.9 -9.35,0 -16.9,-7.58 -16.9,-16.9 0,-9.35 7.58,-16.9 16.9,-16.9 9.35,0 16.9,7.58 16.9,16.9"
android:fillColor="#e9a76f"/>
<path
android:fillColor="#FF000000"
android:pathData="m10.5,7.39c-3.95,2.12 -6.35,5.87 -6.36,9.91 -0.008,4.04 2.38,7.82 6.32,9.98l5.04,-6.96 6.48,5.81 6.99,-6.34c2.18,-1.8 3.3,-5.71 0.311,-8.65 -3.66,-3.6 -7.06,0.62 -7.42,0.877 -0.365,-0.817 -4.25,-4.26 -7.67,-0.49 -0.165,0.182 -0.313,0.366 -0.449,0.549l-3.25,-4.7z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:pathData="m5.72,10.9c-0.48,0.749 -0.797,1.47 -1.05,2.27l2.29,3.3 -2.28,3.06c0.25,0.771 0.59,1.52 1.01,2.23l3.9,-5.22z"
android:strokeWidth=".265"
android:fillColor="#f4cecd"
android:strokeColor="#f4cecd"/>
<path
android:pathData="m4.67,13.2c-0.127,0.352 -1.05,3.11 0.011,6.36l2.28,-3.06z"
android:strokeWidth=".265"
android:fillColor="#fff"
android:strokeColor="#fff"/>
<path
android:pathData="m7.03,9.16c-0.632,0.7 -0.967,1.2 -1.31,1.74l3.88,5.65 -3.9,5.21a13.5,11.7 0.945,0 0,1.29 1.77l5.18,-6.97z"
android:strokeWidth=".265"
android:fillColor="#d3e8fd"
android:strokeColor="#d3e8fd"/>
<path
android:pathData="m8.68,7.6c-0.701,0.473 -1.48,1.35 -1.65,1.56l5.13,7.4 -5.18,6.97c0.504,0.562 1.07,1.08 1.68,1.56l6.31,-8.47z"
android:strokeWidth=".265"
android:fillColor="#6e553a"
android:strokeColor="#6e553a"/>
<path
android:fillColor="#FF000000"
android:pathData="m10.5,6.44c-0.617,0.306 -1.19,0.683 -1.81,1.16l6.29,9.01 -6.31,8.47c0.238,0.187 1.14,0.876 1.78,1.14 2.41,-3.19 4.73,-6.44 7.08,-9.68z"
android:strokeWidth=".265"
android:strokeColor="#000"/>
<path
android:fillColor="#FF000000"
android:pathData="m12.9,13.7c-0.584,1.76 -0.086,3.44 0.734,4.69l1.31,-1.76 -2.05,-2.93z"
android:fillAlpha="0.2"/>
<path
android:pathData="m13.4,11.5c-0.725,1.18 -0.892,2.37 -0.728,3.45h18.3c0.147,-1.12 -0.034,-2.32 -0.683,-3.45z"
android:fillColor="#f1b014"/>
<path
android:pathData="m26,8.65c-2.22,0.094 -3.91,2.14 -4.15,2.32 -0.129,-0.09 -1.47,-2.34 -4.33,-2.28 -1.21,0.025 -2.43,0.718 -3.15,1.43 -0.513,0.511 -0.916,1.26 -1.11,1.65h17.2c-0.29,-0.578 -0.695,-1.14 -1.24,-1.68 -1.14,-1.12 -2.26,-1.49 -3.27,-1.44z"
android:fillColor="#c84747"/>
<path
android:pathData="m12.6,14.5c0.101,1.51 0.872,2.85 1.73,3.75h15.1c0.905,-0.964 1.54,-2.3 1.62,-3.75z"
android:fillColor="#fd5"/>
<path
android:pathData="m13.5,17.2c0.395,0.633 0.871,1.17 1.34,1.55l1.79,1.6h10.5l1.77,-1.6c0.504,-0.416 0.946,-0.948 1.3,-1.55z"
android:fillColor="#5cae32"/>
<path
android:pathData="m18.7,22.2 l3.24,2.9 3.2,-2.9z"
android:fillColor="#269"/>
<path
android:pathData="m16.1,19.9 l3.13,2.81h5.35l3.1,-2.81z"
android:fillColor="#3b88c3"/>
</vector>
17 changes: 17 additions & 0 deletions app/src/androidMain/res/drawable/ic_quest_trans.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="33.9"
android:viewportHeight="33.9">
<path
android:pathData="m33.9,16.9c0,9.35 -7.58,16.9 -16.9,16.9 -9.35,0 -16.9,-7.58 -16.9,-16.9 0,-9.35 7.58,-16.9 16.9,-16.9 9.35,0 16.9,7.58 16.9,16.9"
android:fillColor="#e9a76f"/>
<path
android:fillColor="#FF000000"
android:pathData="m21.1,5.83c-0.352,0.034 -0.596,0.497 -0.546,1.03 0.05,0.537 0.376,0.946 0.728,0.914 0.613,0.134 1.86,0.454 2.64,0.645l-3.4,3.41c-1,-0.717 -2.23,-1.14 -3.55,-1.13 -1.29,0.009 -2.49,0.427 -3.47,1.13l-0.669,-0.669 0.887,-0.887 -0.002,-0.002c0.185,-0.171 0.29,-0.411 0.29,-0.662l0,-0.008c-0.005,-0.5 -0.413,-0.901 -0.913,-0.898 -0.249,0.002 -0.487,0.107 -0.656,0.29l-0.889,0.886 -1.47,-1.47 1.94,-0.463c0.358,0.065 0.729,-0.316 0.83,-0.854 0.101,-0.537 -0.106,-1.03 -0.463,-1.1 -1.65,0.392 -3.31,0.789 -4.96,1.18l-1.19,4.99c0.075,0.358 0.573,0.558 1.11,0.447 0.539,-0.111 0.916,-0.491 0.843,-0.849l-0.001,-0.006 0.458,-1.93 1.48,1.48 -0.904,0.904 0.001,0.001c-0.185,0.172 -0.29,0.414 -0.289,0.667 0.002,0.5 0.408,0.903 0.908,0.902 0.251,-0.001 0.489,-0.106 0.66,-0.29l0.003,0.003 0.904,-0.904 0.669,0.669c-0.714,0.999 -1.13,2.22 -1.13,3.54 0.014,2.98 2.26,5.59 4.84,5.95l0,1.35h-2.56l0,0.001c-0.002,-0 -0.004,-0 -0.007,-0 -0.556,0.004 -1,0.457 -1,1.01 0.002,0.555 0.453,1 1.01,1 0.853,0 1.71,0 2.56,0l0.001,2.25c0.003,0.556 0.552,1 1.23,1 0.675,-0.001 1.22,-0.452 1.22,-1.01 0,-0.75 0,-1.5 0,-2.25 0.854,0 1.71,-0 2.56,0 0.556,-0.001 1.01,-0.452 1.01,-1.01l-0,-0.009c-0.005,-0.553 -0.455,-0.998 -1.01,-0.998l-0,-0.001 -2.56,-0v-1.35c2.77,-0.385 4.84,-2.99 4.84,-5.98l-0,-0.004c-0,-0.847 -0.185,-2.18 -1.13,-3.5l3.44,-3.44c0.199,0.859 0.412,1.72 0.606,2.58 -0.082,0.358 0.289,0.747 0.827,0.871 0.537,0.123 1.04,-0.066 1.12,-0.422 -0.446,-1.89 -0.892,-3.78 -1.34,-5.67 -1.83,-0.446 -3.67,-0.901 -5.5,-1.34zM16.98,12.96c2.51,-0.017 3.83,2.12 3.83,3.81 -0.003,2.1 -1.69,3.79 -3.79,3.8 -2.11,0.005 -3.8,-1.68 -3.81,-3.78 -0.01,-2.11 1.67,-3.8 3.78,-3.82z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:pathData="m21.1,4.77c-0.352,0.034 -0.596,0.497 -0.546,1.03 0.05,0.537 0.376,0.946 0.728,0.914 0.613,0.134 1.86,0.454 2.64,0.645l-3.4,3.41c-1,-0.717 -2.23,-1.14 -3.55,-1.13 -1.29,0.009 -2.49,0.427 -3.47,1.13l-0.669,-0.669 0.887,-0.887 -0.002,-0.003c0.185,-0.171 0.29,-0.411 0.29,-0.662l0,-0.008c-0.005,-0.5 -0.413,-0.901 -0.913,-0.898 -0.249,0.002 -0.487,0.107 -0.656,0.29l-0.889,0.886 -1.47,-1.47 1.94,-0.463c0.358,0.065 0.729,-0.316 0.83,-0.854 0.101,-0.537 -0.106,-1.03 -0.463,-1.1 -1.65,0.392 -3.31,0.789 -4.96,1.18l-1.19,4.99c0.075,0.358 0.573,0.558 1.11,0.447 0.539,-0.111 0.916,-0.491 0.843,-0.849l-0.001,-0.006 0.458,-1.93 1.48,1.48 -0.904,0.904 0.001,0.001c-0.185,0.172 -0.29,0.414 -0.289,0.667 0.002,0.5 0.408,0.903 0.908,0.902 0.251,-0.001 0.489,-0.106 0.66,-0.29l0.003,0.003 0.904,-0.904 0.669,0.669c-0.714,0.999 -1.13,2.22 -1.13,3.54 0.014,2.98 2.26,5.59 4.84,5.95l0,1.35h-2.56l0,0.001c-0.002,-0 -0.004,-0 -0.007,-0 -0.556,0.004 -1,0.457 -1,1.01 0.002,0.555 0.453,1 1.01,1 0.853,0 1.71,0 2.56,0l0.001,2.25c0.003,0.556 0.552,1 1.23,1 0.675,-0.001 1.22,-0.452 1.22,-1.01 0,-0.75 0,-1.5 0,-2.25 0.854,0 1.71,-0 2.56,0 0.556,-0.001 1.01,-0.452 1.01,-1.01l-0,-0.009c-0.005,-0.553 -0.455,-0.998 -1.01,-0.998l-0,-0.001 -2.56,-0v-1.35c2.77,-0.385 4.84,-2.99 4.84,-5.98l-0,-0.004c-0,-0.847 -0.185,-2.18 -1.13,-3.5l3.44,-3.44c0.199,0.859 0.412,1.72 0.606,2.58 -0.082,0.358 0.289,0.747 0.827,0.871 0.537,0.123 1.04,-0.066 1.12,-0.422 -0.446,-1.89 -0.892,-3.78 -1.34,-5.67 -1.83,-0.446 -3.67,-0.901 -5.5,-1.34zM16.98,11.9c2.51,-0.017 3.83,2.12 3.83,3.81 -0.003,2.1 -1.69,3.79 -3.79,3.8 -2.11,0.005 -3.8,-1.68 -3.81,-3.78 -0.01,-2.11 1.67,-3.8 3.78,-3.82z"
android:fillColor="#269"/>
</vector>
18 changes: 18 additions & 0 deletions app/src/androidMain/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1185,6 +1185,24 @@ If any lanes are reserved for buses, please leave a note instead."</string>
<string name="quest_leafType_tree_title">Does this tree have needles or leaves?</string>
<string name="quest_leafType_tree_is_just_a_stump">"It’s just a tree stump"</string>

<string name="quest_lgbtq_signed">Is there signage displaying its relation to LGBTQ people?</string>

<string name="quest_lgbtq_access">What is this place’s relation to LGBTQ people?</string>
<string name="quest_lgbtq_access_no">banned</string>
<string name="quest_lgbtq_access_welcome">explicitly welcome</string>
<string name="quest_lgbtq_access_primary">target audience</string>
<string name="quest_lgbtq_access_only">only</string>
<string name="quest_lgbtq_access_not_marked">not posted/hide forever</string>

<string name="quest_lgbtq_gender_specialization">Does this venue cater to specific groups within the LGBTQ community?</string>
<string name="quest_lgbtq_gender_specialization_men">Men</string>
<string name="quest_lgbtq_gender_specialization_woman">Woman</string>
<string name="quest_lgbtq_gender_specialization_non_binary">Non Binary People</string>
<string name="quest_lgbtq_gender_specialization_none">All Groups</string>

<string name="quest_lgbtq_transgender_specialization">Does this venue cater specifically to trans people?</string>
<string name="quest_lgbtq_transgender_specialization_banned">Transgender people are banned</string>

<string name="quest_level_title2">On which level number is this place located?</string>

<string name="quest_lit_title">"Is it lit here?"</string>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
package de.westnordost.streetcomplete.quests.lgbtq

import de.westnordost.streetcomplete.data.quest.AllCountriesExcept

// countries with a LGBT propaganda law, and not in the list of country
// where homosexuality is illegal
val LGBTPropagandaCountries =
listOf(
// Belarus, see https://www.reuters.com/world/europe/belarus-prepares-law-against-lgbt-propaganda-state-media-says-2024-02-19/
// "BY",
// Georgia, see https://oc-media.org/georgian-dream-announces-draft-law-against-pseudo-liberal-ideology/
// "GE",
Comment thread
jan-leila marked this conversation as resolved.
// Kyrgyzstan, see https://en.wikipedia.org/wiki/Kyrgyz_anti-LGBT_propaganda_law
"KY",
// Russia, since 2013 and worst since 2023
"RU",
Comment thread
jan-leila marked this conversation as resolved.
)

// countries where homosexuality is illegal
// even if unenforced or just for male
Comment thread
jan-leila marked this conversation as resolved.
val LGBTHomosexualityIllegalCountries =
listOf(
// United Arab Emirates
"AE",
// Afghanistan
"AF",
// Bangladesh
"BD",
// Burundi
"BI",
// Brunei Darussalam
"BN",
// Cameroon
"CM",
// Dominica
"DM",
Comment thread
jan-leila marked this conversation as resolved.
// Algeria
"DZ",
// Egypt
"EG",
// Eritrea
"ER",
// Ethiopia
"ET",
// Grenada
"GD",
// Ghana
"GH",
// Gambia
"GM",
// Guinea
"GN",
// Guyana
"GY",
// Indonesia
// not illegal, except in one province where it is enforced
"ID",
// Iraq
"IQ",
// Iran
"IR",
// Jamaica
"JM",
// Kenya
"KE",
// Kiribati, just for male, but not enforced
"KI",
// Comoros
"KM",
// Kuwait, just for male
"KW",
// Lebanon, unsure in 2024, cf wikipedia
"LB",
// Sri Lanka
"LK",
// Liberia
"LR",
// Libya
"LY",
// Morocco
"MA",
// Myanmar
"MM",
// Mauritania
"MR",
// Maldives, not enforced
"MV",
// Malawi
"MW",
// Malaysia
"MY",
// Namibia, not enforced
Comment thread
jan-leila marked this conversation as resolved.
"NA",
// Nigeria
"NG",
// Niue
"NU",
// Oman
"OM",
// Papua New Guinea , illegal for male only
"PG",
// Pakistan
"PK",
// Qatar
"QA",
// Saudi Arabia
"SA",
// Solomon Islands
"SB",
// Sudan
"SD",
// Sierra Leone, illegal for male only
"SL",
// Senegal
"SN",
// Somalia
"SO",
// South Sudan
"SS",
// Eswatini
"SZ",
// Chad
"TD",
// Togo
"TG",
// Turkmenistan, illegal for male only
"TM",
// Tunisia
"TN",
// Tonga, illegal for male only
"TO",
// Tuvalu,illegal for male only, not enforced
"TV",
// Tanzania
"TZ",
// Uganda
"UG",
// Uzbekistan, illegal for male only
"UZ",
// Saint Lucia
"WL",
// Samoa, illegal for male only, not enforced
"WS",
// Saint Vincent and the Grenadines
"WV",
// Yemen
"YE",
// Zambia
"ZM",
// Zimbabwe
"ZW"
)

// country where mapping would be fruitless and/or dangerous
val LGBTExcludedCountries = AllCountriesExcept(
Comment on lines +154 to +155

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Shouldn't that be named LGBTIncludedCountries (or just LGBTCountries)? Because it uses AllCountriesExcept which reverses the meaning of included lists

listOf(
LGBTHomosexualityIllegalCountries,
LGBTPropagandaCountries
).flatten()
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package de.westnordost.streetcomplete.quests.lgbtq

import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.quests.AListQuestForm
import de.westnordost.streetcomplete.quests.AnswerItem
import de.westnordost.streetcomplete.quests.TextItem

class LGBTQAccessForm : AListQuestForm<String?>() {

override val items get() = listOf<TextItem<String?>>(
TextItem("no", R.string.quest_lgbtq_access_no),
TextItem("welcome", R.string.quest_lgbtq_access_welcome),
TextItem("primary", R.string.quest_lgbtq_access_primary),
TextItem("only", R.string.quest_lgbtq_access_only),
)

override val otherAnswers get() = listOfNotNull(
AnswerItem(R.string.quest_lgbtq_access_not_marked) {
hideQuest()
},
)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package de.westnordost.streetcomplete.quests.lgbtq

import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
import de.westnordost.streetcomplete.data.osm.mapdata.Element
import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement
import de.westnordost.streetcomplete.osm.Tags

class LGBTQAccessQuest : OsmFilterQuestType<String?>() {
override val elementFilter = """
nodes, ways with (
amenity ~ swingerclub|nightclub|bar|pub|cafe|restaurant|place_of_worship|community_centre|library|doctors|social_facility|veterinary
or shop ~ erotic|books|music
or leisure ~ sauna|nightclub|nightlife
)
and (!seasonal or seasonal = no)
and !brand and !wikipedia:brand and !wikidata:brand
and !memorial and !historic
and !lgbtq
"""

// countries that are listed here ban lgbtq people
override val enabledInCountries = LGBTExcludedCountries

override val changesetComment = "Survey lgbtq access"
override val wikiLink = "Key:lgbtq"
override val icon = R.drawable.ic_quest_lgbtq
override val achievements = listOf(EditTypeAchievement.CITIZEN)

override fun getTitle(tags: Map<String, String>) = R.string.quest_lgbtq_access

override fun getApplicableElements(mapData: MapDataWithGeometry): Iterable<Element> =
mapData.filter { isApplicableTo(it) }

override fun isApplicableTo(element: Element): Boolean = filter.matches(element)
override fun createForm() = LGBTQAccessForm()

override fun applyAnswerTo(answer: String?, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) {
answer?.let {
tags["lgbtq"] = it
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package de.westnordost.streetcomplete.quests.lgbtq

enum class LGBTQGenderSpecialization {
NONE,
MEN,
Comment thread
jan-leila marked this conversation as resolved.
WOMEN,
NON_BINARY,
}
Loading