From faaa94860b955b86ed0cf4e57ffcb52671b77e30 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 6 Dec 2023 14:42:10 +0100 Subject: [PATCH] Refacto a bit for clarity --- .../impl/VerifySelfSessionView.kt | 8 +- .../impl/emoji/EmojiDrawables.kt | 89 ------------------ .../impl/emoji/EmojiResources.kt | 94 +++++++++++++++++++ .../verifysession/impl/emoji/EmojiStrings.kt | 89 ------------------ 4 files changed, 98 insertions(+), 182 deletions(-) delete mode 100644 features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiDrawables.kt create mode 100644 features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiResources.kt delete mode 100644 features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiStrings.kt diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt index f449eb98ff..ef047ed1bf 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt @@ -41,8 +41,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme -import io.element.android.features.verifysession.impl.emoji.toEmojiDrawableRes -import io.element.android.features.verifysession.impl.emoji.toEmojiStringRes +import io.element.android.features.verifysession.impl.emoji.toEmojiResource import io.element.android.libraries.architecture.Async import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule @@ -161,15 +160,16 @@ private fun ContentVerifying(verificationFlowStep: FlowStep.Verifying, modifier: @Composable private fun EmojiItemView(emoji: VerificationEmoji, modifier: Modifier = Modifier) { + val emojiResource = emoji.code.toEmojiResource() Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = modifier) { Image( modifier = Modifier.size(48.dp), - painter = painterResource(id = emoji.code.toEmojiDrawableRes()), + painter = painterResource(id = emojiResource.drawableRes), contentDescription = null, ) Spacer(modifier = Modifier.height(16.dp)) Text( - text = stringResource(id = emoji.code.toEmojiStringRes()), + text = stringResource(id = emojiResource.nameRes), style = ElementTheme.typography.fontBodyMdRegular, color = MaterialTheme.colorScheme.secondary, maxLines = 1, diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiDrawables.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiDrawables.kt deleted file mode 100644 index 4b96808dc2..0000000000 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiDrawables.kt +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.element.android.features.verifysession.impl.emoji - -import androidx.annotation.DrawableRes -import io.element.android.features.verifysession.impl.R - -@DrawableRes -internal fun Int.toEmojiDrawableRes(): Int { - return when (this % 64) { - 0 -> R.drawable.ic_verification_dog - 1 -> R.drawable.ic_verification_cat - 2 -> R.drawable.ic_verification_lion - 3 -> R.drawable.ic_verification_horse - 4 -> R.drawable.ic_verification_unicorn - 5 -> R.drawable.ic_verification_pig - 6 -> R.drawable.ic_verification_elephant - 7 -> R.drawable.ic_verification_rabbit - 8 -> R.drawable.ic_verification_panda - 9 -> R.drawable.ic_verification_rooster - 10 -> R.drawable.ic_verification_penguin - 11 -> R.drawable.ic_verification_turtle - 12 -> R.drawable.ic_verification_fish - 13 -> R.drawable.ic_verification_octopus - 14 -> R.drawable.ic_verification_butterfly - 15 -> R.drawable.ic_verification_flower - 16 -> R.drawable.ic_verification_tree - 17 -> R.drawable.ic_verification_cactus - 18 -> R.drawable.ic_verification_mushroom - 19 -> R.drawable.ic_verification_globe - 20 -> R.drawable.ic_verification_moon - 21 -> R.drawable.ic_verification_cloud - 22 -> R.drawable.ic_verification_fire - 23 -> R.drawable.ic_verification_banana - 24 -> R.drawable.ic_verification_apple - 25 -> R.drawable.ic_verification_strawberry - 26 -> R.drawable.ic_verification_corn - 27 -> R.drawable.ic_verification_pizza - 28 -> R.drawable.ic_verification_cake - 29 -> R.drawable.ic_verification_heart - 30 -> R.drawable.ic_verification_smiley - 31 -> R.drawable.ic_verification_robot - 32 -> R.drawable.ic_verification_hat - 33 -> R.drawable.ic_verification_glasses - 34 -> R.drawable.ic_verification_spanner - 35 -> R.drawable.ic_verification_santa - 36 -> R.drawable.ic_verification_thumbs_up - 37 -> R.drawable.ic_verification_umbrella - 38 -> R.drawable.ic_verification_hourglass - 39 -> R.drawable.ic_verification_clock - 40 -> R.drawable.ic_verification_gift - 41 -> R.drawable.ic_verification_light_bulb - 42 -> R.drawable.ic_verification_book - 43 -> R.drawable.ic_verification_pencil - 44 -> R.drawable.ic_verification_paperclip - 45 -> R.drawable.ic_verification_scissors - 46 -> R.drawable.ic_verification_lock - 47 -> R.drawable.ic_verification_key - 48 -> R.drawable.ic_verification_hammer - 49 -> R.drawable.ic_verification_phone - 50 -> R.drawable.ic_verification_flag - 51 -> R.drawable.ic_verification_train - 52 -> R.drawable.ic_verification_bicycle - 53 -> R.drawable.ic_verification_aeroplane - 54 -> R.drawable.ic_verification_rocket - 55 -> R.drawable.ic_verification_trophy - 56 -> R.drawable.ic_verification_ball - 57 -> R.drawable.ic_verification_guitar - 58 -> R.drawable.ic_verification_trumpet - 59 -> R.drawable.ic_verification_bell - 60 -> R.drawable.ic_verification_anchor - 61 -> R.drawable.ic_verification_headphones - 62 -> R.drawable.ic_verification_folder - /* 63 */ else -> R.drawable.ic_verification_pin - } -} diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiResources.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiResources.kt new file mode 100644 index 0000000000..4dc72420bb --- /dev/null +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiResources.kt @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2023 New Vector Ltd + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.element.android.features.verifysession.impl.emoji + +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes +import io.element.android.features.verifysession.impl.R + +internal data class EmojiResource( + @DrawableRes val drawableRes: Int, + @StringRes val nameRes: Int +) + +internal fun Int.toEmojiResource(): EmojiResource { + return when (this % 64) { + 0 -> EmojiResource(R.drawable.ic_verification_dog, R.string.verification_emoji_dog) + 1 -> EmojiResource(R.drawable.ic_verification_cat, R.string.verification_emoji_cat) + 2 -> EmojiResource(R.drawable.ic_verification_lion, R.string.verification_emoji_lion) + 3 -> EmojiResource(R.drawable.ic_verification_horse, R.string.verification_emoji_horse) + 4 -> EmojiResource(R.drawable.ic_verification_unicorn, R.string.verification_emoji_unicorn) + 5 -> EmojiResource(R.drawable.ic_verification_pig, R.string.verification_emoji_pig) + 6 -> EmojiResource(R.drawable.ic_verification_elephant, R.string.verification_emoji_elephant) + 7 -> EmojiResource(R.drawable.ic_verification_rabbit, R.string.verification_emoji_rabbit) + 8 -> EmojiResource(R.drawable.ic_verification_panda, R.string.verification_emoji_panda) + 9 -> EmojiResource(R.drawable.ic_verification_rooster, R.string.verification_emoji_rooster) + 10 -> EmojiResource(R.drawable.ic_verification_penguin, R.string.verification_emoji_penguin) + 11 -> EmojiResource(R.drawable.ic_verification_turtle, R.string.verification_emoji_turtle) + 12 -> EmojiResource(R.drawable.ic_verification_fish, R.string.verification_emoji_fish) + 13 -> EmojiResource(R.drawable.ic_verification_octopus, R.string.verification_emoji_octopus) + 14 -> EmojiResource(R.drawable.ic_verification_butterfly, R.string.verification_emoji_butterfly) + 15 -> EmojiResource(R.drawable.ic_verification_flower, R.string.verification_emoji_flower) + 16 -> EmojiResource(R.drawable.ic_verification_tree, R.string.verification_emoji_tree) + 17 -> EmojiResource(R.drawable.ic_verification_cactus, R.string.verification_emoji_cactus) + 18 -> EmojiResource(R.drawable.ic_verification_mushroom, R.string.verification_emoji_mushroom) + 19 -> EmojiResource(R.drawable.ic_verification_globe, R.string.verification_emoji_globe) + 20 -> EmojiResource(R.drawable.ic_verification_moon, R.string.verification_emoji_moon) + 21 -> EmojiResource(R.drawable.ic_verification_cloud, R.string.verification_emoji_cloud) + 22 -> EmojiResource(R.drawable.ic_verification_fire, R.string.verification_emoji_fire) + 23 -> EmojiResource(R.drawable.ic_verification_banana, R.string.verification_emoji_banana) + 24 -> EmojiResource(R.drawable.ic_verification_apple, R.string.verification_emoji_apple) + 25 -> EmojiResource(R.drawable.ic_verification_strawberry, R.string.verification_emoji_strawberry) + 26 -> EmojiResource(R.drawable.ic_verification_corn, R.string.verification_emoji_corn) + 27 -> EmojiResource(R.drawable.ic_verification_pizza, R.string.verification_emoji_pizza) + 28 -> EmojiResource(R.drawable.ic_verification_cake, R.string.verification_emoji_cake) + 29 -> EmojiResource(R.drawable.ic_verification_heart, R.string.verification_emoji_heart) + 30 -> EmojiResource(R.drawable.ic_verification_smiley, R.string.verification_emoji_smiley) + 31 -> EmojiResource(R.drawable.ic_verification_robot, R.string.verification_emoji_robot) + 32 -> EmojiResource(R.drawable.ic_verification_hat, R.string.verification_emoji_hat) + 33 -> EmojiResource(R.drawable.ic_verification_glasses, R.string.verification_emoji_glasses) + 34 -> EmojiResource(R.drawable.ic_verification_spanner, R.string.verification_emoji_spanner) + 35 -> EmojiResource(R.drawable.ic_verification_santa, R.string.verification_emoji_santa) + 36 -> EmojiResource(R.drawable.ic_verification_thumbs_up, R.string.verification_emoji_thumbs_up) + 37 -> EmojiResource(R.drawable.ic_verification_umbrella, R.string.verification_emoji_umbrella) + 38 -> EmojiResource(R.drawable.ic_verification_hourglass, R.string.verification_emoji_hourglass) + 39 -> EmojiResource(R.drawable.ic_verification_clock, R.string.verification_emoji_clock) + 40 -> EmojiResource(R.drawable.ic_verification_gift, R.string.verification_emoji_gift) + 41 -> EmojiResource(R.drawable.ic_verification_light_bulb, R.string.verification_emoji_light_bulb) + 42 -> EmojiResource(R.drawable.ic_verification_book, R.string.verification_emoji_book) + 43 -> EmojiResource(R.drawable.ic_verification_pencil, R.string.verification_emoji_pencil) + 44 -> EmojiResource(R.drawable.ic_verification_paperclip, R.string.verification_emoji_paperclip) + 45 -> EmojiResource(R.drawable.ic_verification_scissors, R.string.verification_emoji_scissors) + 46 -> EmojiResource(R.drawable.ic_verification_lock, R.string.verification_emoji_lock) + 47 -> EmojiResource(R.drawable.ic_verification_key, R.string.verification_emoji_key) + 48 -> EmojiResource(R.drawable.ic_verification_hammer, R.string.verification_emoji_hammer) + 49 -> EmojiResource(R.drawable.ic_verification_phone, R.string.verification_emoji_telephone) + 50 -> EmojiResource(R.drawable.ic_verification_flag, R.string.verification_emoji_flag) + 51 -> EmojiResource(R.drawable.ic_verification_train, R.string.verification_emoji_train) + 52 -> EmojiResource(R.drawable.ic_verification_bicycle, R.string.verification_emoji_bicycle) + 53 -> EmojiResource(R.drawable.ic_verification_aeroplane, R.string.verification_emoji_aeroplane) + 54 -> EmojiResource(R.drawable.ic_verification_rocket, R.string.verification_emoji_rocket) + 55 -> EmojiResource(R.drawable.ic_verification_trophy, R.string.verification_emoji_trophy) + 56 -> EmojiResource(R.drawable.ic_verification_ball, R.string.verification_emoji_ball) + 57 -> EmojiResource(R.drawable.ic_verification_guitar, R.string.verification_emoji_guitar) + 58 -> EmojiResource(R.drawable.ic_verification_trumpet, R.string.verification_emoji_trumpet) + 59 -> EmojiResource(R.drawable.ic_verification_bell, R.string.verification_emoji_bell) + 60 -> EmojiResource(R.drawable.ic_verification_anchor, R.string.verification_emoji_anchor) + 61 -> EmojiResource(R.drawable.ic_verification_headphones, R.string.verification_emoji_headphones) + 62 -> EmojiResource(R.drawable.ic_verification_folder, R.string.verification_emoji_folder) + /* 63 */ else -> EmojiResource(R.drawable.ic_verification_pin, R.string.verification_emoji_pin) + } +} diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiStrings.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiStrings.kt deleted file mode 100644 index 26df09a306..0000000000 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/emoji/EmojiStrings.kt +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2023 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.element.android.features.verifysession.impl.emoji - -import androidx.annotation.StringRes -import io.element.android.features.verifysession.impl.R - -@StringRes -internal fun Int.toEmojiStringRes(): Int { - return when (this % 64) { - 0 -> R.string.verification_emoji_dog - 1 -> R.string.verification_emoji_cat - 2 -> R.string.verification_emoji_lion - 3 -> R.string.verification_emoji_horse - 4 -> R.string.verification_emoji_unicorn - 5 -> R.string.verification_emoji_pig - 6 -> R.string.verification_emoji_elephant - 7 -> R.string.verification_emoji_rabbit - 8 -> R.string.verification_emoji_panda - 9 -> R.string.verification_emoji_rooster - 10 -> R.string.verification_emoji_penguin - 11 -> R.string.verification_emoji_turtle - 12 -> R.string.verification_emoji_fish - 13 -> R.string.verification_emoji_octopus - 14 -> R.string.verification_emoji_butterfly - 15 -> R.string.verification_emoji_flower - 16 -> R.string.verification_emoji_tree - 17 -> R.string.verification_emoji_cactus - 18 -> R.string.verification_emoji_mushroom - 19 -> R.string.verification_emoji_globe - 20 -> R.string.verification_emoji_moon - 21 -> R.string.verification_emoji_cloud - 22 -> R.string.verification_emoji_fire - 23 -> R.string.verification_emoji_banana - 24 -> R.string.verification_emoji_apple - 25 -> R.string.verification_emoji_strawberry - 26 -> R.string.verification_emoji_corn - 27 -> R.string.verification_emoji_pizza - 28 -> R.string.verification_emoji_cake - 29 -> R.string.verification_emoji_heart - 30 -> R.string.verification_emoji_smiley - 31 -> R.string.verification_emoji_robot - 32 -> R.string.verification_emoji_hat - 33 -> R.string.verification_emoji_glasses - 34 -> R.string.verification_emoji_spanner - 35 -> R.string.verification_emoji_santa - 36 -> R.string.verification_emoji_thumbs_up - 37 -> R.string.verification_emoji_umbrella - 38 -> R.string.verification_emoji_hourglass - 39 -> R.string.verification_emoji_clock - 40 -> R.string.verification_emoji_gift - 41 -> R.string.verification_emoji_light_bulb - 42 -> R.string.verification_emoji_book - 43 -> R.string.verification_emoji_pencil - 44 -> R.string.verification_emoji_paperclip - 45 -> R.string.verification_emoji_scissors - 46 -> R.string.verification_emoji_lock - 47 -> R.string.verification_emoji_key - 48 -> R.string.verification_emoji_hammer - 49 -> R.string.verification_emoji_telephone - 50 -> R.string.verification_emoji_flag - 51 -> R.string.verification_emoji_train - 52 -> R.string.verification_emoji_bicycle - 53 -> R.string.verification_emoji_aeroplane - 54 -> R.string.verification_emoji_rocket - 55 -> R.string.verification_emoji_trophy - 56 -> R.string.verification_emoji_ball - 57 -> R.string.verification_emoji_guitar - 58 -> R.string.verification_emoji_trumpet - 59 -> R.string.verification_emoji_bell - 60 -> R.string.verification_emoji_anchor - 61 -> R.string.verification_emoji_headphones - 62 -> R.string.verification_emoji_folder - /* 63 */ else -> R.string.verification_emoji_pin - } -}