Merge branch 'develop' into feature/bma/emojiRepresentation

This commit is contained in:
Benoit Marty 2023-12-08 19:51:07 +01:00
commit 5ea809e2de
51 changed files with 65 additions and 20 deletions

View file

@ -11,7 +11,7 @@ jobs:
- run: |
npm install --save-dev @babel/plugin-transform-flow-strip-types
- name: Danger
uses: danger/danger-js@11.3.0
uses: danger/danger-js@11.3.1
with:
args: "--dangerfile ./tools/danger/dangerfile.js"
env:

View file

@ -60,7 +60,7 @@ jobs:
yarn add danger-plugin-lint-report --dev
- name: Danger lint
if: always()
uses: danger/danger-js@11.3.0
uses: danger/danger-js@11.3.1
with:
args: "--dangerfile ./tools/danger/dangerfile-lint.js"
env:

View file

@ -13,7 +13,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.9
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Setup Localazy

View file

@ -34,6 +34,8 @@ class IntentResolver @Inject constructor(
private val oidcIntentResolver: OidcIntentResolver
) {
fun resolve(intent: Intent): ResolvedIntent? {
if (intent.canBeIgnored()) return null
val deepLinkData = deeplinkParser.getFromIntent(intent)
if (deepLinkData != null) return ResolvedIntent.Navigation(deepLinkData)
@ -45,3 +47,8 @@ class IntentResolver @Inject constructor(
return null
}
}
private fun Intent.canBeIgnored(): Boolean {
return action == Intent.ACTION_MAIN &&
categories?.contains(Intent.CATEGORY_LAUNCHER) == true
}

View file

@ -37,6 +37,17 @@ import org.robolectric.RuntimeEnvironment
@RunWith(RobolectricTestRunner::class)
class IntentResolverTest {
@Test
fun `resolve launcher intent should return null`() {
val sut = createIntentResolver()
val intent = Intent(RuntimeEnvironment.getApplication(), Activity::class.java).apply {
action = Intent.ACTION_MAIN
addCategory(Intent.CATEGORY_LAUNCHER)
}
val result = sut.resolve(intent)
assertThat(result).isNull()
}
@Test
fun `test resolve navigation intent root`() {
val sut = createIntentResolver()

1
changelog.d/1950.bugfix Normal file
View file

@ -0,0 +1 @@
Fix rendering of user name with vertical text by clipping the text.

View file

@ -360,6 +360,7 @@ private fun MessageSenderInformation(
Avatar(senderAvatar)
Spacer(modifier = Modifier.width(4.dp))
Text(
modifier = Modifier.clipToBounds(),
text = sender,
maxLines = 1,
overflow = TextOverflow.Ellipsis,

View file

@ -31,6 +31,7 @@ Si vous continuez, il est possible que certains de vos paramètres soient modifi
<string name="screen_notification_settings_enable_notifications">"Activer les notifications sur cet appareil"</string>
<string name="screen_notification_settings_failed_fixing_configuration">"La configuration na pas été corrigée, veuillez réessayer."</string>
<string name="screen_notification_settings_group_chats">"Discussions de groupe"</string>
<string name="screen_notification_settings_invite_for_me_label">"Invitations"</string>
<string name="screen_notification_settings_mentions_only_disclaimer">"Votre serveur daccueil ne supporte pas cette option pour les salons chiffrés, vous pourriez ne pas être notifié(e) dans certains salons."</string>
<string name="screen_notification_settings_mentions_section_title">"Mentions"</string>
<string name="screen_notification_settings_mode_all">"Tous"</string>

View file

@ -31,6 +31,7 @@ Jika Anda melanjutkan, beberapa pengaturan Anda dapat berubah."</string>
<string name="screen_notification_settings_enable_notifications">"Aktifkan pemberitahuan di perangkat ini"</string>
<string name="screen_notification_settings_failed_fixing_configuration">"Pengaturan belum diperbaiki, silakan coba lagi."</string>
<string name="screen_notification_settings_group_chats">"Obrolan grup"</string>
<string name="screen_notification_settings_invite_for_me_label">"Undangan"</string>
<string name="screen_notification_settings_mentions_only_disclaimer">"Homeserver Anda tidak mendukung opsi ini dalam ruangan terenkripsi, Anda mungkin tidak diberi tahu dalam beberapa ruangan."</string>
<string name="screen_notification_settings_mentions_section_title">"Sebutan"</string>
<string name="screen_notification_settings_mode_all">"Semua"</string>

View file

@ -31,6 +31,7 @@ Ak budete pokračovať, niektoré z vašich nastavení sa môžu zmeniť."</stri
<string name="screen_notification_settings_enable_notifications">"Povoliť oznámenia na tomto zariadení"</string>
<string name="screen_notification_settings_failed_fixing_configuration">"Konfigurácia nebola opravená, skúste to prosím znova."</string>
<string name="screen_notification_settings_group_chats">"Skupinové rozhovory"</string>
<string name="screen_notification_settings_invite_for_me_label">"Pozvánky"</string>
<string name="screen_notification_settings_mentions_only_disclaimer">"Váš domovský server nepodporuje túto možnosť v šifrovaných miestnostiach, v niektorých miestnostiach nemusíte dostať upozornenie."</string>
<string name="screen_notification_settings_mentions_section_title">"Zmienky"</string>
<string name="screen_notification_settings_mode_all">"Všetky"</string>

View file

@ -29,13 +29,14 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.compound.theme.ElementTheme
@Composable
fun RoomMemberHeaderSection(
@ -56,7 +57,11 @@ fun RoomMemberHeaderSection(
}
Spacer(modifier = Modifier.height(24.dp))
if (userName != null) {
Text(text = userName, style = ElementTheme.typography.fontHeadingLgBold)
Text(
modifier = Modifier.clipToBounds(),
text = userName,
style = ElementTheme.typography.fontHeadingLgBold,
)
Spacer(modifier = Modifier.height(6.dp))
}
Text(

View file

@ -3,6 +3,8 @@
[versions]
# Project
# Warning: version 8.2.0 is leading https://github.com/vector-im/element-x-android/issues/1971
# which will only occurs in release mode, and so will not be detected by Maestro
android_gradle_plugin = "8.1.4"
kotlin = "1.9.20"
ksp = "1.9.20-1.0.14"
@ -37,7 +39,7 @@ serialization_json = "1.6.1"
showkase = "1.0.2"
appyx = "1.4.0"
sqldelight = "2.0.1"
wysiwyg = "2.20.0"
wysiwyg = "2.21.0"
# DI
dagger = "2.49"
@ -59,7 +61,7 @@ android_desugar = "com.android.tools:desugar_jdk_libs:2.0.4"
kotlin_gradle_plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
gms_google_services = "com.google.gms:google-services:4.4.0"
# https://firebase.google.com/docs/android/setup#available-libraries
google_firebase_bom = "com.google.firebase:firebase-bom:32.6.0"
google_firebase_bom = "com.google.firebase:firebase-bom:32.7.0"
firebase_appdistribution_gradle = { module = "com.google.firebase:firebase-appdistribution-gradle", version.ref = "firebaseAppDistribution" }
# AndroidX
@ -209,7 +211,7 @@ anvil = { id = "com.squareup.anvil", version.ref = "anvil" }
detekt = "io.gitlab.arturbosch.detekt:1.23.4"
ktlint = "org.jlleitschuh.gradle.ktlint:12.0.2"
dependencygraph = "com.savvasdalkitsis.module-dependency-graph:0.12"
dependencycheck = "org.owasp.dependencycheck:9.0.2"
dependencycheck = "org.owasp.dependencycheck:9.0.4"
dependencyanalysis = "com.autonomousapps.dependency-analysis:1.27.0"
paparazzi = "app.cash.paparazzi:1.3.1"
kover = "org.jetbrains.kotlinx.kover:0.6.1"

View file

@ -25,6 +25,7 @@ import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.PreviewParameter
import androidx.compose.ui.unit.dp
@ -80,6 +81,7 @@ private fun MatrixUserHeaderContent(
) {
// Name
Text(
modifier = Modifier.clipToBounds(),
text = matrixUser.getBestName(),
maxLines = 1,
style = ElementTheme.typography.fontHeadingSmMedium,

View file

@ -31,6 +31,7 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
@ -62,6 +63,7 @@ fun SelectedUser(
) {
Avatar(matrixUser.getAvatarData(size = AvatarSize.SelectedUser))
Text(
modifier = Modifier.clipToBounds(),
text = matrixUser.getBestName(),
overflow = TextOverflow.Ellipsis,
maxLines = 1,

View file

@ -25,12 +25,13 @@ import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import io.element.android.compound.theme.ElementTheme
import io.element.android.libraries.designsystem.components.avatar.Avatar
import io.element.android.libraries.designsystem.components.avatar.AvatarData
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.compound.theme.ElementTheme
@Composable
internal fun UserRow(
@ -55,6 +56,7 @@ internal fun UserRow(
) {
// Name
Text(
modifier = Modifier.clipToBounds(),
text = name,
maxLines = 1,
overflow = TextOverflow.Ellipsis,

View file

@ -44,6 +44,7 @@ import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.draw.clipToBounds
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow
@ -551,7 +552,7 @@ private fun ReplyToModeView(
) {
Text(
text = senderName,
modifier = Modifier.fillMaxWidth(),
modifier = Modifier.fillMaxWidth().clipToBounds(),
style = ElementTheme.typography.fontBodySmMedium,
textAlign = TextAlign.Start,
color = ElementTheme.materialColors.primary,

View file

@ -95,6 +95,7 @@
<string name="action_try_again">"Essayer à nouveau"</string>
<string name="action_view_source">"Afficher la source"</string>
<string name="action_yes">"Oui"</string>
<string name="action_load_more">"Voir plus"</string>
<string name="common_about">"À propos"</string>
<string name="common_acceptable_use_policy">"Politique dutilisation acceptable"</string>
<string name="common_advanced_settings">"Paramètres avancés"</string>

View file

@ -95,6 +95,7 @@
<string name="action_try_again">"Coba lagi"</string>
<string name="action_view_source">"Tampilkan sumber"</string>
<string name="action_yes">"Ya"</string>
<string name="action_load_more">"Muat lainnya"</string>
<string name="common_about">"Tentang"</string>
<string name="common_acceptable_use_policy">"Kebijakan penggunaan wajar"</string>
<string name="common_advanced_settings">"Pengaturan tingkat lanjut"</string>

View file

@ -95,6 +95,7 @@
<string name="action_try_again">"Повторить попытку"</string>
<string name="action_view_source">"Показать источник"</string>
<string name="action_yes">"Да"</string>
<string name="action_load_more">"Загрузить еще"</string>
<string name="common_about">"О приложении"</string>
<string name="common_acceptable_use_policy">"Политика допустимого использования"</string>
<string name="common_advanced_settings">"Дополнительные параметры"</string>

View file

@ -95,6 +95,7 @@
<string name="action_try_again">"Skúste to znova"</string>
<string name="action_view_source">"Zobraziť zdroj"</string>
<string name="action_yes">"Áno"</string>
<string name="action_load_more">"Načítať viac"</string>
<string name="common_about">"O aplikácii"</string>
<string name="common_acceptable_use_policy">"Zásady prijateľného používania"</string>
<string name="common_advanced_settings">"Pokročilé nastavenia"</string>

View file

@ -95,6 +95,7 @@
<string name="action_try_again">"Try again"</string>
<string name="action_view_source">"View source"</string>
<string name="action_yes">"Yes"</string>
<string name="action_load_more">"Load more"</string>
<string name="common_about">"About"</string>
<string name="common_acceptable_use_policy">"Acceptable use policy"</string>
<string name="common_advanced_settings">"Advanced settings"</string>

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e84a8f99437d6de1ab8775e449135a27f808ddef5271f9024618ca57a50c44b
size 43184
oid sha256:afb9bd4fc5d01e408b1b9dfb0b6a2b2d47c3f6605ef9065ae2b50c16d641b26e
size 43147

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4cf016ba5afe1015ab2ba9359f721f7cde8431aa24af51b55aa35fc13746a3fc
size 40644
oid sha256:769f171a6891c4414f6571fadc75b00a3c977bd108474750c714f4a53a491bd3
size 40538

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f17d7621796f3fdf4e3995ba1d51b30cdf700e7f548140d179edea9e46baa39f
size 48147
oid sha256:263604e2a52e424fe88fcb28b8c0493405a200bc0f1738d394dce3a63b182a83
size 47996

View file

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:978d26cf93122ac0c903d04222ae12caf320038f78aa084639ef8d90f8e4845e
size 45189
oid sha256:3c304d9a5b4d3ef45281785a67ff7fd0ffc7c8b8cb5975dd50a557a004cb993f
size 45109

View file

@ -46,9 +46,12 @@ if [[ $allFiles == 1 ]]; then
find . -name 'translations.xml' -print0 -exec bash -c "echo \"\" >> \"{}\"" \; >> /dev/null
fi
echo "Renaming all the folders values-id to values-in..."
set +e
find . -type d -name 'values-id' -execdir mv {} values-in 2> /dev/null \;
echo "Moving files from values-id to values-in..."
find . -type d -name 'values-id' -execdir mv {}/translations.xml {}/../values-in/translations.xml 2> /dev/null \;
echo "Deleting all the folders values-id..."
find . -type d -name 'values-id' -exec rm -rf {} 2> /dev/null \;
set -e
echo "Removing the generated config"