Some checks failed
Android CI / build (push) Has been cancelled
- Маршрут: при включённом VPN проверка идёт наперегонки напрямую и через туннель, выигрывает первый ответ; без VPN — напрямую, затем временный VPN-маршрут. Промежуточных «Forgejo не отвечает» больше нет, ошибка — только если не сработал ни один маршрут. Удачный маршрут запоминается. - Подключённый VPN больше не перезапускается ради обновления: правило «запросы приложения к Forgejo — через выбранный proxy» теперь постоянное (RuntimeConfigOptions.standingUpdaterPackageName; без proxy пропускается). - Дельта: центральный каталог нового APK читается по Range, совпадающие записи копируются из установленного APK, остальное догружается; итог сверяется с опубликованным SHA-256, при любом сомнении — полная загрузка с докачкой. 0.5.0 → 0.5.1: 3,39 МБ вместо 117,8 МБ. - Фон: проверка при запуске и раз в сутки (JobScheduler, без новых зависимостей); Stable скачивается сам (по мобильной сети — если ≤ 25 МБ). - Установка через PackageInstaller: на Android 12+ после первой установки самим приложением — без подтверждения; иначе тихое уведомление и баннер, установщик открывается только по нажатию. Всплывающий диалог убран. Проверено: 675 юнит-тестов, lint, verify-project.sh, 32/32 UI- и updater-тестов на эмуляторе API 37 (тихая установка — 5 с без окна). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
28 lines
877 B
Kotlin
28 lines
877 B
Kotlin
import com.android.build.api.dsl.LibraryExtension
|
|
|
|
apply(plugin = "com.android.library")
|
|
|
|
extensions.configure<LibraryExtension> {
|
|
namespace = "io.github.zapretkvn.appupdater"
|
|
compileSdk = 36
|
|
|
|
defaultConfig {
|
|
minSdk = 26
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
testOptions {
|
|
// JVM-тесты строят пустые Intent для результата установки; сами платформенные методы не вызываются.
|
|
unitTests.isReturnDefaultValues = true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
add("implementation", "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0")
|
|
add("implementation", "org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0")
|
|
add("testImplementation", "junit:junit:4.13.2")
|
|
}
|