Skip to content

Commit 1042b08

Browse files
Merge branch 'main' into LanguageUtil_improve
2 parents 32c71f2 + 93edec5 commit 1042b08

File tree

326 files changed

+14490
-2380
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

326 files changed

+14490
-2380
lines changed

.github/workflows/android.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: actions/checkout@v4
12-
- uses: actions/setup-java@v3
12+
- uses: actions/setup-java@v4
1313
with:
1414
distribution: 'temurin'
1515
java-version: '17'
16-
- uses: gradle/gradle-build-action@v2
16+
- uses: gradle/gradle-build-action@v3
1717
- name: Check for missing qq strings
1818
run: ./scripts/missing-qq.py
1919
- name: Checkout submodules
@@ -47,7 +47,7 @@ jobs:
4747
- name: Sleep for 30 seconds, to allow the tag to be deleted
4848
run: sleep 30s
4949
shell: bash
50-
- uses: ncipollo/release-action@v1.12.0
50+
- uses: ncipollo/release-action@v1.13.0
5151
name: Create new tag and release and upload artifacts
5252
with:
5353
name: latest

.github/workflows/android_branch.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v4
13-
- uses: actions/setup-java@v3
13+
- uses: actions/setup-java@v4
1414
with:
1515
distribution: 'temurin'
1616
java-version: '17'
17-
- uses: gradle/gradle-build-action@v2
17+
- uses: gradle/gradle-build-action@v3
1818
- name: Checkout submodules
1919
run: git submodule update --init --recursive
2020
- name: Build, test, and lint
@@ -33,7 +33,7 @@ jobs:
3333
env:
3434
# override default build-tools version (29.0.3) -- optional
3535
BUILD_TOOLS_VERSION: "34.0.0"
36-
- uses: actions/upload-artifact@v3
36+
- uses: actions/upload-artifact@v4
3737
name: Upload APK artifact
3838
with:
3939
name: app_alpha_release

.github/workflows/android_pr.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v4
13-
- uses: gradle/wrapper-validation-action@v1
14-
- uses: actions/setup-java@v3
13+
- uses: gradle/wrapper-validation-action@v2
14+
- uses: actions/setup-java@v4
1515
with:
1616
distribution: 'temurin'
1717
java-version: '17'
18-
- uses: gradle/gradle-build-action@v2
18+
- uses: gradle/gradle-build-action@v3
1919
- name: Check for missing qq strings
2020
run: ./scripts/missing-qq.py
2121
- name: Build, test, and lint

.github/workflows/android_smoke_test.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ jobs:
1212

1313
steps:
1414
- uses: actions/checkout@v4
15-
- uses: actions/setup-java@v3
15+
- uses: actions/setup-java@v4
1616
with:
1717
distribution: 'temurin'
1818
java-version: '17'
19-
- uses: gradle/gradle-build-action@v2
19+
- uses: gradle/gradle-build-action@v3
2020

2121
- name: Instrumentation Tests
2222
uses: reactivecircus/android-emulator-runner@v2
@@ -26,7 +26,7 @@ jobs:
2626

2727
- name: Upload results
2828
if: ${{ always() }}
29-
uses: actions/upload-artifact@v3
29+
uses: actions/upload-artifact@v4
3030
with:
3131
name: instrumentation-test-results ${{ matrix.api-level }}
3232
path: ./**/build/reports/androidTests/connected/**

app/build.gradle

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ android {
3737
applicationId 'org.wikipedia'
3838
minSdk 21
3939
targetSdk 34
40-
versionCode 50466
40+
versionCode 50475
4141
testApplicationId 'org.wikipedia.test'
4242
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
4343
testInstrumentationRunnerArguments clearPackageData: 'true'
@@ -168,18 +168,18 @@ dependencies {
168168
// use http://gradleplease.appspot.com/ or http://search.maven.org/.
169169
// Debug with ./gradlew -q app:dependencies --configuration compile
170170

171-
String okHttpVersion = '4.10.0'
171+
String okHttpVersion = '4.12.0'
172172
String retrofitVersion = '2.9.0'
173-
String glideVersion = '4.15.1'
173+
String glideVersion = '4.16.0'
174174
String mockitoVersion = '5.2.0'
175-
String leakCanaryVersion = '2.12'
175+
String leakCanaryVersion = '2.13'
176176
String kotlinCoroutinesVersion = '1.7.3'
177-
String firebaseMessagingVersion = '23.4.0'
178-
String mlKitVersion = '17.0.4'
177+
String firebaseMessagingVersion = '23.4.1'
178+
String mlKitVersion = '17.0.5'
179179
String roomVersion = "2.6.1"
180180
String espressoVersion = '3.5.1'
181-
String serialization_version = '1.5.1'
182-
String metricsVersion = '2.0'
181+
String serialization_version = '1.6.2'
182+
String metricsVersion = '2.4'
183183

184184
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
185185

@@ -213,17 +213,21 @@ dependencies {
213213
implementation "com.github.bumptech.glide:okhttp3-integration:$glideVersion"
214214
ksp "com.github.bumptech.glide:ksp:$glideVersion"
215215

216+
implementation "com.squareup.okhttp3:okhttp-tls:$okHttpVersion"
216217
implementation "com.squareup.okhttp3:logging-interceptor:$okHttpVersion"
217218
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
218219
implementation "com.squareup.retrofit2:adapter-rxjava3:$retrofitVersion"
219220
implementation "io.reactivex.rxjava3:rxjava:3.1.8"
220221
implementation "io.reactivex.rxjava3:rxandroid:3.0.2"
221222
implementation 'org.apache.commons:commons-lang3:3.14.0'
222-
implementation 'org.jsoup:jsoup:1.17.1'
223+
implementation 'org.jsoup:jsoup:1.17.2'
223224
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
224-
implementation 'com.github.skydoves:balloon:1.6.3'
225+
implementation 'com.github.skydoves:balloon:1.6.4'
225226
implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0"
226227

228+
implementation 'org.maplibre.gl:android-sdk:10.2.0'
229+
implementation 'org.maplibre.gl:android-plugin-annotation-v9:2.0.2'
230+
227231
implementation("androidx.room:room-runtime:$roomVersion")
228232
annotationProcessor "androidx.room:room-compiler:$roomVersion"
229233
ksp "androidx.room:room-compiler:$roomVersion"
@@ -260,7 +264,7 @@ dependencies {
260264
androidTestImplementation "androidx.test.espresso:espresso-intents:$espressoVersion"
261265
androidTestImplementation "androidx.test.espresso:espresso-web:$espressoVersion"
262266
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
263-
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
267+
androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.3.0'
264268
androidTestImplementation "androidx.room:room-testing:$roomVersion"
265269
androidTestUtil 'androidx.test:orchestrator:1.4.2'
266270
}

app/src/androidTest/java/org/wikipedia/TestUtil.kt

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,18 @@ import android.view.View
55
import android.view.ViewGroup
66
import androidx.annotation.ColorInt
77
import androidx.test.espresso.Espresso.onView
8+
import androidx.test.espresso.NoMatchingViewException
89
import androidx.test.espresso.UiController
910
import androidx.test.espresso.ViewAction
10-
import androidx.test.espresso.action.*
11+
import androidx.test.espresso.ViewInteraction
12+
import androidx.test.espresso.action.CoordinatesProvider
13+
import androidx.test.espresso.action.GeneralLocation
14+
import androidx.test.espresso.action.GeneralSwipeAction
15+
import androidx.test.espresso.action.Press
16+
import androidx.test.espresso.action.Swipe
17+
import androidx.test.espresso.action.ViewActions
18+
import androidx.test.espresso.assertion.ViewAssertions.matches
19+
import androidx.test.espresso.matcher.ViewMatchers
1120
import androidx.test.espresso.matcher.ViewMatchers.isRoot
1221
import androidx.test.platform.app.InstrumentationRegistry
1322
import androidx.test.uiautomator.By
@@ -27,6 +36,15 @@ object TestUtil {
2736
return WithGrandparentMatcher(grandparentMatcher)
2837
}
2938

39+
fun ViewInteraction.isDisplayed(): Boolean {
40+
return try {
41+
check(matches(ViewMatchers.isDisplayed()))
42+
true
43+
} catch (e: NoMatchingViewException) {
44+
false
45+
}
46+
}
47+
3048
fun isNotVisible(): Matcher<View> {
3149
return IsNotVisibleMatcher()
3250
}

0 commit comments

Comments
 (0)