diff --git a/.editorconfig b/.editorconfig
index 4f23d46afd..26bef415d7 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -6,7 +6,7 @@ indent_style = space
insert_final_newline = true
max_line_length = 160
tab_width = 4
-ij_continuation_indent_size = 8
+ij_continuation_indent_size = 4
ij_formatter_off_tag = @formatter:off
ij_formatter_on_tag = @formatter:on
ij_formatter_tags_enabled = false
@@ -105,7 +105,7 @@ ij_java_for_statement_wrap = off
ij_java_generate_final_locals = false
ij_java_generate_final_parameters = false
ij_java_if_brace_force = never
-ij_java_imports_layout = $android.**,$androidx.**,$com.**,$junit.**,$net.**,$org.**,$java.**,$javax.**,$*,|,android.**,|,androidx.**,|,com.**,|,junit.**,|,net.**,|,org.**,|,java.**,|,javax.**,|,*,|
+ij_java_imports_layout = $android.**, $androidx.**, $com.**, $junit.**, $net.**, $org.**, $java.**, $javax.**, $*, |, android.**, |, androidx.**, |, com.**, |, junit.**, |, net.**, |, org.**, |, java.**, |, javax.**, |, *, |
ij_java_indent_case_from_switch = true
ij_java_insert_inner_class_imports = false
ij_java_insert_override_annotation = true
@@ -640,7 +640,7 @@ ij_groovy_for_statement_right_paren_on_new_line = false
ij_groovy_for_statement_wrap = off
ij_groovy_if_brace_force = never
ij_groovy_import_annotation_wrap = 2
-ij_groovy_imports_layout = *,|,javax.**,java.**,|,$*
+ij_groovy_imports_layout = *, |, javax.**, java.**, |, $*
ij_groovy_indent_case_from_switch = true
ij_groovy_indent_label_blocks = true
ij_groovy_insert_inner_class_imports = false
@@ -797,7 +797,7 @@ ij_kotlin_field_annotation_wrap = normal
ij_kotlin_finally_on_new_line = false
ij_kotlin_if_rparen_on_new_line = false
ij_kotlin_import_nested_classes = false
-ij_kotlin_imports_layout = *,java.**,javax.**,kotlin.**,^
+ij_kotlin_imports_layout = *, java.**, javax.**, kotlin.**, ^
ij_kotlin_insert_whitespaces_in_simple_one_line_method = true
ij_kotlin_keep_blank_lines_before_right_brace = 0
ij_kotlin_keep_blank_lines_in_code = 1
@@ -860,22 +860,22 @@ ij_json_spaces_within_brackets = false
ij_json_wrap_long_lines = false
[{*.htm,*.html,*.sht,*.shtm,*.shtml}]
-ij_html_add_new_line_before_tags = body,div,p,form,h1,h2,h3
+ij_html_add_new_line_before_tags = body, div, p, form, h1, h2, h3
ij_html_align_attributes = true
ij_html_align_text = false
ij_html_attribute_wrap = normal
ij_html_block_comment_at_first_column = true
ij_html_do_not_align_children_of_min_lines = 0
-ij_html_do_not_break_if_inline_tags = title,h1,h2,h3,h4,h5,h6,p
-ij_html_do_not_indent_children_of_tags = html,body,thead,tbody,tfoot
+ij_html_do_not_break_if_inline_tags = title, h1, h2, h3, h4, h5, h6, p
+ij_html_do_not_indent_children_of_tags = html, body, thead, tbody, tfoot
ij_html_enforce_quotes = false
-ij_html_inline_tags = a,abbr,acronym,b,basefont,bdo,big,br,cite,cite,code,dfn,em,font,i,img,input,kbd,label,q,s,samp,select,small,span,strike,strong,sub,sup,textarea,tt,u,var
+ij_html_inline_tags = a, abbr, acronym, b, basefont, bdo, big, br, cite, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var
ij_html_keep_blank_lines = 2
ij_html_keep_indents_on_empty_lines = false
ij_html_keep_line_breaks = true
ij_html_keep_line_breaks_in_text = true
ij_html_keep_whitespaces = false
-ij_html_keep_whitespaces_inside = span,pre,textarea
+ij_html_keep_whitespaces_inside = span, pre, textarea
ij_html_line_comment_at_first_column = true
ij_html_new_line_after_last_attribute = never
ij_html_new_line_before_first_attribute = never
diff --git a/.github/workflows/triage-labelled.yml b/.github/workflows/triage-labelled.yml
index 25dcc59e36..de2522c9e3 100644
--- a/.github/workflows/triage-labelled.yml
+++ b/.github/workflows/triage-labelled.yml
@@ -2,7 +2,7 @@ name: Move labelled issues to correct boards and columns
on:
issues:
- types: [labeled]
+ types: [ labeled ]
jobs:
move_element_x_issues:
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
new file mode 100644
index 0000000000..74709d9df5
--- /dev/null
+++ b/.idea/codeStyles/Project.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xmlns:android
+
+ ^$
+
+
+
+
+
+
+
+
+ xmlns:.*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*:id
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ .*:name
+
+ http://schemas.android.com/apk/res/android
+
+
+
+
+
+
+
+
+ name
+
+ ^$
+
+
+
+
+
+
+
+
+ style
+
+ ^$
+
+
+
+
+
+
+
+
+ .*
+
+ ^$
+
+
+ BY_NAME
+
+
+
+
+
+
+ .*
+
+ http://schemas.android.com/apk/res/android
+
+
+ ANDROID_ATTRIBUTE_ORDER
+
+
+
+
+
+
+ .*
+
+ .*
+
+
+ BY_NAME
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
new file mode 100644
index 0000000000..79ee123c2b
--- /dev/null
+++ b/.idea/codeStyles/codeStyleConfig.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index b288e273cf..82cc63ea3b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,5 @@
# element-x-android-poc
+
Proof Of Concept to run a Matrix client on Android devices using the Matrix Rust Sdk and Jetpack compose.
-The plan is [here](https://github.com/vector-im/element-x-android-poc/issues/1)!
\ No newline at end of file
+The plan is [here](https://github.com/vector-im/element-x-android-poc/issues/1)!
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 02a86ad839..a173819d1f 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -29,12 +29,12 @@ android {
}
register("nightly") {
keyAlias = System.getenv("ELEMENT_ANDROID_NIGHTLY_KEYID")
- ?: project.property("signing.element.nightly.keyId") as? String?
+ ?: project.property("signing.element.nightly.keyId") as? String?
keyPassword = System.getenv("ELEMENT_ANDROID_NIGHTLY_KEYPASSWORD")
- ?: project.property("signing.element.nightly.keyPassword") as? String?
+ ?: project.property("signing.element.nightly.keyPassword") as? String?
storeFile = file("./signature/nightly.keystore")
storePassword = System.getenv("ELEMENT_ANDROID_NIGHTLY_STOREPASSWORD")
- ?: project.property("signing.element.nightly.storePassword") as? String?
+ ?: project.property("signing.element.nightly.storePassword") as? String?
}
}
@@ -80,7 +80,6 @@ android {
appId = "1:912726360885:android:e17435e0beb0303000427c"
}
}
-
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
@@ -135,29 +134,29 @@ android {
exclude { element -> element.file.path.contains("$buildDir/generated/") }
}
disabledRules.set(
- setOf(
- // TODO Re-enable these 4 rules after reformatting project
- "indent",
- "experimental:argument-list-wrapping",
- "max-line-length",
- "parameter-list-wrapping",
+ setOf(
+ // TODO Re-enable these 4 rules after reformatting project
+ "indent",
+ "experimental:argument-list-wrapping",
+ "max-line-length",
+ "parameter-list-wrapping",
- "spacing-between-declarations-with-comments",
- "no-multi-spaces",
- "experimental:spacing-between-declarations-with-annotations",
- "experimental:annotation",
- // - Missing newline after "("
- // - Missing newline before ")"
- "wrapping",
- // - Unnecessary trailing comma before ")"
- "experimental:trailing-comma",
- // - A block comment in between other elements on the same line is disallowed
- "experimental:comment-wrapping",
- // - A KDoc comment after any other element on the same line must be separated by a new line
- "experimental:kdoc-wrapping",
- // Ignore error "Redundant curly braces", since we use it to fix false positives, for instance in "elementLogs.${i}.txt"
- "string-template",
- )
+ "spacing-between-declarations-with-comments",
+ "no-multi-spaces",
+ "experimental:spacing-between-declarations-with-annotations",
+ "experimental:annotation",
+ // - Missing newline after "("
+ // - Missing newline before ")"
+ "wrapping",
+ // - Unnecessary trailing comma before ")"
+ "experimental:trailing-comma",
+ // - A block comment in between other elements on the same line is disallowed
+ "experimental:comment-wrapping",
+ // - A KDoc comment after any other element on the same line must be separated by a new line
+ "experimental:kdoc-wrapping",
+ // Ignore error "Redundant curly braces", since we use it to fix false positives, for instance in "elementLogs.${i}.txt"
+ "string-template",
+ )
)
}
}
diff --git a/app/src/main/java/io/element/android/x/Showkase.kt b/app/src/main/java/io/element/android/x/ElementRootModule.kt
similarity index 78%
rename from app/src/main/java/io/element/android/x/Showkase.kt
rename to app/src/main/java/io/element/android/x/ElementRootModule.kt
index 999cc5bc68..ea6e1e7f31 100644
--- a/app/src/main/java/io/element/android/x/Showkase.kt
+++ b/app/src/main/java/io/element/android/x/ElementRootModule.kt
@@ -4,4 +4,4 @@ import com.airbnb.android.showkase.annotation.ShowkaseRoot
import com.airbnb.android.showkase.annotation.ShowkaseRootModule
@ShowkaseRoot
-class ElementRootModule : ShowkaseRootModule
\ No newline at end of file
+class ElementRootModule : ShowkaseRootModule
diff --git a/app/src/main/java/io/element/android/x/ElementXApplication.kt b/app/src/main/java/io/element/android/x/ElementXApplication.kt
index 715b6c215b..df853fee82 100644
--- a/app/src/main/java/io/element/android/x/ElementXApplication.kt
+++ b/app/src/main/java/io/element/android/x/ElementXApplication.kt
@@ -29,4 +29,4 @@ class ElementXApplication : Application(), ImageLoaderFactory {
}
.build()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/io/element/android/x/MainActivity.kt b/app/src/main/java/io/element/android/x/MainActivity.kt
index 68c524d52a..80df65935c 100644
--- a/app/src/main/java/io/element/android/x/MainActivity.kt
+++ b/app/src/main/java/io/element/android/x/MainActivity.kt
@@ -19,8 +19,15 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Close
-import androidx.compose.material3.*
-import androidx.compose.runtime.*
+import androidx.compose.material3.Button
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
@@ -106,7 +113,6 @@ class MainActivity : ComponentActivity() {
OnLifecycleEvent { _, event ->
Timber.v("OnLifecycleEvent: $event")
}
-
}
@Composable
@@ -165,5 +171,4 @@ class MainActivity : ComponentActivity() {
fun MainContentPreview() {
MainContent(startRoute = OnBoardingScreenNavigationDestination)
}
-
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/io/element/android/x/MainViewModel.kt b/app/src/main/java/io/element/android/x/MainViewModel.kt
index 2cdc09989c..198697edb9 100644
--- a/app/src/main/java/io/element/android/x/MainViewModel.kt
+++ b/app/src/main/java/io/element/android/x/MainViewModel.kt
@@ -13,14 +13,14 @@ class MainViewModel : ViewModel() {
return matrix.isLoggedIn().first()
}
- fun startSyncIfLogged(){
+ fun startSyncIfLogged() {
viewModelScope.launch {
- if(!isLoggedIn()) return@launch
+ if (!isLoggedIn()) return@launch
matrix.activeClient().startSync()
}
}
- fun stopSyncIfLogged(){
+ fun stopSyncIfLogged() {
viewModelScope.launch {
if (!isLoggedIn()) return@launch
matrix.activeClient().stopSync()
@@ -31,4 +31,4 @@ class MainViewModel : ViewModel() {
matrix.restoreSession()
matrix.activeClient().startSync()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/io/element/android/x/Navigation.kt b/app/src/main/java/io/element/android/x/Navigation.kt
index 5e67ebfff4..9555fcb555 100644
--- a/app/src/main/java/io/element/android/x/Navigation.kt
+++ b/app/src/main/java/io/element/android/x/Navigation.kt
@@ -77,6 +77,3 @@ fun RoomListScreenNavigation(navigator: DestinationsNavigator) {
fun MessagesScreenNavigation(roomId: String, navigator: DestinationsNavigator) {
MessagesScreen(roomId, navigator::navigateUp)
}
-
-
-
diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml
index 80e60d5f76..87cfa21f41 100644
--- a/app/src/main/res/drawable/ic_launcher_foreground.xml
+++ b/app/src/main/res/drawable/ic_launcher_foreground.xml
@@ -3,25 +3,26 @@
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/docs/usefulLinks.md b/docs/usefulLinks.md
index 35ae4cf8c8..9c0ddde819 100644
--- a/docs/usefulLinks.md
+++ b/docs/usefulLinks.md
@@ -1,14 +1,11 @@
### VersionCatalog
-
-
-
### Jetpack Compose
https://developer.android.com/jetpack/compose/mental-model
-
+
https://android.googlesource.com/platform/frameworks/support/+/androidx-main/compose/docs/compose-api-guidelines.md#api-guidelines-for-jetpack-compose
Preview
https://alexzh.com/jetpack-compose-preview/
-https://github.com/airbnb/Showkase
\ No newline at end of file
+https://github.com/airbnb/Showkase
diff --git a/features/login/src/androidTest/java/io/element/android/x/features/login/ExampleInstrumentedTest.kt b/features/login/src/androidTest/java/io/element/android/x/features/login/ExampleInstrumentedTest.kt
index ba9eb96b15..ec5ace41e6 100644
--- a/features/login/src/androidTest/java/io/element/android/x/features/login/ExampleInstrumentedTest.kt
+++ b/features/login/src/androidTest/java/io/element/android/x/features/login/ExampleInstrumentedTest.kt
@@ -1,13 +1,11 @@
package io.element.android.x.features.login
-import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
-
+import androidx.test.platform.app.InstrumentationRegistry
+import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
-import org.junit.Assert.*
-
/**
* Instrumented test, which will execute on an Android device.
*
@@ -21,4 +19,4 @@ class ExampleInstrumentedTest {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("io.element.android.x.features.login.test", appContext.packageName)
}
-}
\ No newline at end of file
+}
diff --git a/features/login/src/main/AndroidManifest.xml b/features/login/src/main/AndroidManifest.xml
index a5918e68ab..e100076157 100644
--- a/features/login/src/main/AndroidManifest.xml
+++ b/features/login/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt b/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt
index 9e5540ba01..d521f93e2c 100644
--- a/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt
+++ b/features/login/src/main/java/io/element/android/x/features/login/LoginScreen.kt
@@ -2,7 +2,13 @@
package io.element.android.x.features.login
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.imePadding
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
@@ -10,8 +16,21 @@ import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Visibility
import androidx.compose.material.icons.filled.VisibilityOff
-import androidx.compose.material3.*
-import androidx.compose.runtime.*
+import androidx.compose.material3.Button
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontWeight
@@ -55,7 +74,6 @@ fun LoginScreen(
)
}
-
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun LoginContent(
diff --git a/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt b/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt
index 5593313149..fcc590344d 100644
--- a/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt
+++ b/features/login/src/main/java/io/element/android/x/features/login/LoginViewModel.kt
@@ -55,4 +55,4 @@ class LoginViewModel(initialState: LoginViewState) :
formState.value = formState.value.copy(login = name)
setState { copy(isLoggedIn = Uninitialized) }
}
-}
\ No newline at end of file
+}
diff --git a/features/login/src/main/java/io/element/android/x/features/login/LoginViewState.kt b/features/login/src/main/java/io/element/android/x/features/login/LoginViewState.kt
index 62513cff08..d64d32ce58 100644
--- a/features/login/src/main/java/io/element/android/x/features/login/LoginViewState.kt
+++ b/features/login/src/main/java/io/element/android/x/features/login/LoginViewState.kt
@@ -22,5 +22,4 @@ data class LoginFormState(
companion object {
val Default = LoginFormState("", "")
}
-
-}
\ No newline at end of file
+}
diff --git a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt
index de03fcb868..6e22221327 100644
--- a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt
+++ b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerScreen.kt
@@ -3,13 +3,27 @@
package io.element.android.x.features.login.changeserver
import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.defaultMinSize
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.imePadding
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll
-import androidx.compose.material3.*
+import androidx.compose.material3.Button
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.OutlinedTextField
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
@@ -45,7 +59,6 @@ fun ChangeServerScreen(
)
}
-
@Composable
fun ChangeServerContent(
state: ChangeServerViewState,
@@ -101,7 +114,7 @@ fun ChangeServerContent(
)
Text(
text = "A server is a home for all your data.\n" +
- "You choose your server and it’s easy to make one.", // TODO "Learn more.",
+ "You choose your server and it’s easy to make one.", // TODO "Learn more.",
modifier = Modifier
.fillMaxWidth()
.align(Alignment.CenterHorizontally)
diff --git a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt
index 58679beb91..15793e4a57 100644
--- a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt
+++ b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewModel.kt
@@ -37,4 +37,4 @@ class ChangeServerViewModel(initialState: ChangeServerViewState) :
}
}
}
-}
\ No newline at end of file
+}
diff --git a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewState.kt b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewState.kt
index 34a7d4aeb8..8e1f907c31 100644
--- a/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewState.kt
+++ b/features/login/src/main/java/io/element/android/x/features/login/changeserver/ChangeServerViewState.kt
@@ -10,4 +10,4 @@ data class ChangeServerViewState(
val changeServerAction: Async = Uninitialized,
) : MavericksState {
val submitEnabled = homeserver.isNotEmpty() && changeServerAction !is Loading
-}
\ No newline at end of file
+}
diff --git a/features/login/src/main/res/drawable/element_logo_green.xml b/features/login/src/main/res/drawable/element_logo_green.xml
index 6e948c3536..33c066a636 100644
--- a/features/login/src/main/res/drawable/element_logo_green.xml
+++ b/features/login/src/main/res/drawable/element_logo_green.xml
@@ -6,17 +6,17 @@
+ android:fillType="evenOdd" />
+ android:fillType="evenOdd" />
+ android:fillType="evenOdd" />
+ android:fillType="evenOdd" />
diff --git a/features/login/src/main/res/drawable/ic_baseline_dataset_24.xml b/features/login/src/main/res/drawable/ic_baseline_dataset_24.xml
index f1171cb51c..aa885cbf10 100644
--- a/features/login/src/main/res/drawable/ic_baseline_dataset_24.xml
+++ b/features/login/src/main/res/drawable/ic_baseline_dataset_24.xml
@@ -1,5 +1,10 @@
-
-
+
+
diff --git a/features/login/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt b/features/login/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt
index bcc403cdbf..f1768db5bc 100644
--- a/features/login/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt
+++ b/features/login/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt
@@ -1,9 +1,8 @@
package io.element.android.x.features.login
+import org.junit.Assert.assertEquals
import org.junit.Test
-import org.junit.Assert.*
-
/**
* Example local unit test, which will execute on the development machine (host).
*
@@ -14,4 +13,4 @@ class ExampleUnitTest {
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/androidTest/java/io/element/android/x/features/messages/ExampleInstrumentedTest.kt b/features/messages/src/androidTest/java/io/element/android/x/features/messages/ExampleInstrumentedTest.kt
index 5594e59678..6c7e4fce97 100644
--- a/features/messages/src/androidTest/java/io/element/android/x/features/messages/ExampleInstrumentedTest.kt
+++ b/features/messages/src/androidTest/java/io/element/android/x/features/messages/ExampleInstrumentedTest.kt
@@ -1,13 +1,11 @@
package io.element.android.x.features.messages
-import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
-
+import androidx.test.platform.app.InstrumentationRegistry
+import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
-import org.junit.Assert.*
-
/**
* Instrumented test, which will execute on an Android device.
*
@@ -21,4 +19,4 @@ class ExampleInstrumentedTest {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("io.element.android.x.features.messages.test", appContext.packageName)
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/AndroidManifest.xml b/features/messages/src/main/AndroidManifest.xml
index a5918e68ab..e100076157 100644
--- a/features/messages/src/main/AndroidManifest.xml
+++ b/features/messages/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/MessageTimelineItemStateFactory.kt b/features/messages/src/main/java/io/element/android/x/features/messages/MessageTimelineItemStateFactory.kt
index d52754b3b2..de9538a962 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/MessageTimelineItemStateFactory.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/MessageTimelineItemStateFactory.kt
@@ -9,7 +9,14 @@ import io.element.android.x.features.messages.model.AggregatedReaction
import io.element.android.x.features.messages.model.MessagesItemGroupPosition
import io.element.android.x.features.messages.model.MessagesItemReactionState
import io.element.android.x.features.messages.model.MessagesTimelineItemState
-import io.element.android.x.features.messages.model.content.*
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemEmoteContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemEncryptedContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemImageContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemNoticeContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemRedactedContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemUnknownContent
import io.element.android.x.features.messages.util.invalidateLast
import io.element.android.x.matrix.MatrixClient
import io.element.android.x.matrix.media.MediaResolver
@@ -83,7 +90,6 @@ class MessageTimelineItemStateFactory(
timelineItemStates.emit(newTimelineItemStates)
}
-
private fun calculateAndApplyDiff(newTimelineItems: List) {
val timeToDiff = measureTimeMillis {
val diffCallback =
@@ -232,5 +238,4 @@ class MessageTimelineItemStateFactory(
.resolve(url, kind = MediaResolver.Kind.Thumbnail(size.value))
return AvatarData(name, model, size)
}
-
}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt
index 44320e3e70..53be142766 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesScreen.kt
@@ -8,7 +8,25 @@ package io.element.android.x.features.messages
import Avatar
import androidx.compose.foundation.interaction.MutableInteractionSource
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxScope
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.WindowInsets
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.imePadding
+import androidx.compose.foundation.layout.navigationBarsPadding
+import androidx.compose.foundation.layout.offset
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.statusBars
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.layout.widthIn
+import androidx.compose.foundation.layout.wrapContentHeight
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.LazyListState
import androidx.compose.foundation.lazy.items
@@ -20,8 +38,24 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.ArrowDownward
import androidx.compose.material.rememberModalBottomSheetState
-import androidx.compose.material3.*
-import androidx.compose.runtime.*
+import androidx.compose.material3.CircularProgressIndicator
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.FloatingActionButton
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Scaffold
+import androidx.compose.material3.SnackbarHost
+import androidx.compose.material3.SnackbarHostState
+import androidx.compose.material3.Text
+import androidx.compose.material3.TopAppBar
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.derivedStateOf
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.End
import androidx.compose.ui.Alignment.Companion.Start
@@ -42,9 +76,27 @@ import io.element.android.x.core.compose.LogCompositions
import io.element.android.x.core.compose.PairCombinedPreviewParameter
import io.element.android.x.core.data.StableCharSequence
import io.element.android.x.designsystem.components.avatar.AvatarData
-import io.element.android.x.features.messages.components.*
-import io.element.android.x.features.messages.model.*
-import io.element.android.x.features.messages.model.content.*
+import io.element.android.x.features.messages.components.MessageEventBubble
+import io.element.android.x.features.messages.components.MessagesReactionsView
+import io.element.android.x.features.messages.components.MessagesTimelineItemEncryptedView
+import io.element.android.x.features.messages.components.MessagesTimelineItemImageView
+import io.element.android.x.features.messages.components.MessagesTimelineItemRedactedView
+import io.element.android.x.features.messages.components.MessagesTimelineItemTextView
+import io.element.android.x.features.messages.components.MessagesTimelineItemUnknownView
+import io.element.android.x.features.messages.components.TimelineItemActionsScreen
+import io.element.android.x.features.messages.model.AggregatedReaction
+import io.element.android.x.features.messages.model.MessagesItemGroupPosition
+import io.element.android.x.features.messages.model.MessagesItemGroupPositionProvider
+import io.element.android.x.features.messages.model.MessagesItemReactionState
+import io.element.android.x.features.messages.model.MessagesTimelineItemState
+import io.element.android.x.features.messages.model.MessagesViewState
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemContentProvider
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemEncryptedContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemImageContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemRedactedContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextBasedContent
+import io.element.android.x.features.messages.model.content.MessagesTimelineItemUnknownContent
import io.element.android.x.features.messages.textcomposer.MessageComposerViewModel
import io.element.android.x.features.messages.textcomposer.MessageComposerViewState
import io.element.android.x.textcomposer.MessageComposerMode
@@ -322,7 +374,6 @@ fun TimelineItems(
onLoadMore = onReachedLoadMore
)
}
-
}
private fun MessagesTimelineItemState.key(): String {
@@ -339,7 +390,6 @@ private fun MessagesTimelineItemState.contentType(): Int {
}
}
-
@Composable
fun TimelineItemRow(
timelineItem: MessagesTimelineItemState,
@@ -526,7 +576,6 @@ internal fun BoxScope.MessagesScrollHelper(
Icon(Icons.Default.ArrowDownward, "")
}
}
-
}
@Composable
@@ -543,7 +592,6 @@ internal fun MessagesLoadingMoreIndicator() {
color = MaterialTheme.colorScheme.primary
)
}
-
}
class MessagesItemGroupPositionToMessagesTimelineItemContentProvider :
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt
index 8210529e20..2697dd05f1 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/MessagesViewModel.kt
@@ -230,4 +230,4 @@ class MessagesViewModel(
timeline.callback = null
timeline.dispose()
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessageEventBubble.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessageEventBubble.kt
index 47bf5f3674..2791cde42b 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessageEventBubble.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessageEventBubble.kt
@@ -13,7 +13,13 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Shape
import androidx.compose.ui.unit.dp
-import io.element.android.x.designsystem.*
+import io.element.android.x.designsystem.LocalIsDarkTheme
+import io.element.android.x.designsystem.MessageHighlightDark
+import io.element.android.x.designsystem.MessageHighlightLight
+import io.element.android.x.designsystem.SystemGrey5Dark
+import io.element.android.x.designsystem.SystemGrey5Light
+import io.element.android.x.designsystem.SystemGrey6Dark
+import io.element.android.x.designsystem.SystemGrey6Light
import io.element.android.x.features.messages.model.MessagesItemGroupPosition
private val BUBBLE_RADIUS = 16.dp
@@ -102,4 +108,4 @@ fun MessageEventBubble(
shape = bubbleShape,
content = content
)
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesReactionsView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesReactionsView.kt
index 7b62e9d6cb..0802493a67 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesReactionsView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesReactionsView.kt
@@ -24,7 +24,7 @@ fun MessagesReactionsView(
reactionsState: MessagesItemReactionState,
modifier: Modifier = Modifier,
) {
- if(reactionsState.reactions.isEmpty()) return
+ if (reactionsState.reactions.isEmpty()) return
FlowRow(
modifier = modifier,
mainAxisSpacing = 2.dp,
@@ -53,4 +53,4 @@ fun MessagesReactionButton(reaction: AggregatedReaction, modifier: Modifier = Mo
Text(text = reaction.count, color = MaterialTheme.colorScheme.secondary, fontSize = 12.sp)
}
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemActionsSheet.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemActionsSheet.kt
index 3d1b6cede9..bf45101d19 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemActionsSheet.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemActionsSheet.kt
@@ -3,14 +3,28 @@
package io.element.android.x.features.messages.components
import androidx.compose.foundation.clickable
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.imePadding
+import androidx.compose.foundation.layout.navigationBarsPadding
+import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
-import androidx.compose.material.*
-import androidx.compose.runtime.*
+import androidx.compose.material.ExperimentalMaterialApi
+import androidx.compose.material.ListItem
+import androidx.compose.material.LocalContentColor
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.ModalBottomSheetLayout
+import androidx.compose.material.ModalBottomSheetState
+import androidx.compose.material.ModalBottomSheetValue
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.unit.dp
import com.airbnb.mvrx.compose.collectAsState
import io.element.android.x.designsystem.components.VectorIcon
@@ -21,7 +35,6 @@ import io.element.android.x.features.messages.model.MessagesTimelineItemState
import io.element.android.x.features.messages.model.MessagesViewState
import io.element.android.x.features.messages.model.content.MessagesTimelineItemTextBasedContent
import io.element.android.x.features.messages.textcomposer.MessageComposerViewModel
-import kotlinx.coroutines.flow.distinctUntilChanged
import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.launch
@@ -71,11 +84,12 @@ fun TimelineItemActionsScreen(
SheetContent(
actionsSheetState = itemActionsSheetState(),
onActionClicked = ::onItemActionClicked,
- modifier = Modifier.navigationBarsPadding().imePadding()
+ modifier = Modifier
+ .navigationBarsPadding()
+ .imePadding()
)
}
) {}
-
}
@Composable
@@ -113,4 +127,4 @@ private fun SheetContent(
)
}
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemEncryptedView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemEncryptedView.kt
index d2b280657e..cf89c3418a 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemEncryptedView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemEncryptedView.kt
@@ -17,4 +17,4 @@ fun MessagesTimelineItemEncryptedView(
icon = Icons.Default.Warning,
modifier = modifier
)
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemImageView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemImageView.kt
index eaac062ae2..dd614be275 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemImageView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemImageView.kt
@@ -6,7 +6,6 @@ import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.aspectRatio
import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.heightIn
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.mutableStateOf
@@ -16,7 +15,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.painter.ColorPainter
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
import coil.request.ImageRequest
import io.element.android.x.features.messages.model.content.MessagesTimelineItemImageContent
@@ -26,9 +24,9 @@ fun MessagesTimelineItemImageView(
content: MessagesTimelineItemImageContent,
modifier: Modifier = Modifier
) {
- val widthPercent = if(content.aspectRatio > 1f){
+ val widthPercent = if (content.aspectRatio > 1f) {
1f
- }else {
+ } else {
0.7f
}
Box(
@@ -52,4 +50,4 @@ fun MessagesTimelineItemImageView(
onSuccess = { isLoading.value = false },
)
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemInformativeView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemInformativeView.kt
index dbfe9ccf96..56f5723486 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemInformativeView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemInformativeView.kt
@@ -40,4 +40,4 @@ fun MessagesTimelineItemInformativeView(
text = text
)
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemRedactedView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemRedactedView.kt
index bc1a4d2d10..f87ef4c18e 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemRedactedView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemRedactedView.kt
@@ -17,4 +17,4 @@ fun MessagesTimelineItemRedactedView(
icon = Icons.Default.Delete,
modifier = modifier
)
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemTextView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemTextView.kt
index 26fd802bc5..a5753ff628 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemTextView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemTextView.kt
@@ -74,4 +74,4 @@ private fun String.linkify(
end = end
)
}
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemUnknownView.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemUnknownView.kt
index 2c9344e02d..9445103c5f 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemUnknownView.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/MessagesTimelineItemUnknownView.kt
@@ -17,4 +17,4 @@ fun MessagesTimelineItemUnknownView(
icon = Icons.Default.Info,
modifier = modifier
)
-}
\ No newline at end of file
+}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/components/html/HtmlDocument.kt b/features/messages/src/main/java/io/element/android/x/features/messages/components/html/HtmlDocument.kt
index e71769b532..d65de84e5d 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/components/html/HtmlDocument.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/components/html/HtmlDocument.kt
@@ -9,17 +9,25 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.InlineTextContent
import androidx.compose.foundation.text.appendInlineContent
-import androidx.compose.material3.*
+import androidx.compose.material3.ColorScheme
+import androidx.compose.material3.LocalTextStyle
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.Surface
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.text.*
+import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.SpanStyle
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextDecoration
+import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.google.accompanist.flowlayout.FlowRow
@@ -268,7 +276,6 @@ private fun HtmlBlockquote(
}
}
-
@Composable
private fun HtmlHeading(
heading: Element,
@@ -402,7 +409,6 @@ private fun HtmlUnorderedList(
}
}
-
@Composable
private fun HtmlListItems(
list: Element,
@@ -426,7 +432,6 @@ private fun HtmlListItems(
)
}
}
-
}
}
}
@@ -452,7 +457,6 @@ private fun AnnotatedString.Builder.appendInlineChildrenElements(
}
}
-
private fun AnnotatedString.Builder.appendInlineElement(element: Element, colors: ColorScheme) {
when (element.normalName()) {
"br" -> {
@@ -490,7 +494,6 @@ private fun AnnotatedString.Builder.appendInlineElement(element: Element, colors
appendInlineChildrenElements(element.childNodes(), colors)
}
}
-
}
private fun AnnotatedString.Builder.appendLink(link: Element) {
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/diff/CacheInvalidator.kt b/features/messages/src/main/java/io/element/android/x/features/messages/diff/CacheInvalidator.kt
index 4940ea6046..542bd98b8d 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/diff/CacheInvalidator.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/diff/CacheInvalidator.kt
@@ -37,5 +37,4 @@ internal class CacheInvalidator(private val itemStatesCache: MutableList true
else -> false
}
-
}
internal class MessagesItemGroupPositionProvider : PreviewParameterProvider {
@@ -22,4 +21,4 @@ internal class MessagesItemGroupPositionProvider : PreviewParameterProvider
)
+
@Stable
data class AggregatedReaction(
val key: String,
val count: String,
val isHighlighted: Boolean = false
-)
\ No newline at end of file
+)
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt b/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt
index e194e9a1a4..6c86a8687a 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/model/MessagesTimelineItemState.kt
@@ -23,10 +23,7 @@ sealed interface MessagesTimelineItemState {
val showSenderInformation = groupPosition.isNew() && !isMine
val safeSenderName: String = senderDisplayName ?: senderId
-
}
-
-
}
diff --git a/features/messages/src/main/java/io/element/android/x/features/messages/model/content/MessagesTimelineItemContent.kt b/features/messages/src/main/java/io/element/android/x/features/messages/model/content/MessagesTimelineItemContent.kt
index 57c6edd330..8c758347f8 100644
--- a/features/messages/src/main/java/io/element/android/x/features/messages/model/content/MessagesTimelineItemContent.kt
+++ b/features/messages/src/main/java/io/element/android/x/features/messages/model/content/MessagesTimelineItemContent.kt
@@ -2,8 +2,6 @@ package io.element.android.x.features.messages.model.content
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import org.matrix.rustcomponents.sdk.EncryptedMessage
-import org.matrix.rustcomponents.sdk.FormattedBody
-import org.matrix.rustcomponents.sdk.MessageFormat
sealed interface MessagesTimelineItemContent
@@ -28,4 +26,4 @@ class MessagesTimelineItemContentProvider : PreviewParameterProvider
-
+
-
\ No newline at end of file
+
diff --git a/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingScreen.kt b/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingScreen.kt
index 8a1b4bfa39..232f020477 100644
--- a/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingScreen.kt
+++ b/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingScreen.kt
@@ -3,12 +3,24 @@
package io.element.android.x.features.onboarding
import androidx.compose.foundation.Image
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.systemBarsPadding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
-import androidx.compose.runtime.*
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.setValue
+import androidx.compose.runtime.snapshotFlow
import androidx.compose.ui.Alignment.Companion.CenterHorizontally
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.painterResource
@@ -42,7 +54,6 @@ fun OnBoardingScreen(
)
}
-
@OptIn(ExperimentalPagerApi::class)
@Composable
fun OnBoardingContent(
@@ -164,4 +175,4 @@ fun OnBoardingPage(
)
}
}
-}
\ No newline at end of file
+}
diff --git a/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingViewModel.kt b/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingViewModel.kt
index 0749c4a50d..b1f708b126 100644
--- a/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingViewModel.kt
+++ b/features/onboarding/src/main/java/io/element/android/x/features/onboarding/OnBoardingViewModel.kt
@@ -12,4 +12,4 @@ class OnBoardingViewModel(initialState: OnBoardingViewState) :
)
}
}
-}
\ No newline at end of file
+}
diff --git a/features/onboarding/src/main/java/io/element/android/x/features/onboarding/SplashCarouselState.kt b/features/onboarding/src/main/java/io/element/android/x/features/onboarding/SplashCarouselState.kt
index f9b0bb9dfb..e21ccf9058 100644
--- a/features/onboarding/src/main/java/io/element/android/x/features/onboarding/SplashCarouselState.kt
+++ b/features/onboarding/src/main/java/io/element/android/x/features/onboarding/SplashCarouselState.kt
@@ -20,12 +20,12 @@ import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
data class SplashCarouselState(
- val items: List-
+ val items: List
-
) {
data class Item(
- @StringRes val title: Int,
- @StringRes val body: Int,
- @DrawableRes val image: Int,
- @DrawableRes val pageBackground: Int
+ @StringRes val title: Int,
+ @StringRes val body: Int,
+ @DrawableRes val image: Int,
+ @DrawableRes val pageBackground: Int
)
}
diff --git a/features/onboarding/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt b/features/onboarding/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt
index bcc403cdbf..f1768db5bc 100644
--- a/features/onboarding/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt
+++ b/features/onboarding/src/test/java/io/element/android/x/features/login/ExampleUnitTest.kt
@@ -1,9 +1,8 @@
package io.element.android.x.features.login
+import org.junit.Assert.assertEquals
import org.junit.Test
-import org.junit.Assert.*
-
/**
* Example local unit test, which will execute on the development machine (host).
*
@@ -14,4 +13,4 @@ class ExampleUnitTest {
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
-}
\ No newline at end of file
+}
diff --git a/features/roomlist/src/androidTest/java/io/element/android/x/features/roomlist/ExampleInstrumentedTest.kt b/features/roomlist/src/androidTest/java/io/element/android/x/features/roomlist/ExampleInstrumentedTest.kt
index 8b9c88c9c3..c16a44bebb 100644
--- a/features/roomlist/src/androidTest/java/io/element/android/x/features/roomlist/ExampleInstrumentedTest.kt
+++ b/features/roomlist/src/androidTest/java/io/element/android/x/features/roomlist/ExampleInstrumentedTest.kt
@@ -1,13 +1,11 @@
package io.element.android.x.features.roomlist
-import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4
-
+import androidx.test.platform.app.InstrumentationRegistry
+import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
-import org.junit.Assert.*
-
/**
* Instrumented test, which will execute on an Android device.
*
@@ -21,4 +19,4 @@ class ExampleInstrumentedTest {
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("io.element.android.x.features.roomlist.test", appContext.packageName)
}
-}
\ No newline at end of file
+}
diff --git a/features/roomlist/src/main/AndroidManifest.xml b/features/roomlist/src/main/AndroidManifest.xml
index a5918e68ab..e100076157 100644
--- a/features/roomlist/src/main/AndroidManifest.xml
+++ b/features/roomlist/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/LastMessageFormatter.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/LastMessageFormatter.kt
index 4cd35efc15..06dca99637 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/LastMessageFormatter.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/LastMessageFormatter.kt
@@ -2,11 +2,17 @@ package io.element.android.x.features.roomlist
import android.text.format.DateFormat
import android.text.format.DateUtils
-import kotlinx.datetime.*
+import kotlinx.datetime.Clock
+import kotlinx.datetime.Instant
+import kotlinx.datetime.LocalDateTime
import kotlinx.datetime.TimeZone
+import kotlinx.datetime.toInstant
+import kotlinx.datetime.toJavaLocalDate
+import kotlinx.datetime.toJavaLocalDateTime
+import kotlinx.datetime.toLocalDateTime
import java.time.Period
import java.time.format.DateTimeFormatter
-import java.util.*
+import java.util.Locale
import kotlin.math.absoluteValue
class LastMessageFormatter(
@@ -29,7 +35,6 @@ class LastMessageFormatter(
DateTimeFormatter.ofPattern(pattern)
}
-
fun format(timestamp: Long?): String {
if (timestamp == null) return ""
val now: Instant = clock.now()
@@ -77,6 +82,4 @@ class LastMessageFormatter(
DateUtils.FORMAT_SHOW_WEEKDAY
).toString()
}
-
-
-}
\ No newline at end of file
+}
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt
index aae69e5497..799622c9a6 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/RoomListViewModel.kt
@@ -1,6 +1,10 @@
package io.element.android.x.features.roomlist
-import com.airbnb.mvrx.*
+import com.airbnb.mvrx.Loading
+import com.airbnb.mvrx.MavericksViewModel
+import com.airbnb.mvrx.MavericksViewModelFactory
+import com.airbnb.mvrx.Success
+import com.airbnb.mvrx.ViewModelContext
import io.element.android.x.core.data.parallelMap
import io.element.android.x.designsystem.components.avatar.AvatarData
import io.element.android.x.designsystem.components.avatar.AvatarSize
@@ -118,8 +122,8 @@ class RoomListViewModel(
copy(
rooms = when {
it is Loading ||
- // Note: this second case will prevent to handle correctly the empty case
- (it is Success && it().isEmpty() && filter.isEmpty()) -> {
+ // Note: this second case will prevent to handle correctly the empty case
+ (it is Success && it().isEmpty() && filter.isEmpty()) -> {
// Show fake placeholders to avoid having empty screen
Loading(RoomListRoomSummaryPlaceholders.createFakeList(size = 16))
}
@@ -164,5 +168,4 @@ class RoomListViewModel(
.resolve(url, kind = MediaResolver.Kind.Thumbnail(size.value))
return AvatarData(name, model, size)
}
-
-}
\ No newline at end of file
+}
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomListTopBar.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomListTopBar.kt
index 95b7744f5c..2c1f9eb54d 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomListTopBar.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomListTopBar.kt
@@ -11,9 +11,23 @@ import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.filled.Close
import androidx.compose.material.icons.filled.Logout
import androidx.compose.material.icons.filled.Search
-import androidx.compose.material3.*
-import androidx.compose.runtime.*
+import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
+import androidx.compose.material3.IconButton
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.MediumTopAppBar
+import androidx.compose.material3.Text
+import androidx.compose.material3.TextField
+import androidx.compose.material3.TextFieldDefaults
+import androidx.compose.material3.TopAppBar
+import androidx.compose.material3.TopAppBarScrollBehavior
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.rememberSaveable
+import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.focus.focusRequester
@@ -65,7 +79,6 @@ fun RoomListTopBar(
scrollBehavior = scrollBehavior,
)
}
-
}
@Composable
@@ -83,8 +96,8 @@ fun SearchRoomListTopBar(
title = {
TextField(
modifier = Modifier
- .fillMaxWidth()
- .focusRequester(focusRequester),
+ .fillMaxWidth()
+ .focusRequester(focusRequester),
value = filterState,
textStyle = TextStyle(
fontSize = 17.sp
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomSummaryRow.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomSummaryRow.kt
index 5cdee76523..5b5486c8a4 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomSummaryRow.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/components/RoomSummaryRow.kt
@@ -4,13 +4,21 @@ import Avatar
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.interaction.MutableInteractionSource
-import androidx.compose.foundation.layout.*
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.IntrinsicSize
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.heightIn
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.ripple.rememberRipple
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
-import androidx.compose.runtime.Immutable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Alignment.Companion.CenterVertically
@@ -57,7 +65,6 @@ internal fun RoomSummaryRow(
) {
DefaultRoomSummaryRow(room = room)
}
-
}
@Composable
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummary.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummary.kt
index 98e2200df6..893824756f 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummary.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummary.kt
@@ -13,4 +13,5 @@ data class RoomListRoomSummary(
val timestamp: String? = null,
val lastMessage: CharSequence? = null,
val avatarData: AvatarData = AvatarData(),
- val isPlaceholder: Boolean = false,)
+ val isPlaceholder: Boolean = false,
+)
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummaryPlaceholders.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummaryPlaceholders.kt
index 1be8c07b2d..93eb2a6d42 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummaryPlaceholders.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/RoomListRoomSummaryPlaceholders.kt
@@ -2,7 +2,6 @@ package io.element.android.x.features.roomlist.model
import io.element.android.x.designsystem.components.avatar.AvatarData
-
object RoomListRoomSummaryPlaceholders {
fun create(id: String): RoomListRoomSummary {
@@ -23,6 +22,5 @@ object RoomListRoomSummaryPlaceholders {
}
}
}
-
}
diff --git a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/stubbed.kt b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/stubbed.kt
index 4c8844b13b..3261e63a6d 100644
--- a/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/stubbed.kt
+++ b/features/roomlist/src/main/java/io/element/android/x/features/roomlist/model/stubbed.kt
@@ -22,4 +22,4 @@ internal fun stubbedRoomSummaries(): List {
),
RoomListRoomSummaryPlaceholders.create("roomId2")
)
-}
\ No newline at end of file
+}
diff --git a/features/roomlist/src/test/java/io/element/android/x/features/roomlist/ExampleUnitTest.kt b/features/roomlist/src/test/java/io/element/android/x/features/roomlist/ExampleUnitTest.kt
index 39034b2cb2..38bdf65d63 100644
--- a/features/roomlist/src/test/java/io/element/android/x/features/roomlist/ExampleUnitTest.kt
+++ b/features/roomlist/src/test/java/io/element/android/x/features/roomlist/ExampleUnitTest.kt
@@ -1,9 +1,8 @@
package io.element.android.x.features.roomlist
+import org.junit.Assert.assertEquals
import org.junit.Test
-import org.junit.Assert.*
-
/**
* Example local unit test, which will execute on the development machine (host).
*
@@ -14,4 +13,4 @@ class ExampleUnitTest {
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
}
-}
\ No newline at end of file
+}
diff --git a/gradle.properties b/gradle.properties
index c4b415660b..9caae7208e 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -21,8 +21,7 @@ kotlin.code.style=official
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
-
# Dummy values for signing secrets / nightly
signing.element.nightly.storePassword=Secret
signing.element.nightly.keyId=Secret
-signing.element.nightly.keyPassword=Secret
\ No newline at end of file
+signing.element.nightly.keyPassword=Secret
diff --git a/libraries/core/src/main/java/io/element/android/x/core/compose/LogCompositions.kt b/libraries/core/src/main/java/io/element/android/x/core/compose/LogCompositions.kt
index 7ab910b135..ba1371335f 100644
--- a/libraries/core/src/main/java/io/element/android/x/core/compose/LogCompositions.kt
+++ b/libraries/core/src/main/java/io/element/android/x/core/compose/LogCompositions.kt
@@ -6,7 +6,6 @@ import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.remember
import io.element.android.x.core.BuildConfig
-
// Note the inline function below which ensures that this function is essentially
// copied at the call site to ensure that its logging only recompositions from the
// original call site.
@@ -19,4 +18,4 @@ inline fun LogCompositions(tag: String, msg: String) {
}
}
-class Ref(var value: Int)
\ No newline at end of file
+class Ref(var value: Int)
diff --git a/libraries/core/src/main/java/io/element/android/x/core/compose/OnLifecycleEvent.kt b/libraries/core/src/main/java/io/element/android/x/core/compose/OnLifecycleEvent.kt
index 310e85a061..c022703236 100644
--- a/libraries/core/src/main/java/io/element/android/x/core/compose/OnLifecycleEvent.kt
+++ b/libraries/core/src/main/java/io/element/android/x/core/compose/OnLifecycleEvent.kt
@@ -12,7 +12,7 @@ import androidx.lifecycle.LifecycleOwner
fun OnLifecycleEvent(onEvent: (owner: LifecycleOwner, event: Lifecycle.Event) -> Unit) {
val eventHandler = rememberUpdatedState(onEvent)
val lifecycleOwner = rememberUpdatedState(LocalLifecycleOwner.current)
-
+
DisposableEffect(lifecycleOwner.value) {
val lifecycle = lifecycleOwner.value.lifecycle
val observer = LifecycleEventObserver { owner, event ->
@@ -24,4 +24,4 @@ fun OnLifecycleEvent(onEvent: (owner: LifecycleOwner, event: Lifecycle.Event) ->
lifecycle.removeObserver(observer)
}
}
-}
\ No newline at end of file
+}
diff --git a/libraries/core/src/main/java/io/element/android/x/core/compose/TextFieldLocalState.kt b/libraries/core/src/main/java/io/element/android/x/core/compose/TextFieldLocalState.kt
index 188d99260d..0b3067968c 100644
--- a/libraries/core/src/main/java/io/element/android/x/core/compose/TextFieldLocalState.kt
+++ b/libraries/core/src/main/java/io/element/android/x/core/compose/TextFieldLocalState.kt
@@ -5,7 +5,6 @@ import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
-
@Composable
public fun textFieldState(stateValue: String): MutableState =
- remember(stateValue) { mutableStateOf(stateValue) }
\ No newline at end of file
+ remember(stateValue) { mutableStateOf(stateValue) }
diff --git a/libraries/core/src/main/java/io/element/android/x/core/ui/DimensionConverter.kt b/libraries/core/src/main/java/io/element/android/x/core/ui/DimensionConverter.kt
index 7564f77f14..bdca1eefd0 100644
--- a/libraries/core/src/main/java/io/element/android/x/core/ui/DimensionConverter.kt
+++ b/libraries/core/src/main/java/io/element/android/x/core/ui/DimensionConverter.kt
@@ -24,18 +24,18 @@ class DimensionConverter(val resources: Resources) {
@Px
fun dpToPx(dp: Int): Int {
return TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP,
- dp.toFloat(),
- resources.displayMetrics
+ TypedValue.COMPLEX_UNIT_DIP,
+ dp.toFloat(),
+ resources.displayMetrics
).toInt()
}
@Px
fun spToPx(sp: Int): Int {
return TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_SP,
- sp.toFloat(),
- resources.displayMetrics
+ TypedValue.COMPLEX_UNIT_SP,
+ sp.toFloat(),
+ resources.displayMetrics
).toInt()
}
diff --git a/libraries/core/src/main/java/io/element/android/x/core/ui/View.kt b/libraries/core/src/main/java/io/element/android/x/core/ui/View.kt
index e9c0542c09..a240a4d10c 100644
--- a/libraries/core/src/main/java/io/element/android/x/core/ui/View.kt
+++ b/libraries/core/src/main/java/io/element/android/x/core/ui/View.kt
@@ -35,9 +35,9 @@ fun View.showKeyboard(andRequestFocus: Boolean = false) {
fun View.setHorizontalPadding(padding: Int) {
setPadding(
- padding,
- paddingTop,
- padding,
- paddingBottom
+ padding,
+ paddingTop,
+ padding,
+ paddingBottom
)
}
diff --git a/libraries/designsystem/src/main/AndroidManifest.xml b/libraries/designsystem/src/main/AndroidManifest.xml
index a5918e68ab..e100076157 100644
--- a/libraries/designsystem/src/main/AndroidManifest.xml
+++ b/libraries/designsystem/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
+
-
\ No newline at end of file
+
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Color.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Color.kt
index 0bc41fb0d3..6bf9aaca92 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Color.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Color.kt
@@ -5,6 +5,7 @@ import com.airbnb.android.showkase.annotation.ShowkaseColor
@ShowkaseColor(name = "LightGrey", group = "Material Design")
val LightGrey = Color(0x993C3C43)
+
@ShowkaseColor(name = "DarkGrey", group = "Material Design")
val DarkGrey = Color(0x99EBEBF5)
@@ -37,7 +38,8 @@ val Vermilion = Color(0xFFFF5B55)
// TODO Update color
val MessageHighlightLight = Azure
+
// TODO Update color
val MessageHighlightDark = Azure
-val LinkColor = Color(0xFF054F6E)
\ No newline at end of file
+val LinkColor = Color(0xFF054F6E)
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Theme.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Theme.kt
index 2f757fa11b..1c3c78c475 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Theme.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Theme.kt
@@ -2,7 +2,11 @@ package io.element.android.x.designsystem
import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme
-import androidx.compose.material3.*
+import androidx.compose.material3.MaterialTheme
+import androidx.compose.material3.darkColorScheme
+import androidx.compose.material3.dynamicDarkColorScheme
+import androidx.compose.material3.dynamicLightColorScheme
+import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.SideEffect
@@ -81,7 +85,6 @@ fun ElementXTheme(
content = content
)
}
-
}
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Type.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Type.kt
index 3cfdcf85f3..3e92cda7af 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Type.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/Type.kt
@@ -9,7 +9,6 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.sp
import com.airbnb.android.showkase.annotation.ShowkaseTypography
-
@ShowkaseTypography(name = "Body Large", group = "Element")
val bodyLarge = TextStyle(
fontFamily = FontFamily.Default,
@@ -231,6 +230,4 @@ object ElementTextStyles {
textAlign = TextAlign.Center
)
}
-
-
-}
\ No newline at end of file
+}
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/ProgressDialog.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/ProgressDialog.kt
index a01c2eeddc..6be64bc51f 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/ProgressDialog.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/ProgressDialog.kt
@@ -53,4 +53,4 @@ fun ProgressDialog(text: String? = null, onDismiss: () -> Unit = {}) {
@Preview
fun ProgressDialogPreview() {
ProgressDialog("test dialog content")
-}
\ No newline at end of file
+}
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorButton.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorButton.kt
index 70198103eb..df1939e9af 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorButton.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorButton.kt
@@ -5,7 +5,6 @@ import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-
@Composable
fun VectorButton(text: String, enabled: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier) {
Button(
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorTextField.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorTextField.kt
index 53ffa2739a..524aea98b9 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorTextField.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/VectorTextField.kt
@@ -6,7 +6,6 @@ import androidx.compose.material3.OutlinedTextField
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
-
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun VectorTextField(value: String, onValueChange: (String) -> Unit, isError: Boolean = false) {
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/Avatar.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/Avatar.kt
index c5eb17164a..115fbb4dac 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/Avatar.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/Avatar.kt
@@ -52,7 +52,6 @@ private fun ImageAvatar(
)
}
-
@Composable
private fun InitialsAvatar(
initials: String,
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/AvatarData.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/AvatarData.kt
index ce1fd06dba..34892867ce 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/AvatarData.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/avatar/AvatarData.kt
@@ -30,5 +30,4 @@ data class AvatarData(
result = 31 * result + size.value
return result
}
-
-}
\ No newline at end of file
+}
diff --git a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/dialogs/ConfirmationDialog.kt b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/dialogs/ConfirmationDialog.kt
index 1161fcb5f3..eb07d8f9c5 100644
--- a/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/dialogs/ConfirmationDialog.kt
+++ b/libraries/designsystem/src/main/java/io/element/android/x/designsystem/components/dialogs/ConfirmationDialog.kt
@@ -77,4 +77,4 @@ fun ConfirmationDialogPreview() {
title = "Title",
content = "Content",
)
-}
\ No newline at end of file
+}
diff --git a/libraries/designsystem/src/main/res/drawable/ic_baseline_delete_outline_24.xml b/libraries/designsystem/src/main/res/drawable/ic_baseline_delete_outline_24.xml
index ef36649125..33b26af516 100644
--- a/libraries/designsystem/src/main/res/drawable/ic_baseline_delete_outline_24.xml
+++ b/libraries/designsystem/src/main/res/drawable/ic_baseline_delete_outline_24.xml
@@ -1,5 +1,10 @@
-
-
+
+
diff --git a/libraries/designsystem/src/main/res/drawable/ic_baseline_edit_24.xml b/libraries/designsystem/src/main/res/drawable/ic_baseline_edit_24.xml
index 1c9bd3e6bd..7aeb747672 100644
--- a/libraries/designsystem/src/main/res/drawable/ic_baseline_edit_24.xml
+++ b/libraries/designsystem/src/main/res/drawable/ic_baseline_edit_24.xml
@@ -1,5 +1,10 @@
-
-
+
+
diff --git a/libraries/designsystem/src/main/res/drawable/ic_baseline_reply_24.xml b/libraries/designsystem/src/main/res/drawable/ic_baseline_reply_24.xml
index c5fba99883..7555e22d54 100644
--- a/libraries/designsystem/src/main/res/drawable/ic_baseline_reply_24.xml
+++ b/libraries/designsystem/src/main/res/drawable/ic_baseline_reply_24.xml
@@ -1,5 +1,11 @@
-
-
+
+
diff --git a/libraries/designsystem/src/main/res/drawable/ic_content_arrow_forward.xml b/libraries/designsystem/src/main/res/drawable/ic_content_arrow_forward.xml
index 8d3848e661..2927820a2b 100644
--- a/libraries/designsystem/src/main/res/drawable/ic_content_arrow_forward.xml
+++ b/libraries/designsystem/src/main/res/drawable/ic_content_arrow_forward.xml
@@ -1,5 +1,11 @@
-
-
+
+
diff --git a/libraries/designsystem/src/main/res/drawable/ic_content_copy.xml b/libraries/designsystem/src/main/res/drawable/ic_content_copy.xml
index bac0f6001a..4b70c6f537 100644
--- a/libraries/designsystem/src/main/res/drawable/ic_content_copy.xml
+++ b/libraries/designsystem/src/main/res/drawable/ic_content_copy.xml
@@ -1,5 +1,10 @@
-
-
+
+
diff --git a/libraries/elementresources/src/main/AndroidManifest.xml b/libraries/elementresources/src/main/AndroidManifest.xml
index 8bdb7e14b3..e100076157 100644
--- a/libraries/elementresources/src/main/AndroidManifest.xml
+++ b/libraries/elementresources/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_close_round.xml b/libraries/elementresources/src/main/res/drawable/ic_close_round.xml
index 413a233b56..97d20390f6 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_close_round.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_close_round.xml
@@ -3,18 +3,18 @@
android:height="22dp"
android:viewportWidth="22"
android:viewportHeight="22">
-
-
+
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_composer_bold.xml b/libraries/elementresources/src/main/res/drawable/ic_composer_bold.xml
index 3d9a10d16b..17adfc3d35 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_composer_bold.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_composer_bold.xml
@@ -3,8 +3,8 @@
android:height="44dp"
android:viewportWidth="44"
android:viewportHeight="44">
-
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_composer_full_screen.xml b/libraries/elementresources/src/main/res/drawable/ic_composer_full_screen.xml
index 394dc52279..4c88f9063c 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_composer_full_screen.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_composer_full_screen.xml
@@ -3,7 +3,7 @@
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
-
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_composer_italic.xml b/libraries/elementresources/src/main/res/drawable/ic_composer_italic.xml
index faa4f89cd4..97050d52f9 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_composer_italic.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_composer_italic.xml
@@ -3,8 +3,8 @@
android:height="44dp"
android:viewportWidth="44"
android:viewportHeight="44">
-
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_composer_strikethrough.xml b/libraries/elementresources/src/main/res/drawable/ic_composer_strikethrough.xml
index 3970c95381..505558409a 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_composer_strikethrough.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_composer_strikethrough.xml
@@ -3,10 +3,10 @@
android:height="44dp"
android:viewportWidth="44"
android:viewportHeight="44">
-
-
+
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_composer_underlined.xml b/libraries/elementresources/src/main/res/drawable/ic_composer_underlined.xml
index fe18d60185..296e16f3d8 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_composer_underlined.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_composer_underlined.xml
@@ -3,11 +3,10 @@
android:height="44dp"
android:viewportWidth="44"
android:viewportHeight="44">
-
-
-
-
+
+
+
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_edit.xml b/libraries/elementresources/src/main/res/drawable/ic_edit.xml
index 33214d4246..048c153f5f 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_edit.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_edit.xml
@@ -3,18 +3,18 @@
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
-
+
+
diff --git a/libraries/elementresources/src/main/res/drawable/ic_send.xml b/libraries/elementresources/src/main/res/drawable/ic_send.xml
index 9f10eca84a..7e415e2803 100644
--- a/libraries/elementresources/src/main/res/drawable/ic_send.xml
+++ b/libraries/elementresources/src/main/res/drawable/ic_send.xml
@@ -1,5 +1,10 @@
-
-
+
+
diff --git a/libraries/elementresources/src/main/res/transition/image_preview_transition.xml b/libraries/elementresources/src/main/res/transition/image_preview_transition.xml
index c1af6d7973..4ad8f83dfd 100644
--- a/libraries/elementresources/src/main/res/transition/image_preview_transition.xml
+++ b/libraries/elementresources/src/main/res/transition/image_preview_transition.xml
@@ -2,10 +2,11 @@
The transitions which us used for the entrance and exit of shared elements. Here we declare
two different transitions which are targeting specific views.
-->
-
+
-
+
diff --git a/libraries/elementresources/src/main/res/values/style_action_button.xml b/libraries/elementresources/src/main/res/values/style_action_button.xml
index 0a3c73622f..dd5c424707 100644
--- a/libraries/elementresources/src/main/res/values/style_action_button.xml
+++ b/libraries/elementresources/src/main/res/values/style_action_button.xml
@@ -1,8 +1,9 @@
+
-
\ No newline at end of file
+
diff --git a/libraries/elementresources/src/main/res/values/style_snackbar.xml b/libraries/elementresources/src/main/res/values/style_snackbar.xml
index d15f846d8f..82b2120c71 100644
--- a/libraries/elementresources/src/main/res/values/style_snackbar.xml
+++ b/libraries/elementresources/src/main/res/values/style_snackbar.xml
@@ -2,15 +2,15 @@
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt
index 5be629b7f8..d98dfee413 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/Matrix.kt
@@ -10,14 +10,18 @@ import io.element.android.x.matrix.util.logError
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.asCoroutineDispatcher
-import kotlinx.coroutines.flow.*
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.distinctUntilChanged
+import kotlinx.coroutines.flow.launchIn
+import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.withContext
import org.matrix.rustcomponents.sdk.AuthenticationService
import org.matrix.rustcomponents.sdk.Client
import org.matrix.rustcomponents.sdk.ClientBuilder
import timber.log.Timber
import java.io.File
-import java.util.*
+import java.util.Optional
import java.util.concurrent.Executors
class Matrix(
@@ -115,4 +119,4 @@ class Matrix(
matrixClient.value = Optional.of(it)
}
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt
index 2ac426a03d..e392d54e74 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixClient.kt
@@ -11,7 +11,13 @@ import io.element.android.x.matrix.session.SessionStore
import io.element.android.x.matrix.sync.SlidingSyncObserverProxy
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.withContext
-import org.matrix.rustcomponents.sdk.*
+import org.matrix.rustcomponents.sdk.Client
+import org.matrix.rustcomponents.sdk.ClientDelegate
+import org.matrix.rustcomponents.sdk.MediaSource
+import org.matrix.rustcomponents.sdk.RequiredState
+import org.matrix.rustcomponents.sdk.SlidingSyncMode
+import org.matrix.rustcomponents.sdk.SlidingSyncViewBuilder
+import org.matrix.rustcomponents.sdk.StoppableSpawn
import timber.log.Timber
import java.io.Closeable
import java.io.File
@@ -78,7 +84,7 @@ class MatrixClient internal constructor(
client.setDelegate(clientDelegate)
}
- private fun onRestartSync(){
+ private fun onRestartSync() {
slidingSyncObserverToken = slidingSync.sync()
}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt
index b7173b0b2b..2c83d4d241 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/MatrixInstance.kt
@@ -7,7 +7,6 @@ import io.element.android.x.matrix.tracing.setupTracing
import io.element.android.x.sdk.matrix.BuildConfig
import kotlinx.coroutines.CoroutineScope
-
object MatrixInstance {
@SuppressLint("StaticFieldLeak")
private lateinit var instance: Matrix
@@ -24,4 +23,4 @@ object MatrixInstance {
fun getInstance(): Matrix {
return instance
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/RoomWrapper.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/RoomWrapper.kt
index 90aaaa6251..b9a6ea9fb3 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/RoomWrapper.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/RoomWrapper.kt
@@ -12,4 +12,4 @@ class RoomWrapper(
Log.d(LOG_TAG, "We have ${rooms.size} rooms")
return rooms.firstOrNull { it.id() == roomId }
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/core/MatrixPatterns.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/core/MatrixPatterns.kt
index ab516d8ba8..e73cf2b024 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/core/MatrixPatterns.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/core/MatrixPatterns.kt
@@ -80,15 +80,15 @@ object MatrixPatterns {
// list of patterns to find some matrix item.
val MATRIX_PATTERNS = listOf(
- PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ID,
- PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ALIAS,
- PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ID,
- PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ALIAS,
- PATTERN_CONTAIN_MATRIX_USER_IDENTIFIER,
- PATTERN_CONTAIN_MATRIX_ALIAS,
- PATTERN_CONTAIN_MATRIX_ROOM_IDENTIFIER,
- PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER,
- PATTERN_CONTAIN_MATRIX_GROUP_IDENTIFIER
+ PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ID,
+ PATTERN_CONTAIN_MATRIX_TO_PERMALINK_ROOM_ALIAS,
+ PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ID,
+ PATTERN_CONTAIN_APP_LINK_PERMALINK_ROOM_ALIAS,
+ PATTERN_CONTAIN_MATRIX_USER_IDENTIFIER,
+ PATTERN_CONTAIN_MATRIX_ALIAS,
+ PATTERN_CONTAIN_MATRIX_ROOM_IDENTIFIER,
+ PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER,
+ PATTERN_CONTAIN_MATRIX_GROUP_IDENTIFIER
)
/**
@@ -129,9 +129,9 @@ object MatrixPatterns {
*/
fun isEventId(str: String?): Boolean {
return str != null &&
- (str matches PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER ||
- str matches PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER_V3 ||
- str matches PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER_V4)
+ (str matches PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER ||
+ str matches PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER_V3 ||
+ str matches PATTERN_CONTAIN_MATRIX_EVENT_IDENTIFIER_V4)
}
/**
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/core/RoomId.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/core/RoomId.kt
index cea9a9e8d6..3369cab78a 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/core/RoomId.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/core/RoomId.kt
@@ -3,4 +3,4 @@ package io.element.android.x.matrix.core
import java.io.Serializable
@JvmInline
-value class RoomId(val value: String): Serializable
\ No newline at end of file
+value class RoomId(val value: String) : Serializable
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/core/UserId.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/core/UserId.kt
index 3c499f8487..cf34ba13c8 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/core/UserId.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/core/UserId.kt
@@ -3,4 +3,4 @@ package io.element.android.x.matrix.core
import java.io.Serializable
@JvmInline
-value class UserId(val value: String): Serializable
\ No newline at end of file
+value class UserId(val value: String) : Serializable
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaFetcher.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaFetcher.kt
index 7ed5f3c7e9..22b1b43635 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaFetcher.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaFetcher.kt
@@ -35,4 +35,4 @@ internal class MediaFetcher(
)
}
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaResolver.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaResolver.kt
index 949ce02cf4..8a1991298c 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaResolver.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/media/MediaResolver.kt
@@ -24,7 +24,6 @@ interface MediaResolver {
suspend fun resolve(meta: Meta): ByteArray?
}
-
internal class RustMediaResolver(private val client: MatrixClient) : MediaResolver {
override suspend fun resolve(url: String?, kind: MediaResolver.Kind): ByteArray? {
@@ -43,6 +42,4 @@ internal class RustMediaResolver(private val client: MatrixClient) : MediaResolv
)
}.getOrNull()
}
-
-
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/permalink/PermalinkParser.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/permalink/PermalinkParser.kt
index e1f878d331..bd20bd3277 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/permalink/PermalinkParser.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/permalink/PermalinkParser.kt
@@ -43,12 +43,12 @@ object PermalinkParser {
// we are limiting to 2 params
val params = safeFragment
- .split(MatrixPatterns.SEP_REGEX)
- .filter { it.isNotEmpty() }
- .take(2)
+ .split(MatrixPatterns.SEP_REGEX)
+ .filter { it.isNotEmpty() }
+ .take(2)
val decodedParams = params
- .map { URLDecoder.decode(it, "UTF-8") }
+ .map { URLDecoder.decode(it, "UTF-8") }
val identifier = params.getOrNull(0)
val decodedIdentifier = decodedParams.getOrNull(0)
@@ -61,10 +61,10 @@ object PermalinkParser {
}
MatrixPatterns.isRoomAlias(decodedIdentifier) -> {
PermalinkData.RoomLink(
- roomIdOrAlias = decodedIdentifier,
- isRoomAlias = true,
- eventId = extraParameter.takeIf { !it.isNullOrEmpty() && MatrixPatterns.isEventId(it) },
- viaParameters = viaQueryParameters
+ roomIdOrAlias = decodedIdentifier,
+ isRoomAlias = true,
+ eventId = extraParameter.takeIf { !it.isNullOrEmpty() && MatrixPatterns.isEventId(it) },
+ viaParameters = viaQueryParameters
)
}
else -> PermalinkData.FallbackLink(uri, MatrixPatterns.isGroupId(identifier))
@@ -83,16 +83,16 @@ object PermalinkParser {
val token = signValidUri.getQueryParameter("token") ?: throw IllegalArgumentException()
val privateKey = signValidUri.getQueryParameter("private_key") ?: throw IllegalArgumentException()
PermalinkData.RoomEmailInviteLink(
- roomId = identifier,
- email = email!!,
- signUrl = signUrl!!,
- roomName = paramList.firstOrNull { it.first == "room_name" }?.second,
- inviterName = paramList.firstOrNull { it.first == "inviter_name" }?.second,
- roomAvatarUrl = paramList.firstOrNull { it.first == "room_avatar_url" }?.second,
- roomType = paramList.firstOrNull { it.first == "room_type" }?.second,
- identityServer = identityServerHost,
- token = token,
- privateKey = privateKey
+ roomId = identifier,
+ email = email!!,
+ signUrl = signUrl!!,
+ roomName = paramList.firstOrNull { it.first == "room_name" }?.second,
+ inviterName = paramList.firstOrNull { it.first == "inviter_name" }?.second,
+ roomAvatarUrl = paramList.firstOrNull { it.first == "room_avatar_url" }?.second,
+ roomType = paramList.firstOrNull { it.first == "room_type" }?.second,
+ identityServer = identityServerHost,
+ token = token,
+ privateKey = privateKey
)
} catch (failure: Throwable) {
Timber.i("## Permalink: Failed to parse permalink $signUrl")
@@ -100,29 +100,29 @@ object PermalinkParser {
}
} else {
PermalinkData.RoomLink(
- roomIdOrAlias = identifier,
- isRoomAlias = false,
- eventId = extraParameter.takeIf { !it.isNullOrEmpty() && MatrixPatterns.isEventId(it) },
- viaParameters = viaQueryParameters
+ roomIdOrAlias = identifier,
+ isRoomAlias = false,
+ eventId = extraParameter.takeIf { !it.isNullOrEmpty() && MatrixPatterns.isEventId(it) },
+ viaParameters = viaQueryParameters
)
}
}
private fun safeExtractParams(fragment: String) =
- fragment.substringAfter("?").split('&').mapNotNull {
- val splitNameValue = it.split("=")
- if (splitNameValue.size == 2) {
- Pair(splitNameValue[0], URLDecoder.decode(splitNameValue[1], "UTF-8"))
- } else null
- }
+ fragment.substringAfter("?").split('&').mapNotNull {
+ val splitNameValue = it.split("=")
+ if (splitNameValue.size == 2) {
+ Pair(splitNameValue[0], URLDecoder.decode(splitNameValue[1], "UTF-8"))
+ } else null
+ }
private fun String.getViaParameters(): List {
return UrlQuerySanitizer(this)
- .parameterList
- .filter {
- it.mParameter == "via"
- }.map {
- URLDecoder.decode(it.mValue, "UTF-8")
- }
+ .parameterList
+ .filter {
+ it.mParameter == "via"
+ }.map {
+ URLDecoder.decode(it.mValue, "UTF-8")
+ }
}
}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt
index 940c3018cf..f2e38bc2bf 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/MatrixRoom.kt
@@ -9,7 +9,11 @@ import kotlinx.coroutines.flow.filter
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.withContext
-import org.matrix.rustcomponents.sdk.*
+import org.matrix.rustcomponents.sdk.Room
+import org.matrix.rustcomponents.sdk.SlidingSyncRoom
+import org.matrix.rustcomponents.sdk.UpdateSummary
+import org.matrix.rustcomponents.sdk.genTransactionId
+import org.matrix.rustcomponents.sdk.messageEventContentFromMarkdown
class MatrixRoom(
private val slidingSyncUpdateFlow: Flow,
@@ -98,10 +102,10 @@ class MatrixRoom(
}
}
- suspend fun redactEvent(eventId: String, reason: String? = null, ) = withContext(coroutineDispatchers.io) {
+ suspend fun redactEvent(eventId: String, reason: String? = null) = withContext(coroutineDispatchers.io) {
val transactionId = genTransactionId()
runCatching {
room.redact(eventId, reason, transactionId)
}
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomListenerFlows.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomListenerFlows.kt
index 691798b6e3..59bf35dc98 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomListenerFlows.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomListenerFlows.kt
@@ -9,7 +9,6 @@ import org.matrix.rustcomponents.sdk.Room
import org.matrix.rustcomponents.sdk.TimelineDiff
import org.matrix.rustcomponents.sdk.TimelineListener
-
fun Room.timelineDiff(scope: CoroutineScope): Flow = callbackFlow {
val listener = object : TimelineListener {
override fun onUpdate(update: TimelineDiff) {
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummary.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummary.kt
index ff4a01eaf0..580a64e081 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummary.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummary.kt
@@ -2,7 +2,6 @@ package io.element.android.x.matrix.room
import io.element.android.x.matrix.core.RoomId
-
sealed interface RoomSummary {
data class Empty(val identifier: String) : RoomSummary
data class Filled(val details: RoomSummaryDetails) : RoomSummary
@@ -13,7 +12,6 @@ sealed interface RoomSummary {
is Filled -> details.roomId.value
}
}
-
}
data class RoomSummaryDetails(
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDataSource.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDataSource.kt
index 91af2c5eca..5ec62cef06 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDataSource.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDataSource.kt
@@ -3,12 +3,27 @@ package io.element.android.x.matrix.room
import io.element.android.x.core.coroutine.CoroutineDispatchers
import io.element.android.x.matrix.sync.roomListDiff
import io.element.android.x.matrix.sync.state
-import kotlinx.coroutines.*
-import kotlinx.coroutines.flow.*
-import org.matrix.rustcomponents.sdk.*
+import kotlinx.coroutines.CoroutineScope
+import kotlinx.coroutines.SupervisorJob
+import kotlinx.coroutines.cancel
+import kotlinx.coroutines.cancelChildren
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.launchIn
+import kotlinx.coroutines.flow.onEach
+import kotlinx.coroutines.flow.sample
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import org.matrix.rustcomponents.sdk.RoomListEntry
+import org.matrix.rustcomponents.sdk.SlidingSync
+import org.matrix.rustcomponents.sdk.SlidingSyncState
+import org.matrix.rustcomponents.sdk.SlidingSyncView
+import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomsListDiff
+import org.matrix.rustcomponents.sdk.UpdateSummary
import timber.log.Timber
import java.io.Closeable
-import java.util.*
+import java.util.Collections
+import java.util.UUID
interface RoomSummaryDataSource {
fun roomSummaries(): Flow>
@@ -56,7 +71,6 @@ internal class RustRoomSummaryDataSource(
Timber.v("New sliding sync state: $slidingSyncState")
state.value = slidingSyncState
}.launchIn(coroutineScope)
-
}
fun stopSync() {
@@ -163,4 +177,4 @@ internal class RustRoomSummaryDataSource(
else -> false
}
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDetailsFactory.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDetailsFactory.kt
index 0427987bd5..8f9c4a471b 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDetailsFactory.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/RoomSummaryDetailsFactory.kt
@@ -7,7 +7,7 @@ import org.matrix.rustcomponents.sdk.SlidingSyncRoom
class RoomSummaryDetailsFactory(private val roomMessageFactory: RoomMessageFactory = RoomMessageFactory()) {
- fun create(slidingSyncRoom: SlidingSyncRoom, room: Room?): RoomSummaryDetails{
+ fun create(slidingSyncRoom: SlidingSyncRoom, room: Room?): RoomSummaryDetails {
val latestRoomMessage = slidingSyncRoom.latestRoomMessage()?.let {
roomMessageFactory.create(it)
}
@@ -17,14 +17,13 @@ class RoomSummaryDetailsFactory(private val roomMessageFactory: RoomMessageFacto
else -> "${latestRoomMessage.sender.value}: ${latestRoomMessage.body}"
}
return RoomSummaryDetails(
- roomId = RoomId(slidingSyncRoom.roomId()),
- name = slidingSyncRoom.name() ?: slidingSyncRoom.roomId(),
- isDirect = slidingSyncRoom.isDm() ?: false,
- avatarURLString = room?.avatarUrl(),
- unreadNotificationCount = slidingSyncRoom.unreadNotifications().notificationCount().toInt(),
- lastMessage = computedLastMessage,
- lastMessageTimestamp = latestRoomMessage?.originServerTs
+ roomId = RoomId(slidingSyncRoom.roomId()),
+ name = slidingSyncRoom.name() ?: slidingSyncRoom.roomId(),
+ isDirect = slidingSyncRoom.isDm() ?: false,
+ avatarURLString = room?.avatarUrl(),
+ unreadNotificationCount = slidingSyncRoom.unreadNotifications().notificationCount().toInt(),
+ lastMessage = computedLastMessage,
+ lastMessageTimestamp = latestRoomMessage?.originServerTs
)
}
-
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/message/RoomMessageFactory.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/message/RoomMessageFactory.kt
index 7c82c42472..4bcb86eefb 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/room/message/RoomMessageFactory.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/room/message/RoomMessageFactory.kt
@@ -14,5 +14,4 @@ class RoomMessageFactory {
originServerTs = eventTimelineItem.originServerTs()?.toLong() ?: 0L
)
}
-
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/session/SessionStore.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/session/SessionStore.kt
index a30c5b4ebc..288e181b78 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/session/SessionStore.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/session/SessionStore.kt
@@ -10,7 +10,8 @@ import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.firstOrNull
import kotlinx.coroutines.flow.map
import kotlinx.serialization.Serializable
-import kotlinx.serialization.*
+import kotlinx.serialization.decodeFromString
+import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import org.matrix.rustcomponents.sdk.Session
@@ -73,4 +74,4 @@ internal class SessionStore(
suspend fun reset() {
store.edit { it.clear() }
}
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncObserverProxy.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncObserverProxy.kt
index b5365cdf9a..88f8175d86 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncObserverProxy.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncObserverProxy.kt
@@ -11,6 +11,7 @@ import org.matrix.rustcomponents.sdk.UpdateSummary
// Sounds like a reasonable buffer size before it suspends emitting new items.
private const val BUFFER_SIZE = 64
+
class SlidingSyncObserverProxy(
private val coroutineScope: CoroutineScope,
private val coroutineDispatchers: CoroutineDispatchers
@@ -26,5 +27,4 @@ class SlidingSyncObserverProxy(
updateSummaryMutableFlow.emit(summary)
}
}
-
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncViewFlows.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncViewFlows.kt
index 8eaa386390..3e814877e8 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncViewFlows.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/sync/SlidingSyncViewFlows.kt
@@ -4,7 +4,12 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.launch
import mxCallbackFlow
-import org.matrix.rustcomponents.sdk.*
+import org.matrix.rustcomponents.sdk.SlidingSyncState
+import org.matrix.rustcomponents.sdk.SlidingSyncView
+import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomListObserver
+import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomsCountObserver
+import org.matrix.rustcomponents.sdk.SlidingSyncViewRoomsListDiff
+import org.matrix.rustcomponents.sdk.SlidingSyncViewStateObserver
fun SlidingSyncView.roomListDiff(scope: CoroutineScope): Flow =
mxCallbackFlow {
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt
index c987716104..3a65bedadf 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/timeline/MatrixTimeline.kt
@@ -8,9 +8,14 @@ import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.sample
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
-import org.matrix.rustcomponents.sdk.*
+import org.matrix.rustcomponents.sdk.PaginationOutcome
+import org.matrix.rustcomponents.sdk.Room
+import org.matrix.rustcomponents.sdk.SlidingSyncRoom
+import org.matrix.rustcomponents.sdk.TimelineChange
+import org.matrix.rustcomponents.sdk.TimelineDiff
+import org.matrix.rustcomponents.sdk.TimelineListener
import timber.log.Timber
-import java.util.*
+import java.util.Collections
class MatrixTimeline(
private val matrixRoom: MatrixRoom,
@@ -31,7 +36,6 @@ class MatrixTimeline(
private val timelineItems: MutableStateFlow> =
MutableStateFlow(emptyList())
-
fun timelineItems(): Flow> {
return timelineItems.sample(50)
}
@@ -41,7 +45,6 @@ class MatrixTimeline(
return paginationOutcome.value.moreMessages
}
-
private fun MutableList.applyDiff(diff: TimelineDiff) {
when (diff.change()) {
TimelineChange.PUSH -> {
@@ -140,5 +143,4 @@ class MatrixTimeline(
}
}
}
-
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/tracing/TracingConfiguration.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/tracing/TracingConfiguration.kt
index 947bff09f5..de5ae950bb 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/tracing/TracingConfiguration.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/tracing/TracingConfiguration.kt
@@ -9,7 +9,6 @@ data class TracingConfiguration(
targets.map { "${it.key.filter}=${it.value.filter}" }.joinToString(separator = ",")
}"
-
sealed class Target(open val filter: String) {
object Hyper : Target("hyper")
object Sled : Target("sled")
@@ -31,7 +30,6 @@ data class TracingConfiguration(
object Debug : LogLevel("debug")
object Error : LogLevel("error")
}
-
}
fun setupTracing(tracingConfiguration: TracingConfiguration) {
@@ -47,4 +45,4 @@ object TracingConfigurations {
TracingConfiguration.Target.Sled to TracingConfiguration.LogLevel.Warn
)
)
-}
\ No newline at end of file
+}
diff --git a/libraries/matrix/src/main/java/io/element/android/x/matrix/util/CallbackFlow.kt b/libraries/matrix/src/main/java/io/element/android/x/matrix/util/CallbackFlow.kt
index 23bb5f6fbc..3d76294e6f 100644
--- a/libraries/matrix/src/main/java/io/element/android/x/matrix/util/CallbackFlow.kt
+++ b/libraries/matrix/src/main/java/io/element/android/x/matrix/util/CallbackFlow.kt
@@ -12,4 +12,4 @@ internal fun mxCallbackFlow(block: suspend ProducerScope.() -> StoppableS
awaitClose {
token.cancel()
}
- }
\ No newline at end of file
+ }
diff --git a/libraries/textcomposer/src/main/AndroidManifest.xml b/libraries/textcomposer/src/main/AndroidManifest.xml
index 8bdb7e14b3..e100076157 100644
--- a/libraries/textcomposer/src/main/AndroidManifest.xml
+++ b/libraries/textcomposer/src/main/AndroidManifest.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/MessageComposerMode.kt b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/MessageComposerMode.kt
index 617eeef499..dff983a47a 100644
--- a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/MessageComposerMode.kt
+++ b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/MessageComposerMode.kt
@@ -34,7 +34,6 @@ sealed interface MessageComposerMode {
override val defaultContent: CharSequence
) : Special(eventId, defaultContent)
-
val relatedEventId: String?
get() = when (this) {
is Normal -> null
@@ -42,7 +41,5 @@ sealed interface MessageComposerMode {
is Quote -> eventId
is Reply -> eventId
}
-
-
}
diff --git a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt
index 870fe1e657..bb57ca98af 100644
--- a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt
+++ b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/TextComposer.kt
@@ -70,7 +70,6 @@ fun TextComposer(
override fun onFullScreenModeChanged() {
onFullscreenToggle()
}
-
}
setFullScreen(fullscreen, animated = false, manageKeyboard = true)
(this as MessageComposerView).apply {
diff --git a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/tools/ViewExtensions.kt b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/tools/ViewExtensions.kt
index 649221c2bd..fa0a218d19 100644
--- a/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/tools/ViewExtensions.kt
+++ b/libraries/textcomposer/src/main/java/io/element/android/x/textcomposer/tools/ViewExtensions.kt
@@ -1,7 +1,11 @@
package io.element.android.x.textcomposer.tools
import android.view.ViewGroup
-import androidx.transition.*
+import androidx.transition.ChangeBounds
+import androidx.transition.Fade
+import androidx.transition.Transition
+import androidx.transition.TransitionManager
+import androidx.transition.TransitionSet
fun ViewGroup.animateLayoutChange(animationDuration: Long, transitionComplete: (() -> Unit)? = null) {
val transition = TransitionSet().apply {
diff --git a/libraries/textcomposer/src/main/res/drawable/bg_composer_rich_bottom_sheet.xml b/libraries/textcomposer/src/main/res/drawable/bg_composer_rich_bottom_sheet.xml
index 47364373f7..ab91f2f496 100644
--- a/libraries/textcomposer/src/main/res/drawable/bg_composer_rich_bottom_sheet.xml
+++ b/libraries/textcomposer/src/main/res/drawable/bg_composer_rich_bottom_sheet.xml
@@ -1,5 +1,7 @@
-
-
+
+
diff --git a/libraries/textcomposer/src/main/res/drawable/bottomsheet_handle.xml b/libraries/textcomposer/src/main/res/drawable/bottomsheet_handle.xml
index 89ccf57ed0..f1bb917c61 100644
--- a/libraries/textcomposer/src/main/res/drawable/bottomsheet_handle.xml
+++ b/libraries/textcomposer/src/main/res/drawable/bottomsheet_handle.xml
@@ -1,6 +1,7 @@
-
-
+
+
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_composer_collapse.xml b/libraries/textcomposer/src/main/res/drawable/ic_composer_collapse.xml
index 724a833761..3e24b2d62e 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_composer_collapse.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_composer_collapse.xml
@@ -5,5 +5,5 @@
android:viewportHeight="20">
+ android:pathData="M10.708,10Q10.438,10 10.219,9.781Q10,9.562 10,9.292V4.542Q10,4.354 10.146,4.219Q10.292,4.083 10.458,4.083Q10.646,4.083 10.781,4.219Q10.917,4.354 10.917,4.542V8.438L16.375,3Q16.5,2.854 16.688,2.854Q16.875,2.854 17,3Q17.146,3.125 17.146,3.312Q17.146,3.5 17,3.625L11.562,9.083H15.458Q15.646,9.083 15.781,9.229Q15.917,9.375 15.917,9.542Q15.917,9.729 15.781,9.865Q15.646,10 15.458,10ZM3,17Q2.854,16.875 2.854,16.688Q2.854,16.5 3,16.375L8.438,10.917H4.542Q4.354,10.917 4.219,10.771Q4.083,10.625 4.083,10.458Q4.083,10.271 4.219,10.135Q4.354,10 4.542,10H9.292Q9.562,10 9.781,10.219Q10,10.438 10,10.708V15.458Q10,15.646 9.854,15.781Q9.708,15.917 9.542,15.917Q9.354,15.917 9.219,15.781Q9.083,15.646 9.083,15.458V11.562L3.625,17Q3.5,17.146 3.312,17.146Q3.125,17.146 3,17Z" />
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_composer_full_screen.xml b/libraries/textcomposer/src/main/res/drawable/ic_composer_full_screen.xml
index de1862c09b..d877319d0e 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_composer_full_screen.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_composer_full_screen.xml
@@ -5,5 +5,5 @@
android:viewportHeight="20">
+ android:pathData="M3.625,17.083Q3.354,17.083 3.135,16.865Q2.917,16.646 2.917,16.375V11.625Q2.917,11.438 3.062,11.302Q3.208,11.167 3.375,11.167Q3.562,11.167 3.698,11.302Q3.833,11.438 3.833,11.625V15.5L15.5,3.833H11.625Q11.438,3.833 11.302,3.688Q11.167,3.542 11.167,3.375Q11.167,3.188 11.302,3.052Q11.438,2.917 11.625,2.917H16.375Q16.646,2.917 16.865,3.135Q17.083,3.354 17.083,3.625V8.375Q17.083,8.562 16.938,8.698Q16.792,8.833 16.625,8.833Q16.438,8.833 16.302,8.698Q16.167,8.562 16.167,8.375V4.5L4.5,16.167H8.375Q8.562,16.167 8.698,16.312Q8.833,16.458 8.833,16.625Q8.833,16.812 8.698,16.948Q8.562,17.083 8.375,17.083Z" />
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_close.xml b/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_close.xml
index c461470de5..44343de281 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_close.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_close.xml
@@ -3,7 +3,7 @@
android:height="12dp"
android:viewportWidth="12"
android:viewportHeight="12">
-
+
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_edit.xml b/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_edit.xml
index 4556974221..a5ef981c5b 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_edit.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_editor_edit.xml
@@ -3,10 +3,10 @@
android:height="12dp"
android:viewportWidth="12"
android:viewportHeight="12">
-
-
+
+
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_save.xml b/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_save.xml
index f270d6f8ae..e447fdc6af 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_save.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_composer_rich_text_save.xml
@@ -3,14 +3,14 @@
android:height="36dp"
android:viewportWidth="36"
android:viewportHeight="36">
-
-
+
+
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_quote.xml b/libraries/textcomposer/src/main/res/drawable/ic_quote.xml
index 0689651f1d..e287c9296d 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_quote.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_quote.xml
@@ -3,12 +3,12 @@
android:height="14dp"
android:viewportWidth="20"
android:viewportHeight="14">
-
+
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_reply.xml b/libraries/textcomposer/src/main/res/drawable/ic_reply.xml
index f23730624f..80eeab00c9 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_reply.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_reply.xml
@@ -1,11 +1,20 @@
-
-
+
-
+
+ android:strokeColor="#000000"
+ android:strokeLineCap="round"
+ android:strokeLineJoin="round"
+ android:strokeWidth="2" />
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_add.xml b/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_add.xml
index 3a90a40902..9dc6ed03e9 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_add.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_add.xml
@@ -3,13 +3,13 @@
android:height="36dp"
android:viewportWidth="36"
android:viewportHeight="36">
-
-
+
+
diff --git a/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_send.xml b/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_send.xml
index 0f99c1670e..18afb70d6d 100644
--- a/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_send.xml
+++ b/libraries/textcomposer/src/main/res/drawable/ic_rich_composer_send.xml
@@ -3,10 +3,10 @@
android:height="36dp"
android:viewportWidth="36"
android:viewportHeight="36">
-
-
+
+
diff --git a/libraries/textcomposer/src/main/res/layout/composer_rich_text_layout.xml b/libraries/textcomposer/src/main/res/layout/composer_rich_text_layout.xml
index d099c72cab..0e82ca381b 100644
--- a/libraries/textcomposer/src/main/res/layout/composer_rich_text_layout.xml
+++ b/libraries/textcomposer/src/main/res/layout/composer_rich_text_layout.xml
@@ -81,7 +81,8 @@
app:layout_constraintStart_toStartOf="@id/composerEditTextOuterBorder"
app:tint="?vctr_content_tertiary" />
-
-
-