ab864aa7d7
Паритет живого веба (модалка «Новый фильтр»):
- API: GET/PUT /apps/mail/api/sieve/active/{accountId} (MailRepository).
- Наши правила живут в маркированных блоках # F7MOBILE-BEGIN/END
внутри активного скрипта; пользовательские/веб-правила НЕ трогаем,
перед каждой записью скрипт перечитывается (не затираем изменения
из веба). require ["fileinto","imap4flags"] — в начале скрипта.
- Конструктор: если [От/Тема/Кому] содержит X → [переместить в папку /
пометить прочитанным / удалить]; список правил с удалением.
- Вход: Настройки почты → аккаунт → «Фильтры».
- MailSieveScript покрыт юнит-тестами (roundtrip, сохранение чужого
скрипта, экранирование кавычек, все действия) — 4 зелёных.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
49 lines
1.4 KiB
Groovy
49 lines
1.4 KiB
Groovy
plugins {
|
|
id 'com.android.library'
|
|
id 'org.jetbrains.kotlin.android'
|
|
id 'org.jetbrains.kotlin.plugin.compose'
|
|
}
|
|
|
|
android {
|
|
namespace 'ru.forbion.f7cloud.feature.mail'
|
|
compileSdk 36
|
|
|
|
defaultConfig {
|
|
minSdk 26
|
|
}
|
|
buildFeatures {
|
|
compose true
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_17
|
|
targetCompatibility JavaVersion.VERSION_17
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = '17'
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation project(':core:auth')
|
|
implementation project(':core:network')
|
|
implementation project(':core:designsystem')
|
|
implementation project(':feature:files')
|
|
implementation project(':feature:contacts')
|
|
// создание задач/событий из письма (живой веб-паритет)
|
|
implementation project(':feature:tasks')
|
|
implementation project(':feature:calendar')
|
|
implementation libs.coroutines.android
|
|
implementation libs.json
|
|
testImplementation libs.junit
|
|
def composeBom = platform(libs.compose.bom)
|
|
implementation composeBom
|
|
implementation libs.compose.ui
|
|
implementation libs.compose.material3
|
|
implementation libs.compose.foundation
|
|
implementation libs.compose.foundation.layout
|
|
implementation libs.activity.compose
|
|
implementation libs.lifecycle.viewmodel.compose
|
|
implementation libs.coil.compose
|
|
implementation libs.coil.svg
|
|
}
|