mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-25 09:17:44 +00:00
Add accessibility id's
This commit is contained in:
parent
7c6e4679fe
commit
f600e4d343
@ -171,6 +171,7 @@ class ConversationActionBarView : LinearLayout {
|
|||||||
|
|
||||||
fun bind(setting: ConversationSetting, itemCount: Int, listener: (ConversationSetting) -> Unit) {
|
fun bind(setting: ConversationSetting, itemCount: Int, listener: (ConversationSetting) -> Unit) {
|
||||||
binding.root.setOnClickListener { listener.invoke(setting) }
|
binding.root.setOnClickListener { listener.invoke(setting) }
|
||||||
|
binding.root.contentDescription = setting.contentDescription
|
||||||
binding.iconImageView.setImageResource(setting.iconResId)
|
binding.iconImageView.setImageResource(setting.iconResId)
|
||||||
binding.iconImageView.isVisible = setting.iconResId > 0
|
binding.iconImageView.isVisible = setting.iconResId > 0
|
||||||
binding.titleView.text = setting.title
|
binding.titleView.text = setting.title
|
||||||
@ -201,7 +202,8 @@ fun interface ConversationActionBarDelegate {
|
|||||||
data class ConversationSetting(
|
data class ConversationSetting(
|
||||||
val title: String,
|
val title: String,
|
||||||
val settingType: ConversationSettingType,
|
val settingType: ConversationSettingType,
|
||||||
val iconResId: Int = 0
|
val iconResId: Int = 0,
|
||||||
|
val contentDescription: String = ""
|
||||||
)
|
)
|
||||||
|
|
||||||
enum class ConversationSettingType {
|
enum class ConversationSettingType {
|
||||||
|
@ -41,9 +41,13 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
|
|
||||||
private val viewModel: ExpirationSettingsViewModel by viewModels {
|
private val viewModel: ExpirationSettingsViewModel by viewModels {
|
||||||
val afterReadOptions = resources.getIntArray(R.array.read_expiration_time_values).map(Int::toString)
|
val afterReadOptions = resources.getIntArray(R.array.read_expiration_time_values).map(Int::toString)
|
||||||
.zip(resources.getStringArray(R.array.read_expiration_time_names)) { value, name -> RadioOption(value, name)}
|
.zip(resources.getStringArray(R.array.read_expiration_time_names)) { value, name ->
|
||||||
|
RadioOption(value, name, getString(R.string.AccessibilityId_time_option))
|
||||||
|
}
|
||||||
val afterSendOptions = resources.getIntArray(R.array.send_expiration_time_values).map(Int::toString)
|
val afterSendOptions = resources.getIntArray(R.array.send_expiration_time_values).map(Int::toString)
|
||||||
.zip(resources.getStringArray(R.array.send_expiration_time_names)) { value, name -> RadioOption(value, name)}
|
.zip(resources.getStringArray(R.array.send_expiration_time_names)) { value, name ->
|
||||||
|
RadioOption(value, name, getString(R.string.AccessibilityId_time_option))
|
||||||
|
}
|
||||||
viewModelFactory.create(threadId, mayAddTestExpiryOption(afterReadOptions), mayAddTestExpiryOption(afterSendOptions))
|
viewModelFactory.create(threadId, mayAddTestExpiryOption(afterReadOptions), mayAddTestExpiryOption(afterSendOptions))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -161,16 +165,22 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
if (viewModel.recipient.value?.isContactRecipient == true && viewModel.recipient.value?.isLocalNumber == false) {
|
if (viewModel.recipient.value?.isContactRecipient == true && viewModel.recipient.value?.isLocalNumber == false) {
|
||||||
deleteTypeOptions.addAll(
|
deleteTypeOptions.addAll(
|
||||||
listOf(
|
listOf(
|
||||||
RadioOption(value = "-1", title = getString(R.string.expiration_off)),
|
RadioOption(
|
||||||
|
value = "-1",
|
||||||
|
title = getString(R.string.expiration_off),
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disable_disappearing_messages)
|
||||||
|
),
|
||||||
RadioOption(
|
RadioOption(
|
||||||
value = ExpirationType.DELETE_AFTER_READ_VALUE.toString(),
|
value = ExpirationType.DELETE_AFTER_READ_VALUE.toString(),
|
||||||
title = getString(R.string.expiration_type_disappear_after_read),
|
title = getString(R.string.expiration_type_disappear_after_read),
|
||||||
subtitle = getString(R.string.expiration_type_disappear_after_read_description)
|
subtitle = getString(R.string.expiration_type_disappear_after_read_description),
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disappear_after_read_option)
|
||||||
),
|
),
|
||||||
RadioOption(
|
RadioOption(
|
||||||
value = ExpirationType.DELETE_AFTER_SEND_VALUE.toString(),
|
value = ExpirationType.DELETE_AFTER_SEND_VALUE.toString(),
|
||||||
title = getString(R.string.expiration_type_disappear_after_send),
|
title = getString(R.string.expiration_type_disappear_after_send),
|
||||||
subtitle = getString(R.string.expiration_type_disappear_after_send_description)
|
subtitle = getString(R.string.expiration_type_disappear_after_send_description),
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disappear_after_send_option)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -179,7 +189,11 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
if (viewModel.recipient.value?.isContactRecipient == true && viewModel.recipient.value?.isLocalNumber == false) {
|
if (viewModel.recipient.value?.isContactRecipient == true && viewModel.recipient.value?.isLocalNumber == false) {
|
||||||
deleteTypeOptions.addAll(
|
deleteTypeOptions.addAll(
|
||||||
listOf(
|
listOf(
|
||||||
RadioOption(value = "-1", title = getString(R.string.expiration_off)),
|
RadioOption(
|
||||||
|
value = "-1",
|
||||||
|
title = getString(R.string.expiration_off),
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disable_disappearing_messages)
|
||||||
|
),
|
||||||
RadioOption(
|
RadioOption(
|
||||||
value = "0",
|
value = "0",
|
||||||
title = getString(R.string.expiration_type_disappear_legacy),
|
title = getString(R.string.expiration_type_disappear_legacy),
|
||||||
@ -189,13 +203,15 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
value = ExpirationType.DELETE_AFTER_READ_VALUE.toString(),
|
value = ExpirationType.DELETE_AFTER_READ_VALUE.toString(),
|
||||||
title = getString(R.string.expiration_type_disappear_after_read),
|
title = getString(R.string.expiration_type_disappear_after_read),
|
||||||
subtitle = getString(R.string.expiration_type_disappear_after_read_description),
|
subtitle = getString(R.string.expiration_type_disappear_after_read_description),
|
||||||
enabled = false
|
enabled = false,
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disappear_after_read_option)
|
||||||
),
|
),
|
||||||
RadioOption(
|
RadioOption(
|
||||||
value = ExpirationType.DELETE_AFTER_SEND_VALUE.toString(),
|
value = ExpirationType.DELETE_AFTER_SEND_VALUE.toString(),
|
||||||
title = getString(R.string.expiration_type_disappear_after_send),
|
title = getString(R.string.expiration_type_disappear_after_send),
|
||||||
subtitle = getString(R.string.expiration_type_disappear_after_send_description),
|
subtitle = getString(R.string.expiration_type_disappear_after_send_description),
|
||||||
enabled = false
|
enabled = false,
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disappear_after_send_option)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@ -212,7 +228,8 @@ class ExpirationSettingsActivity: PassphraseRequiredActionBarActivity() {
|
|||||||
value = ExpirationType.DELETE_AFTER_SEND_VALUE.toString(),
|
value = ExpirationType.DELETE_AFTER_SEND_VALUE.toString(),
|
||||||
title = getString(R.string.expiration_type_disappear_after_send),
|
title = getString(R.string.expiration_type_disappear_after_send),
|
||||||
subtitle = getString(R.string.expiration_type_disappear_after_send_description),
|
subtitle = getString(R.string.expiration_type_disappear_after_send_description),
|
||||||
enabled = false
|
enabled = false,
|
||||||
|
contentDescription = getString(R.string.AccessibilityId_disappear_after_send_option)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -49,6 +49,7 @@ class RadioOptionAdapter(
|
|||||||
fun bind(option: RadioOption, isSelected: Boolean, toggleSelection: (RadioOption) -> Unit) {
|
fun bind(option: RadioOption, isSelected: Boolean, toggleSelection: (RadioOption) -> Unit) {
|
||||||
val alpha = if (option.enabled) 1f else 0.5f
|
val alpha = if (option.enabled) 1f else 0.5f
|
||||||
binding.root.isEnabled = option.enabled
|
binding.root.isEnabled = option.enabled
|
||||||
|
binding.root.contentDescription = option.contentDescription
|
||||||
binding.titleTextView.alpha = alpha
|
binding.titleTextView.alpha = alpha
|
||||||
binding.subtitleTextView.alpha = alpha
|
binding.subtitleTextView.alpha = alpha
|
||||||
binding.selectButton.alpha = alpha
|
binding.selectButton.alpha = alpha
|
||||||
@ -69,5 +70,6 @@ data class RadioOption(
|
|||||||
val value: String,
|
val value: String,
|
||||||
val title: String,
|
val title: String,
|
||||||
val subtitle: String? = null,
|
val subtitle: String? = null,
|
||||||
val enabled: Boolean = true
|
val enabled: Boolean = true,
|
||||||
|
val contentDescription: String = ""
|
||||||
)
|
)
|
||||||
|
@ -73,6 +73,7 @@
|
|||||||
android:id="@+id/layout_timer"
|
android:id="@+id/layout_timer"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@string/AccessibilityId_disappearing_messages_timer"
|
||||||
android:layout_marginHorizontal="@dimen/small_spacing"
|
android:layout_marginHorizontal="@dimen/small_spacing"
|
||||||
android:background="@drawable/preference_single"
|
android:background="@drawable/preference_single"
|
||||||
android:paddingHorizontal="@dimen/large_spacing"
|
android:paddingHorizontal="@dimen/large_spacing"
|
||||||
@ -108,6 +109,7 @@
|
|||||||
style="@style/Widget.Session.Button.Common.ProminentOutline"
|
style="@style/Widget.Session.Button.Common.ProminentOutline"
|
||||||
android:layout_width="196dp"
|
android:layout_width="196dp"
|
||||||
android:layout_height="@dimen/medium_button_height"
|
android:layout_height="@dimen/medium_button_height"
|
||||||
|
android:contentDescription="@string/AccessibilityId_set_button"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_marginTop="@dimen/medium_spacing"
|
android:layout_marginTop="@dimen/medium_spacing"
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
android:id="@+id/textView"
|
android:id="@+id/textView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@string/AccessibilityId_configuration_message"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
android:textSize="@dimen/very_small_font_size"
|
android:textSize="@dimen/very_small_font_size"
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
android:id="@+id/conversationTitleView"
|
android:id="@+id/conversationTitleView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:contentDescription="@string/AccessibilityId_conversation_header_name"
|
||||||
tools:text="@tools:sample/full_names"
|
tools:text="@tools:sample/full_names"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textColor="?android:textColorPrimary"
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
@ -9,6 +9,17 @@
|
|||||||
<string name="save">Save</string>
|
<string name="save">Save</string>
|
||||||
<string name="note_to_self">Note to Self</string>
|
<string name="note_to_self">Note to Self</string>
|
||||||
<string name="version_s">Version %s</string>
|
<string name="version_s">Version %s</string>
|
||||||
|
|
||||||
|
<!-- Disappearing messages -->
|
||||||
|
<string name="AccessibilityId_disappear_after_read_option">Disappear after read option</string>
|
||||||
|
<string name="AccessibilityId_disappear_after_send_option">Disappear after send option</string>
|
||||||
|
<string name="AccessibilityId_disappearing_messages_timer">Disappearing messages timer</string>
|
||||||
|
<string name="AccessibilityId_set_button">Set button</string>
|
||||||
|
<string name="AccessibilityId_time_option">Time option</string>
|
||||||
|
<string name="AccessibilityId_disable_disappearing_messages">Disable disappearing messages (Off option)</string>
|
||||||
|
<string name="AccessibilityId_configuration_message">Configuration message</string>
|
||||||
|
<string name="AccessibilityId_disappearing_messages_type_and_time">Disappearing messages type and time</string>
|
||||||
|
<string name="AccessibilityId_conversation_header_name">Conversation header name</string>
|
||||||
<!-- AbstractNotificationBuilder -->
|
<!-- AbstractNotificationBuilder -->
|
||||||
<string name="AbstractNotificationBuilder_new_message">New message</string>
|
<string name="AbstractNotificationBuilder_new_message">New message</string>
|
||||||
<!-- AlbumThumbnailView -->
|
<!-- AlbumThumbnailView -->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user