Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions app/src/main/java/de/westnordost/streetcomplete/Prefs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ object Prefs {
const val REALLY_ALL_NOTES = "really_all_notes"
const val ROTATE_WHILE_ZOOMING = "rotate_while_zooming"
const val ROTATE_ANGLE_THRESHOLD = "rotate_angle_threshold"
const val OVERRIDE_COUNTRY_RESTRICTIONS = "override_country_restrictions"

enum class DayNightBehavior(val titleResId: Int) {
IGNORE(R.string.day_night_ignore),
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package de.westnordost.streetcomplete.quests.building_entrance_reference

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
Expand All @@ -10,6 +11,7 @@ import de.westnordost.streetcomplete.data.osm.mapdata.Node
import de.westnordost.streetcomplete.data.osm.mapdata.Relation
import de.westnordost.streetcomplete.data.osm.mapdata.Way
import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BLIND
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CITIZEN
Expand Down Expand Up @@ -45,7 +47,7 @@ class AddEntranceReference : OsmElementQuestType<EntranceAnswer> {
override val wikiLink = "Key:ref"
override val icon = R.drawable.ic_quest_door_address
override val achievements = listOf(CITIZEN, BLIND)
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
"PL", // Poland - own knowledge of Mateusz Konieczny https://github.com/streetcomplete/StreetComplete/issues/3064#issuecomment-879447168
"RU", // Russia - https://github.com/streetcomplete/StreetComplete/issues/3064#issuecomment-880231076
"MK", // North Macedonia https://github.com/streetcomplete/StreetComplete/issues/3064#issuecomment-1158016740
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package de.westnordost.streetcomplete.quests.bus_stop_ref

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.PEDESTRIAN
import de.westnordost.streetcomplete.osm.Tags
Expand All @@ -19,7 +21,7 @@ class AddBusStopRef : OsmFilterQuestType<BusStopRefAnswer>() {
and access !~ no|private
and !ref and noref != yes and ref:signed != no and !~"ref:.*"
"""
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
"AU", // https://github.com/streetcomplete/StreetComplete/issues/4487
"CA",
"CO", // https://github.com/streetcomplete/StreetComplete/issues/5124
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package de.westnordost.streetcomplete.quests.fire_hydrant_diameter

import de.westnordost.streetcomplete.Prefs
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.mapdata.filter
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.LIFESAVER
import de.westnordost.streetcomplete.osm.Tags
Expand All @@ -29,7 +31,7 @@ class AddFireHydrantDiameter : OsmFilterQuestType<FireHydrantDiameterAnswer>() {
/* NOTE: if any countries that (sometimes) use anything else than millimeters as hydrant
diameters are added, the code in the form needs to be adapted */
// source: https://commons.wikimedia.org/wiki/Category:Fire_hydrant_signs_by_country
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
"DE", "BE", "LU",
// not "AT", - see https://community.openstreetmap.org/t/streetcomplete-quest-zu-hydrantendurchmesser-in-osterreich/108899
"GB", "IE",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ package de.westnordost.streetcomplete.quests.fire_hydrant_ref
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement
import de.westnordost.streetcomplete.osm.Tags
import de.westnordost.streetcomplete.Prefs

class AddFireHydrantRef : OsmFilterQuestType<FireHydrantRefAnswer>() {

Expand All @@ -19,7 +21,7 @@ class AddFireHydrantRef : OsmFilterQuestType<FireHydrantRefAnswer>() {
override val icon = R.drawable.ic_quest_fire_hydrant_ref
override val achievements = listOf(EditTypeAchievement.LIFESAVER)
override val isDeleteElementEnabled = true
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
"CH", "FR", "LI"
)

Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package de.westnordost.streetcomplete.quests.postbox_collection_times

import de.westnordost.osm_opening_hours.parser.toOpeningHoursOrNull
import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
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.mapdata.filter
import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.POSTMAN
import de.westnordost.streetcomplete.osm.Tags
Expand Down Expand Up @@ -37,7 +39,7 @@ class AddPostboxCollectionTimes : OsmElementQuestType<CollectionTimesAnswer> {
// https://www.itinerantspirit.com/home/2016/5/22/post-boxes-from-around-the-world
// https://commons.wikimedia.org/wiki/Category:Post_boxes_by_country
// http://wanderlustexplorers.com/youve-got-mail-23-international-postal-boxes/
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
// definitely, seen pictures:
"AU", "NZ", "VU", "MY", "SG", "TH", "VN", "LA", "MM", "IN", "BD", "NP", "LK", "BT", "PK", "TW", "HK",
"MO", "CN", "KR", "JP", "RU", "BY", "LT", "LV", "FI", "SE", "NO", "DK", "GB", "IE", "IS", "NL", "BE",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package de.westnordost.streetcomplete.quests.postbox_ref

import de.westnordost.streetcomplete.Prefs
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.mapdata.filter
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.POSTMAN
import de.westnordost.streetcomplete.osm.Tags
Expand All @@ -23,7 +25,7 @@ class AddPostboxRef : OsmFilterQuestType<PostboxRefAnswer>() {
override val isDeleteElementEnabled = true
override val achievements = listOf(POSTMAN)
// source: https://commons.wikimedia.org/wiki/Category:Post_boxes_by_country
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
"FR", "GB", "GG", "IM", "JE", "MT", "IE", "SG", "CZ", "SK", "CH", "US"
)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package de.westnordost.streetcomplete.quests.railway_platform_ref
import android.content.Context
import androidx.appcompat.app.AlertDialog
import androidx.core.content.edit
import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
Expand All @@ -11,6 +12,7 @@ import de.westnordost.streetcomplete.data.osm.geometry.ElementPolylinesGeometry
import de.westnordost.streetcomplete.data.osm.mapdata.Element
import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry
import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement
import de.westnordost.streetcomplete.osm.Tags
Expand Down Expand Up @@ -78,7 +80,9 @@ class AddRailwayPlatformRef : OsmElementQuestType<String> {
override val wikiLink = "Tag:railway=platform"
override val icon = R.drawable.ic_quest_railway_platform_ref
override val achievements = listOf(EditTypeAchievement.CITIZEN)
override val enabledInCountries = NoCountriesExcept("DE", "FR", "CH", "AT")
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
"DE", "FR", "CH", "AT"
)
override val defaultDisabledMessage = R.string.quest_disabled_msg_railway_platform_ref

override fun getTitle(tags: Map<String, String>) = R.string.quest_railwayPlatformRef_title
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package de.westnordost.streetcomplete.quests.summit

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
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.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.OUTDOORS
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.RARE
Expand All @@ -28,7 +30,7 @@ class AddSummitCross : OsmElementQuestType<Boolean> {
override val wikiLink = "Key:summit:cross"
override val icon = R.drawable.ic_quest_summit_cross
override val achievements = listOf(RARE, OUTDOORS)
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
// Europe
"AT", // https://de.wikipedia.org/wiki/Gipfelkreuz
"CH", // https://de.wikipedia.org/wiki/Gipfelkreuz
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package de.westnordost.streetcomplete.quests.summit

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
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.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.quest.NoCountriesExcept
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.OUTDOORS
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.RARE
Expand All @@ -28,7 +30,7 @@ class AddSummitRegister : OsmElementQuestType<Boolean> {
override val wikiLink = "Key:summit:register"
override val icon = R.drawable.ic_quest_peak
override val achievements = listOf(RARE, OUTDOORS)
override val enabledInCountries = NoCountriesExcept(
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else NoCountriesExcept(
// regions gathered in
// https://github.com/streetcomplete/StreetComplete/issues/561#issuecomment-325623974

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package de.westnordost.streetcomplete.quests.tactile_paving

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BLIND
import de.westnordost.streetcomplete.osm.Tags
import de.westnordost.streetcomplete.osm.updateWithCheckDate
Expand All @@ -27,7 +29,7 @@ class AddTactilePavingBusStop : OsmFilterQuestType<Boolean>() {
override val changesetComment = "Specify whether public transport stops have tactile paving"
override val wikiLink = "Key:tactile_paving"
override val icon = R.drawable.ic_quest_blind_bus
override val enabledInCountries = COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val achievements = listOf(BLIND)

override val hint = R.string.quest_generic_looks_like_this
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package de.westnordost.streetcomplete.quests.tactile_paving

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
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.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BLIND
import de.westnordost.streetcomplete.osm.Tags
import de.westnordost.streetcomplete.osm.isCrossing
Expand Down Expand Up @@ -37,7 +39,7 @@ class AddTactilePavingCrosswalk : OsmElementQuestType<TactilePavingCrosswalkAnsw
override val changesetComment = "Specify whether crosswalks have tactile paving"
override val wikiLink = "Key:tactile_paving"
override val icon = R.drawable.ic_quest_blind_pedestrian_crossing
override val enabledInCountries = COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val achievements = listOf(BLIND)

override val hint = R.string.quest_generic_looks_like_this
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package de.westnordost.streetcomplete.quests.tactile_paving

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression
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.mapdata.Node
import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BLIND
import de.westnordost.streetcomplete.osm.Tags
import de.westnordost.streetcomplete.osm.kerb.couldBeAKerb
Expand All @@ -27,7 +29,7 @@ class AddTactilePavingKerb : OsmElementQuestType<Boolean> {
override val changesetComment = "Specify whether kerbs have tactile paving"
override val wikiLink = "Key:tactile_paving"
override val icon = R.drawable.ic_quest_kerb_tactile_paving
override val enabledInCountries = COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val achievements = listOf(BLIND)

override val hint = R.string.quest_generic_looks_like_this
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package de.westnordost.streetcomplete.quests.tactile_paving

import de.westnordost.streetcomplete.Prefs
import de.westnordost.streetcomplete.R
import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry
import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType
import de.westnordost.streetcomplete.data.quest.AllCountries
import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BLIND
import de.westnordost.streetcomplete.osm.Tags
import de.westnordost.streetcomplete.osm.surface.PAVED_SURFACES
Expand All @@ -27,7 +29,7 @@ class AddTactilePavingSteps : OsmFilterQuestType<TactilePavingStepsAnswer>() {
override val changesetComment = "Survey tactile paving on steps"
override val wikiLink = "Key:tactile_paving"
override val icon = R.drawable.ic_quest_steps_tactile_paving
override val enabledInCountries = COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val enabledInCountries = if (prefs.getBoolean(Prefs.OVERRIDE_COUNTRY_RESTRICTIONS, false)) AllCountries else COUNTRIES_WHERE_TACTILE_PAVING_IS_COMMON
override val achievements = listOf(BLIND)

override val hint = R.string.quest_generic_looks_like_this
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,14 @@ fun QuestSettingsScreen(
default = false,
onCheckedChange = { scope.launch(Dispatchers.IO) { visibleEditTypeController.onVisibilitiesChanged() } }
)
if (prefs.expertMode)
SwitchPreference(
name = stringResource(R.string.pref_override_country_restrictions_title),
description = stringResource(R.string.pref_override_country_restrictions_summary),
pref = Prefs.OVERRIDE_COUNTRY_RESTRICTIONS,
default = false,
onCheckedChange = { OsmQuestController.reloadQuestTypes() },
)
Preference(
name = stringResource(R.string.pref_quest_monitor_title),
onClick = { questMonitorDialog(prefs, ctx) },
Expand Down
Loading