Skip to content

Commit

Permalink
Merge branch 'master' into modified
Browse files Browse the repository at this point in the history
  • Loading branch information
Helium314 committed Jan 12, 2025
2 parents 5671dcf + bbd1074 commit d4724a5
Show file tree
Hide file tree
Showing 467 changed files with 5,644 additions and 3,652 deletions.
44 changes: 23 additions & 21 deletions .github/workflows/build-debug-apk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,28 @@ permissions:

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew assembleDebug
- name: Rename APK
run: mv app/build/outputs/apk/debug/app-debug.apk app/build/outputs/apk/debug/SCEE-debug-$(git log -n 1 --format='%h').apk
- name: Archive APK
uses: actions/upload-artifact@v4
with:
name: debug-apk
path: app/build/outputs/apk/debug/*.apk
retention-days: 30
- uses: actions/checkout@v4

- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle
run: ./gradlew assembleDebug

- name: Rename APK
run: mv app/build/outputs/apk/debug/app-debug.apk app/build/outputs/apk/debug/SCEE-debug-$(git log -n 1 --format='%h').apk

- name: Archive APK
uses: actions/upload-artifact@v4
with:
name: debug-apk
path: app/build/outputs/apk/debug/*.apk
retention-days: 30
9 changes: 7 additions & 2 deletions .github/workflows/generate-quest-list.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: Generate quest list

on:
workflow_dispatch:

Expand All @@ -8,14 +9,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: set up JDK 17

- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '17'
java-version: '21'
distribution: 'temurin'

- uses: gradle/actions/setup-gradle@v3

- name: Generate quest list
run: ./gradlew generateQuestList

- uses: actions/upload-artifact@v4
with:
name: quest-list.csv
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: "Validate Gradle Wrapper"

on:
push:
paths:
Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: "Lint"

on:
workflow_dispatch:

Expand All @@ -11,6 +12,7 @@ jobs:
steps:
- name: Checkout the source code
uses: actions/checkout@v4

- name: Run Kotlin linter
id: ktlint-check
uses: musichin/ktlint-check@v3.0.0
Expand All @@ -19,6 +21,7 @@ jobs:
reporter: plain?group_by_file,output=${{ env.lintResultFilename }}
relative: true
continue-on-error: true

- name: Kotlin linter result
run: |
cat ${{ env.lintResultFilename }}
Expand Down
23 changes: 12 additions & 11 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,17 @@ on:

jobs:
test:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- uses: gradle/actions/setup-gradle@v3
- name: Test with Gradle
run: ./gradlew test
- uses: actions/checkout@v4

- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

- uses: gradle/actions/setup-gradle@v3

- name: Test with Gradle
run: ./gradlew test
34 changes: 27 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
# Changelog

## v60.1

### Improvements

- Improved Android 15 edge-to-edge display (#6074)
- Always show notes you created yourself if you added the text "#surveyme" (#6075, #6052), by @kmpoppe
- other small stuff (#6092, #6089, #6057...), thanks @kmpoppe, @mnalis

### Fixes

- fix display of non-latin characters in undo dialog (#6043)
- fix handling of conflicts of element deletions (#6060), by @matkoniecz
- fix message notification didn't show, by @matkoniecz

### Quest Improvements

- Postbox royal cypher: Don't ask anymore in some countries (#6084), by @kmpoppe
- Bus stop ref: Also ask in Korea (#6080, #6076), by @kmpoppe
- Post box ref: Also ask in Liechtenstein (#6096), by @dokutan

## v60.0

Redesigned the main screen a little. Here and there you'll notice small differences. The dialog to
Expand Down Expand Up @@ -992,7 +1012,7 @@ Google Play / F-Droid will not update to the next major version v41 automaticall

- Fix housenumbers, road names etc. were not visible on the map on Android 12 (by @matteblair)
- Fix build for F-Droid (#3667)
- Fix recycling materials quest would delete also tags that don't start with "recycling:" but have "yes" as value
- Fix recycling materials quest would delete also tags that don't start with `recycling:` but have `yes` as value

## v39.0

Expand Down Expand Up @@ -1359,7 +1379,7 @@ Special thanks to @FloEdelmann for helping with the refactor.
- Periodically ask for the existence of BBQ spots, ticket validators, emergency life rings and emergency phones (#2679), thanks @arrival-spring
- Also ask for the surface of service roads as long as they are not driveways (#2783)
- Don't remove the check_date tag if it is already tagged, instead, update it (#2861, #2883)
- Don't tag foot=use_sidepath on the road if there is a separate sidewalk (#2895)
- Don't tag `foot=use_sidepath` on the road if there is a separate sidewalk (#2895)

### Other Enhancements

Expand Down Expand Up @@ -1584,7 +1604,7 @@ This update is devoted to checking whether things still exist the way they are m
- Tracktypes: Better wording and pictures (#2294)
- Parking type: Added lane and off-street parking (#2346)
- Ask for roof shape even if roof levels is 0 - but only in countries where flat roofs are not the norm (#1929)
- Kerb quests: Tag barrier=kerb if it is missing (#2348, #2393)
- Kerb quests: Tag `barrier=kerb` if it is missing (#2348, #2393)
- Do not ask for the bench backrest if the bench type is already recorded (#2365)
- Lanes quest: Move "differs for each side" option to main UI (#2350)
- Other small enhancements (#2382)
Expand Down Expand Up @@ -1629,7 +1649,7 @@ This update is devoted to checking whether things still exist the way they are m
- Ask for the max height also below bridges (#1882, #2234)
- Building type: fix wrong name for a silo (#2303)
- Surface: Add "rock" as an answer option (#2298)
- Cycleway resurvey: Interpret a road with oneway:bicycle=no to have no cycleway unless it is tagged explicitly (#2310)
- Cycleway resurvey: Interpret a road with `oneway:bicycle=no` to have no cycleway unless it is tagged explicitly (#2310)
- A few minor enhancements (#2280, #2276, #2221, #2160, #2315, ...)

## v26.2
Expand Down Expand Up @@ -2697,7 +2717,7 @@ Otherwise identical to v5.1.
- Improve street surface quest UI (#76)
- Clearer wording for pedestrian streets (#862) by @ENT8R
- Add "metal" as answer option (#568)
- tag either sett or unhewn_cobblestone, not cobblestone
- tag either `sett` or `unhewn_cobblestone`, not `cobblestone`

#### Road name quest

Expand Down Expand Up @@ -2779,7 +2799,7 @@ A pretty long list for a bugfix update! To be honest, I squeezed in some tiny fe
- fix crash when inputting certain values for cycleways (#740)
- fix rare crash when rotating the map while specifying the cycleway
- don't display the quest for Android <4.4 users (#713)
- always tag oneway:bicycle=no for oneways with bicycle infrastructure for contraflow direction (#717)
- always tag `oneway:bicycle=no` for oneways with bicycle infrastructure for contraflow direction (#717)
- for oneways in contraflow, replace "sharrows" option with option to state that a oneway road is not oneway for cyclists (but has still no dedicated cycleway) (#717)
- show compass needle in cycleway form (#723)
- limit cycleway quests to a few countries which are likely to have any bicycle infrastructure (#749)
Expand Down Expand Up @@ -2834,7 +2854,7 @@ Just a few bugfixes and a translation update
- bugfixes (#628, #624, #638, #593, #627, #645, #640 and crash bugs) thanks @dbdean
- lit quest is now shown also for steps (#631) by @dbdean
- reorder the importance of bus stop shelters (#637) and bicycle parkings up (#641), because this data is actually used
- use maxspeed:type to tag implicit speed limits and properly ask for single/dual carriageways in GB (#492)
- use `maxspeed:type` to tag implicit speed limits and properly ask for single/dual carriageways in GB (#492)

## v2.1

Expand Down
6 changes: 5 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,15 @@ Materials in [`res/documentation`](res/documentation) also may be useful, it inc
* [parser](https://github.com/matkoniecz/Zazolc/tree/taginfo) by [@matkoniecz](https://github.com/matkoniecz) listing tags added by StreetComplete for [taginfo](https://taginfo.openstreetmap.org/projects/streetcomplete#tags)
* [blacklistr](https://github.com/ENT8R/blacklistr) by [@ENT8R](https://github.com/ENT8R) for visualizing StreetComplete's country exclusion list
* [NotesReview](https://github.com/ENT8R/NotesReview) by [@ENT8R](https://github.com/ENT8R) for reviewing notes with a specific keyword (here: `StreetComplete`)
* [oneway-data-api](https://github.com/streetcomplete/oneway-data-api) by [@ENT8R](https://github.com/ENT8R) for getting oneway data from improveosm.org
* [crops-parser](https://github.com/rugk/crops-parser) by [@rugk](https://github.com/rugk) for parsing data for the orchard quest
* [streetcomplete-ad-c3](https://github.com/rugk/streetcomplete-ad-c3) by [@rugk](https://github.com/rugk) as a banner advertisement
* [sc-photo-service](https://github.com/streetcomplete/sc-photo-service) by [@exploide](https://github.com/exploide) allows StreetComplete to upload photos associated with OSM Notes
* [sc-statistics-service](https://github.com/streetcomplete/sc-statistics-service) by [@westnordost](https://github.com/westnordost) aggregates and provides StreetComplete-related statistics about users.
* [StreetComplete-taginfo-categorize](https://github.com/mnalis/StreetComplete-taginfo-categorize) by [@mnalis](https://github.com/mnalis) generates tags listed in [KEYS_THAT_SHOULD_BE_REMOVED_WHEN_PLACE_IS_REPLACED](https://github.com/streetcomplete/StreetComplete/blob/master/app/src/main/java/de/westnordost/streetcomplete/osm/Place.kt#L244)

You may find more projects under [the StreetComplete tag](https://github.com/topics/streetcomplete) on GitHub.

#### Retired

* [oneway-data-api](https://github.com/streetcomplete/oneway-data-api) by [@ENT8R](https://github.com/ENT8R) for getting oneway data from improveosm.org

49 changes: 24 additions & 25 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ android {
}
}

compileSdk = 34
compileSdk = 35
testOptions {
unitTests {
isReturnDefaultValues = true
Expand All @@ -34,9 +34,9 @@ android {
defaultConfig {
applicationId = "de.westnordost.streetcomplete.expert"
minSdk = 21
targetSdk = 34
versionCode = 6003
versionName = "60.0"
targetSdk = 35
versionCode = 6004
versionName = "60.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

Expand Down Expand Up @@ -114,13 +114,12 @@ repositories {
}

dependencies {
val mockitoVersion = "3.12.4"
val mockitoVersion = "5.14.2"

coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.3")
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")

// tests
testImplementation("org.mockito:mockito-core:$mockitoVersion")
testImplementation("org.mockito:mockito-inline:$mockitoVersion")
testImplementation(kotlin("test"))

androidTestImplementation("androidx.test:runner:1.6.2")
Expand All @@ -129,22 +128,22 @@ dependencies {
androidTestImplementation(kotlin("test"))

// dependency injection
implementation(platform("io.insert-koin:koin-bom:4.0.0"))
implementation(platform("io.insert-koin:koin-bom:4.0.1"))
implementation("io.insert-koin:koin-core")
implementation("io.insert-koin:koin-android")
implementation("io.insert-koin:koin-androidx-workmanager")
implementation("io.insert-koin:koin-androidx-compose")

// Android stuff
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.core:core-ktx:1.13.1")
implementation("androidx.core:core-ktx:1.15.0")
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.constraintlayout:constraintlayout:2.2.0")
implementation("androidx.annotation:annotation:1.9.1")
implementation("androidx.fragment:fragment-ktx:1.8.5")
implementation("androidx.preference:preference-ktx:1.2.1")
implementation("androidx.recyclerview:recyclerview:1.3.2")
implementation("androidx.viewpager:viewpager:1.0.0")
implementation("androidx.viewpager:viewpager:1.1.0")
implementation("androidx.localbroadcastmanager:localbroadcastmanager:1.1.0")

// Jetpack Compose
Expand All @@ -157,38 +156,38 @@ dependencies {
implementation("androidx.compose.ui:ui-tooling-preview")
debugImplementation("androidx.compose.ui:ui-tooling")

implementation("androidx.navigation:navigation-compose:2.8.4")
implementation("androidx.navigation:navigation-compose:2.8.5")

implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7")
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.8.7")

// reorderable lists (raw Compose API is pretty complicated)
implementation("sh.calvin.reorderable:reorderable:2.4.0")
implementation("sh.calvin.reorderable:reorderable:2.4.2")

// multiplatform webview (for login via OAuth)
implementation("io.github.kevinnzou:compose-webview-multiplatform-android:1.9.20")
implementation("io.github.kevinnzou:compose-webview-multiplatform-android:1.9.40")

// photos
implementation("androidx.exifinterface:exifinterface:1.3.7")

// settings
implementation("com.russhwolf:multiplatform-settings:1.2.0")
implementation("com.russhwolf:multiplatform-settings:1.3.0")

// Kotlin
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.5.4")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.1")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.1")
implementation("org.jetbrains.kotlinx:kotlinx-io-core:0.6.0")

// Date/time
api("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1")

// scheduling background jobs
implementation("androidx.work:work-runtime-ktx:2.9.1")
implementation("androidx.work:work-runtime-ktx:2.10.0")

// HTTP Client
implementation("io.ktor:ktor-client-core:2.3.13")
implementation("io.ktor:ktor-client-android:2.3.13")
testImplementation("io.ktor:ktor-client-mock:2.3.13")
implementation("io.ktor:ktor-client-core:3.0.3")
implementation("io.ktor:ktor-client-android:3.0.3")
testImplementation("io.ktor:ktor-client-mock:3.0.3")
// TODO: as soon as both ktor-client and kotlinx-serialization have been refactored to be based
// on kotlinx-io, revisit sending and receiving xml/json payloads via APIs, currently it
// is all String-based, i.e. no KMP equivalent of InputStream/OutputStream involved
Expand All @@ -210,11 +209,11 @@ dependencies {

// serialization
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3")
implementation("com.charleskorn.kaml:kaml:0.66.0")
implementation("io.github.pdvrieze.xmlutil:core:0.90.2")
implementation("com.charleskorn.kaml:kaml:0.67.0")
implementation("io.github.pdvrieze.xmlutil:core:0.90.3")

// map and location
implementation("org.maplibre.gl:android-sdk:11.6.1")
implementation("org.maplibre.gl:android-sdk:11.7.1")

// opening hours parser
implementation("de.westnordost:osm-opening-hours:0.1.0")
Expand Down Expand Up @@ -251,7 +250,7 @@ val bcp47ExportLanguages = setOf(
)

// see https://github.com/osmlab/name-suggestion-index/tags for latest version
val nsiVersion = "v6.0.20241208"
val nsiVersion = "v6.0.20250112"
// see https://github.com/openstreetmap/id-tagging-schema/releases for latest version
val presetsVersion = "v6.8.1"

Expand Down
Loading

0 comments on commit d4724a5

Please sign in to comment.