Loading app-feature-preview/src/main/AndroidManifest.xml +7 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" > <uses-permission android:name="android.permission.INTERNET"/> Loading @@ -8,8 +11,11 @@ android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:theme="@style/Theme.Thunderbird.Splashscreen" tools:ignore="UnusedAttribute" > <activity Loading app-feature-preview/src/main/res/xml/network_security_config.xml 0 → 100644 +12 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <network-security-config xmlns:tools="http://schemas.android.com/tools" tools:ignore="InsecureBaseConfiguration,AcceptsUserCertificates"> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> </network-security-config> core/common/src/main/kotlin/app/k9mail/core/common/net/Hostname.kt +2 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,5 @@ value class Hostname(val value: String) { } fun String.toHostname() = Hostname(this) fun Hostname.isIpAddress(): Boolean = HostNameUtils.isLegalIPAddress(value) != null core/ui/compose/theme/src/main/java/app/k9mail/core/ui/compose/theme/Icons.kt +8 −2 Original line number Diff line number Diff line Loading @@ -3,10 +3,11 @@ package app.k9mail.core.ui.compose.theme import androidx.compose.material.icons.filled.AccountCircle import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Error import androidx.compose.material.icons.filled.Inbox import androidx.compose.material.icons.filled.Menu import androidx.compose.material.icons.filled.MoveToInbox import androidx.compose.material.icons.filled.Notifications import androidx.compose.material.icons.filled.Outbox import androidx.compose.material.icons.filled.Security import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff import androidx.compose.material.icons.outlined.ArrowBack Loading @@ -17,15 +18,18 @@ import androidx.compose.material.icons.outlined.Error import androidx.compose.material.icons.outlined.ErrorOutline import androidx.compose.material.icons.outlined.ExpandLess import androidx.compose.material.icons.outlined.ExpandMore import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.outlined.Menu import androidx.compose.material.icons.outlined.WarningAmber import androidx.compose.material.icons.Icons as MaterialIcons object Icons { object Filled { val error = MaterialIcons.Filled.Error val inbox = MaterialIcons.Filled.Inbox val inbox = MaterialIcons.Filled.MoveToInbox val notification = MaterialIcons.Filled.Notifications val outbox = MaterialIcons.Filled.Outbox val security = MaterialIcons.Filled.Security val passwordVisibility = MaterialIcons.Filled.Visibility val passwordVisibilityOff = MaterialIcons.Filled.VisibilityOff val user = MaterialIcons.Filled.AccountCircle Loading @@ -37,6 +41,8 @@ object Icons { val arrowDropUp = MaterialIcons.Outlined.ArrowDropUp val menu = MaterialIcons.Outlined.Menu val check = MaterialIcons.Outlined.Check val info = MaterialIcons.Outlined.Info val warning = MaterialIcons.Outlined.WarningAmber val error = MaterialIcons.Outlined.ErrorOutline val expandMore = MaterialIcons.Outlined.ExpandMore val expandLess = MaterialIcons.Outlined.ExpandLess Loading feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/domain/input/BooleanInputField.kt +4 −4 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ class BooleanInputField( override val error: ValidationError? = null, override val isValid: Boolean = false, ) : InputField<Boolean?> { override fun updateValue(value: Boolean?): InputField<Boolean?> { override fun updateValue(value: Boolean?): BooleanInputField { return BooleanInputField( value = value, error = null, Loading @@ -16,7 +16,7 @@ class BooleanInputField( ) } override fun updateError(error: ValidationError?): InputField<Boolean?> { override fun updateError(error: ValidationError?): BooleanInputField { return BooleanInputField( value = value, error = error, Loading @@ -24,7 +24,7 @@ class BooleanInputField( ) } override fun updateValidity(isValid: Boolean): InputField<Boolean?> { override fun updateValidity(isValid: Boolean): BooleanInputField { if (isValid == this.isValid) return this return BooleanInputField( Loading @@ -34,7 +34,7 @@ class BooleanInputField( ) } override fun updateFromValidationResult(result: ValidationResult): InputField<Boolean?> { override fun updateFromValidationResult(result: ValidationResult): BooleanInputField { return when (result) { is ValidationResult.Success -> BooleanInputField( value = value, Loading Loading
app-feature-preview/src/main/AndroidManifest.xml +7 −1 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:tools="http://schemas.android.com/tools" xmlns:android="http://schemas.android.com/apk/res/android" > <uses-permission android:name="android.permission.INTERNET"/> Loading @@ -8,8 +11,11 @@ android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config" android:supportsRtl="true" android:theme="@style/Theme.Thunderbird.Splashscreen" tools:ignore="UnusedAttribute" > <activity Loading
app-feature-preview/src/main/res/xml/network_security_config.xml 0 → 100644 +12 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <network-security-config xmlns:tools="http://schemas.android.com/tools" tools:ignore="InsecureBaseConfiguration,AcceptsUserCertificates"> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> </network-security-config>
core/common/src/main/kotlin/app/k9mail/core/common/net/Hostname.kt +2 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,5 @@ value class Hostname(val value: String) { } fun String.toHostname() = Hostname(this) fun Hostname.isIpAddress(): Boolean = HostNameUtils.isLegalIPAddress(value) != null
core/ui/compose/theme/src/main/java/app/k9mail/core/ui/compose/theme/Icons.kt +8 −2 Original line number Diff line number Diff line Loading @@ -3,10 +3,11 @@ package app.k9mail.core.ui.compose.theme import androidx.compose.material.icons.filled.AccountCircle import androidx.compose.material.icons.filled.Check import androidx.compose.material.icons.filled.Error import androidx.compose.material.icons.filled.Inbox import androidx.compose.material.icons.filled.Menu import androidx.compose.material.icons.filled.MoveToInbox import androidx.compose.material.icons.filled.Notifications import androidx.compose.material.icons.filled.Outbox import androidx.compose.material.icons.filled.Security import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff import androidx.compose.material.icons.outlined.ArrowBack Loading @@ -17,15 +18,18 @@ import androidx.compose.material.icons.outlined.Error import androidx.compose.material.icons.outlined.ErrorOutline import androidx.compose.material.icons.outlined.ExpandLess import androidx.compose.material.icons.outlined.ExpandMore import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.outlined.Menu import androidx.compose.material.icons.outlined.WarningAmber import androidx.compose.material.icons.Icons as MaterialIcons object Icons { object Filled { val error = MaterialIcons.Filled.Error val inbox = MaterialIcons.Filled.Inbox val inbox = MaterialIcons.Filled.MoveToInbox val notification = MaterialIcons.Filled.Notifications val outbox = MaterialIcons.Filled.Outbox val security = MaterialIcons.Filled.Security val passwordVisibility = MaterialIcons.Filled.Visibility val passwordVisibilityOff = MaterialIcons.Filled.VisibilityOff val user = MaterialIcons.Filled.AccountCircle Loading @@ -37,6 +41,8 @@ object Icons { val arrowDropUp = MaterialIcons.Outlined.ArrowDropUp val menu = MaterialIcons.Outlined.Menu val check = MaterialIcons.Outlined.Check val info = MaterialIcons.Outlined.Info val warning = MaterialIcons.Outlined.WarningAmber val error = MaterialIcons.Outlined.ErrorOutline val expandMore = MaterialIcons.Outlined.ExpandMore val expandLess = MaterialIcons.Outlined.ExpandLess Loading
feature/account/setup/src/main/kotlin/app/k9mail/feature/account/setup/domain/input/BooleanInputField.kt +4 −4 Original line number Diff line number Diff line Loading @@ -8,7 +8,7 @@ class BooleanInputField( override val error: ValidationError? = null, override val isValid: Boolean = false, ) : InputField<Boolean?> { override fun updateValue(value: Boolean?): InputField<Boolean?> { override fun updateValue(value: Boolean?): BooleanInputField { return BooleanInputField( value = value, error = null, Loading @@ -16,7 +16,7 @@ class BooleanInputField( ) } override fun updateError(error: ValidationError?): InputField<Boolean?> { override fun updateError(error: ValidationError?): BooleanInputField { return BooleanInputField( value = value, error = error, Loading @@ -24,7 +24,7 @@ class BooleanInputField( ) } override fun updateValidity(isValid: Boolean): InputField<Boolean?> { override fun updateValidity(isValid: Boolean): BooleanInputField { if (isValid == this.isValid) return this return BooleanInputField( Loading @@ -34,7 +34,7 @@ class BooleanInputField( ) } override fun updateFromValidationResult(result: ValidationResult): InputField<Boolean?> { override fun updateFromValidationResult(result: ValidationResult): BooleanInputField { return when (result) { is ValidationResult.Success -> BooleanInputField( value = value, Loading