android: minSdk 24 (material3 1.5 requirement), drop overrideLibrary workaround

This commit is contained in:
Denozordec committed 2026-10-10 00:27:24 +07:00
1 parent 203a67ee86
commit c9048143cc
3 files changed
+5 -8

No files matched your search

+3 -3
View File
@@ -30,7 +30,7 @@ def keystoreKeyPassword = envOr('KEY_PASSWORD', '')
android {
namespace = 'org.strongswan.android'
/* minSdk 23 flipped AGP's default to uncompressed .so (extractNativeLibs=false):
/* minSdk >= 23 flips AGP's default to uncompressed .so (extractNativeLibs=false):
* the APK grew 12 -> 23 MB. Updates are downloaded over cellular, so keep
* the libraries compressed as before. */
packaging {
@@ -42,7 +42,7 @@ android {
defaultConfig {
applicationId "one.shx.strongswan.ext"
compileSdk = 37
minSdk = 23
minSdk = 24
targetSdk = 36
versionCode 159
@@ -165,7 +165,7 @@ dependencies {
implementation composeBom
implementation 'androidx.compose.ui:ui'
implementation 'androidx.compose.material3:material3:1.5.0-beta01'
/* adaptive-navigation-suite (NavigationSuiteScaffold) requires minSdk 23 */
/* adaptive-navigation-suite (NavigationSuiteScaffold) requires minSdk 23+ (material3 1.5 requires 24) */
implementation 'androidx.compose.material3:material3-adaptive-navigation-suite:1.5.0-beta01'
implementation 'androidx.compose.material:material-icons-extended'
/* home screen widget (status + connect button) */
@@ -19,9 +19,6 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- material3-ripple 1.5.0-beta01 declares minSdk 24; the app keeps minSdk 23. -->
<uses-sdk tools:overrideLibrary="androidx.compose.material3.ripple,androidx.compose.material3.adaptive.navigationsuite,androidx.compose.material3" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
+2 -2
View File
@@ -133,9 +133,9 @@
## Редизайн 2.15 (ветка interface-ux-ui-2026): статус по факту
Этапы 0–4 выше устарели в части ограничений: minSdk уже 23, Expressive-тема включена. Что сделано:
Этапы 0–4 выше устарели в части ограничений: minSdk поднят до 24, Expressive-тема включена. Что сделано:
- **Тулчейн:** AGP 9.1.1, Gradle 9.3.1, Kotlin 2.2.21 (built-in Kotlin, `kotlin-android` убран), compileSdk 37 (targetSdk 36), Java 11, BOM 2026.09.00 (compose 1.12), **material3 1.5.0-beta01**. Библиотеки material3 1.5 объявляют minSdk 24: приложение держит 23 через `tools:overrideLibrary` в манифесте (на API 23 возможны сбои — риск принят). `proguard-android-optimize.txt` вместо non-optimize (AGP 9 отвергает старый файл).
- **Тулчейн:** AGP 9.1.1, Gradle 9.3.1, Kotlin 2.2.21 (built-in Kotlin, `kotlin-android` убран), compileSdk 37 (targetSdk 36), Java 11, BOM 2026.09.00 (compose 1.12), **material3 1.5.0-beta01**. Библиотеки material3 1.5 требуют minSdk 24, поэтому **minSdk поднят до 24** (Android 7.0); обходные `tools:overrideLibrary` не нужны. `proguard-android-optimize.txt` вместо non-optimize (AGP 9 отвергает старый файл).
- **Тема (этап 1) ✅:** `MaterialExpressiveTheme` + `MotionScheme.expressive()`, тональная палитра с `surfaceContainer*`, токены `ShxSpacing`/`ShxShapes`, выбор темы системная/светлая/тёмная (`ShxThemeSettings.themeMode`), сплэш/окно/системные панели совпадают с Compose-поверхностью (`shx_*` в `colors.xml`).
- **Компоненты ✅:** `ShxSectionCard`, `ShxListRow`, `ShxStatusPill`/`ShxConnectedPill`, `ShxEmptyState`, `ShxSnackbarHost`; переходы между вкладками — fade-through на motion scheme, «назад» с любой вкладки ведёт на «Подключение», `LoadingIndicator`/`LinearWavyProgressIndicator`, Snackbar вместо Toast в `ShxApp`, Настройках, форме профиля; хаптика подключения/отключения.
- **«Подключение» ✅:** hero-кнопка с морфингом формы (круг → cookie), чип профиля с exit-IP + выбор профиля в bottom sheet (дублирующий список профилей убран), плитки трафика, один слот баннера (ошибка приоритетнее белого списка), «Доступность» свёрнута в сводку. Файл разбит на `home/*`. На ширине ≥ 840dp две колонки.