Refacto a bit for clarity

This commit is contained in:
Benoit Marty
2023-12-06 14:42:10 +01:00
parent 9502b92dc4
commit faaa94860b
4 changed files with 98 additions and 182 deletions

View File

@@ -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,

View File

@@ -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
}
}

View File

@@ -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)
}
}

View File

@@ -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
}
}