diff --git a/.gitignore b/.gitignore
index ad83ced8..12c6f241 100644
--- a/.gitignore
+++ b/.gitignore
@@ -127,3 +127,4 @@ google-services.json
!app/google-services.json
+.idea/appInsightsSettings.xml
diff --git a/app/build.gradle b/app/build.gradle
index c7037937..9e444b2a 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -27,8 +27,8 @@ android {
testApplicationId "io.github.tests.wulkanowy"
minSdkVersion 21
targetSdkVersion 34
- versionCode 165
- versionName "2.6.5"
+ versionCode 168
+ versionName "2.6.8"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resValue "string", "app_name", "Wulkanowy"
@@ -161,7 +161,7 @@ play {
track = 'production'
releaseStatus = ReleaseStatus.IN_PROGRESS
userFraction = 0.99d
- updatePriority = 3
+ updatePriority = 2
enabled.set(false)
}
@@ -191,12 +191,13 @@ ext {
}
dependencies {
- implementation 'io.github.wulkanowy:sdk:2.6.4'
+ implementation 'io.github.wulkanowy:sdk:2.6.7'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.4'
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines"
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-guava:$coroutines"
implementation 'androidx.core:core-ktx:1.13.1'
implementation 'androidx.core:core-splashscreen:1.0.1'
@@ -204,6 +205,7 @@ dependencies {
implementation "androidx.appcompat:appcompat:1.6.1"
implementation "androidx.fragment:fragment-ktx:1.7.0"
implementation "androidx.annotation:annotation:1.7.1"
+ implementation "androidx.javascriptengine:javascriptengine:1.0.0-beta01"
implementation "androidx.preference:preference-ktx:1.2.1"
implementation "androidx.recyclerview:recyclerview:1.3.2"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 79d75bc0..a4257893 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
android:installLocation="internalOnly">
+
+
@@ -42,9 +44,9 @@
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:networkSecurityConfig="@xml/network_security_config"
+ android:resizeableActivity="true"
android:supportsRtl="false"
android:theme="@style/WulkanowyTheme"
- android:resizeableActivity="true"
tools:ignore="DataExtractionRules,UnusedAttribute">
()
+ private val sandbox: ListenableFuture? =
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && JavaScriptSandbox.isSupported())
+ JavaScriptSandbox.createConnectedInstanceAsync(context)
+ else null
private val sdk = Sdk().apply {
- androidVersion = android.os.Build.VERSION.RELEASE
- buildTag = android.os.Build.MODEL
+ androidVersion = Build.VERSION.RELEASE
+ buildTag = Build.MODEL
userAgentTemplate = remoteConfig.userAgentTemplate
setSimpleHttpLogger { Timber.d(it) }
setAdditionalCookieManager(webkitCookieManagerProxy)
@@ -47,6 +59,23 @@ class WulkanowySdkFactory @Inject constructor(
if (mapping != null) {
endpointsMapping = mapping.endpoints
vTokenMapping = mapping.vTokens
+ vTokenSchemeMapping = mapping.vTokenScheme
+ vParamsEvaluation = createIsolate()
+ }
+ }
+ }
+
+ private suspend fun createIsolate(): suspend () -> EvaluateHandler {
+ return {
+ val isolate = sandbox?.await()?.createIsolate()
+ object : EvaluateHandler {
+ override suspend fun evaluate(code: String): String? {
+ return isolate?.evaluateJavaScriptAsync(code)?.await()
+ }
+
+ override fun close() {
+ isolate?.close()
+ }
}
}
}
diff --git a/app/src/main/java/io/github/wulkanowy/data/api/models/Mapping.kt b/app/src/main/java/io/github/wulkanowy/data/api/models/Mapping.kt
index 9a72542f..c4667a47 100644
--- a/app/src/main/java/io/github/wulkanowy/data/api/models/Mapping.kt
+++ b/app/src/main/java/io/github/wulkanowy/data/api/models/Mapping.kt
@@ -11,4 +11,7 @@ data class Mapping(
@SerialName("vTokens")
val vTokens: Map>>,
+
+ @SerialName("vTokenScheme")
+ val vTokenScheme: Map> = emptyMap(),
)
diff --git a/app/src/main/java/io/github/wulkanowy/data/api/services/WulkanowyService.kt b/app/src/main/java/io/github/wulkanowy/data/api/services/WulkanowyService.kt
index bf1349f2..161e93d6 100644
--- a/app/src/main/java/io/github/wulkanowy/data/api/services/WulkanowyService.kt
+++ b/app/src/main/java/io/github/wulkanowy/data/api/services/WulkanowyService.kt
@@ -11,6 +11,6 @@ interface WulkanowyService {
@GET("/v1.json")
suspend fun getAdminMessages(): List
- @GET("/mapping1.json")
+ @GET("/mapping2.json")
suspend fun getMapping(): Mapping
}
diff --git a/app/src/main/play/release-notes/pl-PL/default.txt b/app/src/main/play/release-notes/pl-PL/default.txt
index ef8114ff..889591fa 100644
--- a/app/src/main/play/release-notes/pl-PL/default.txt
+++ b/app/src/main/play/release-notes/pl-PL/default.txt
@@ -1,5 +1,6 @@
-Wersja 2.6.5
+Wersja 2.6.8
-— naprawiliśmy pozostałe bieżące problemy spowodowane ostatnimi blokadami Wulkanowego przez wiadomo kogo
+— i znowu aktualizacja, żeby wiadomości działały chociaż w piątek. Później już pewnie nie będą
+— a i jeszcze naprawiliśmy dostęp mobilny, bo prosiliście
Pełna lista zmian: https://github.com/wulkanowy/wulkanowy/releases
diff --git a/app/src/test/java/io/github/wulkanowy/data/WulkanowySdkFactoryTest.kt b/app/src/test/java/io/github/wulkanowy/data/WulkanowySdkFactoryTest.kt
index e52d771b..93980429 100644
--- a/app/src/test/java/io/github/wulkanowy/data/WulkanowySdkFactoryTest.kt
+++ b/app/src/test/java/io/github/wulkanowy/data/WulkanowySdkFactoryTest.kt
@@ -41,6 +41,7 @@ class WulkanowySdkFactoryTest {
webkitCookieManagerProxy = mockk(),
studentDb = studentDao,
wulkanowyRepository = mockk(relaxed = true),
+ context = mockk(),
)
)