Merge pull request #1496 from vector-im/feature/small_fixies
Small fixies
This commit is contained in:
commit
bbdf6c6eaf
|
@ -5,10 +5,10 @@ Features ✨:
|
||||||
-
|
-
|
||||||
|
|
||||||
Improvements 🙌:
|
Improvements 🙌:
|
||||||
-
|
- "Add Matrix app" menu is now always visible (#1495)
|
||||||
|
|
||||||
Bugfix 🐛:
|
Bugfix 🐛:
|
||||||
-
|
- Fix dark theme issue on login screen (#1097)
|
||||||
|
|
||||||
Translations 🗣:
|
Translations 🗣:
|
||||||
-
|
-
|
||||||
|
|
|
@ -21,6 +21,9 @@ import com.squareup.moshi.Json
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import im.vector.matrix.android.api.util.JsonDict
|
import im.vector.matrix.android.api.util.JsonDict
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ref: https://github.com/matrix-org/matrix-doc/issues/1236
|
||||||
|
*/
|
||||||
@JsonClass(generateAdapter = true)
|
@JsonClass(generateAdapter = true)
|
||||||
data class WidgetContent(
|
data class WidgetContent(
|
||||||
@Json(name = "creatorUserId") val creatorUserId: String? = null,
|
@Json(name = "creatorUserId") val creatorUserId: String? = null,
|
||||||
|
|
|
@ -16,6 +16,9 @@
|
||||||
|
|
||||||
package im.vector.matrix.android.api.session.widgets.model
|
package im.vector.matrix.android.api.session.widgets.model
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ref: https://github.com/matrix-org/matrix-doc/issues/1236
|
||||||
|
*/
|
||||||
sealed class WidgetType(open val preferred: String, open val legacy: String = preferred) {
|
sealed class WidgetType(open val preferred: String, open val legacy: String = preferred) {
|
||||||
object Jitsi : WidgetType("m.jitsi", "jitsi")
|
object Jitsi : WidgetType("m.jitsi", "jitsi")
|
||||||
object TradingView : WidgetType("m.tradingview")
|
object TradingView : WidgetType("m.tradingview")
|
||||||
|
|
|
@ -159,6 +159,7 @@ import im.vector.riotx.features.permalink.NavigationInterceptor
|
||||||
import im.vector.riotx.features.permalink.PermalinkHandler
|
import im.vector.riotx.features.permalink.PermalinkHandler
|
||||||
import im.vector.riotx.features.reactions.EmojiReactionPickerActivity
|
import im.vector.riotx.features.reactions.EmojiReactionPickerActivity
|
||||||
import im.vector.riotx.features.settings.VectorPreferences
|
import im.vector.riotx.features.settings.VectorPreferences
|
||||||
|
import im.vector.riotx.features.settings.VectorSettingsActivity
|
||||||
import im.vector.riotx.features.share.SharedData
|
import im.vector.riotx.features.share.SharedData
|
||||||
import im.vector.riotx.features.themes.ThemeUtils
|
import im.vector.riotx.features.themes.ThemeUtils
|
||||||
import im.vector.riotx.features.widgets.WidgetActivity
|
import im.vector.riotx.features.widgets.WidgetActivity
|
||||||
|
@ -469,13 +470,28 @@ class RoomDetailFragment @Inject constructor(
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
R.id.open_matrix_apps -> {
|
R.id.open_matrix_apps -> {
|
||||||
navigator.openIntegrationManager(requireContext(), roomDetailArgs.roomId, null, null)
|
if (session.integrationManagerService().isIntegrationEnabled()) {
|
||||||
|
navigator.openIntegrationManager(requireContext(), roomDetailArgs.roomId, null, null)
|
||||||
|
} else {
|
||||||
|
displayDisabledIntegrationDialog()
|
||||||
|
}
|
||||||
true
|
true
|
||||||
}
|
}
|
||||||
else -> super.onOptionsItemSelected(item)
|
else -> super.onOptionsItemSelected(item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun displayDisabledIntegrationDialog() {
|
||||||
|
AlertDialog.Builder(requireActivity())
|
||||||
|
.setTitle(R.string.disabled_integration_dialog_title)
|
||||||
|
.setMessage(R.string.disabled_integration_dialog_content)
|
||||||
|
.setPositiveButton(R.string.settings) { _, _ ->
|
||||||
|
navigator.openSettings(requireActivity(), VectorSettingsActivity.EXTRA_DIRECT_ACCESS_GENERAL)
|
||||||
|
}
|
||||||
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
|
||||||
private fun renderRegularMode(text: String) {
|
private fun renderRegularMode(text: String) {
|
||||||
autoCompleter.exitSpecialMode()
|
autoCompleter.exitSpecialMode()
|
||||||
composerLayout.collapse()
|
composerLayout.collapse()
|
||||||
|
|
|
@ -371,7 +371,7 @@ class RoomDetailViewModel @AssistedInject constructor(
|
||||||
timeline.pendingEventCount() > 0 && vectorPreferences.developerMode()
|
timeline.pendingEventCount() > 0 && vectorPreferences.developerMode()
|
||||||
R.id.resend_all -> timeline.failedToDeliverEventCount() > 0
|
R.id.resend_all -> timeline.failedToDeliverEventCount() > 0
|
||||||
R.id.clear_all -> timeline.failedToDeliverEventCount() > 0
|
R.id.clear_all -> timeline.failedToDeliverEventCount() > 0
|
||||||
R.id.open_matrix_apps -> session.integrationManagerService().isIntegrationEnabled()
|
R.id.open_matrix_apps -> true
|
||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,17 +21,17 @@ import android.os.Parcelable
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import butterknife.OnClick
|
import butterknife.OnClick
|
||||||
import com.airbnb.mvrx.args
|
import com.airbnb.mvrx.args
|
||||||
|
import im.vector.matrix.android.internal.auth.registration.LocalizedFlowDataLoginTerms
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.extensions.cleanup
|
import im.vector.riotx.core.extensions.cleanup
|
||||||
import im.vector.riotx.core.extensions.configureWith
|
import im.vector.riotx.core.extensions.configureWith
|
||||||
import im.vector.riotx.core.extensions.toReducedUrl
|
import im.vector.riotx.core.extensions.toReducedUrl
|
||||||
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
import im.vector.riotx.core.utils.openUrlInChromeCustomTab
|
||||||
import im.vector.riotx.features.login.AbstractLoginFragment
|
import im.vector.riotx.features.login.AbstractLoginFragment
|
||||||
import im.vector.riotx.features.login.LoginAction
|
import im.vector.riotx.features.login.LoginAction
|
||||||
import im.vector.riotx.features.login.LoginViewState
|
import im.vector.riotx.features.login.LoginViewState
|
||||||
import kotlinx.android.parcel.Parcelize
|
import kotlinx.android.parcel.Parcelize
|
||||||
import kotlinx.android.synthetic.main.fragment_login_terms.*
|
import kotlinx.android.synthetic.main.fragment_login_terms.*
|
||||||
import im.vector.matrix.android.internal.auth.registration.LocalizedFlowDataLoginTerms
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
|
@ -95,7 +95,7 @@ class LoginTermsFragment @Inject constructor(
|
||||||
localizedFlowDataLoginTerms.localizedUrl
|
localizedFlowDataLoginTerms.localizedUrl
|
||||||
?.takeIf { it.isNotBlank() }
|
?.takeIf { it.isNotBlank() }
|
||||||
?.let {
|
?.let {
|
||||||
openUrlInExternalBrowser(requireContext(), it)
|
openUrlInChromeCustomTab(requireContext(), null, it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -59,6 +59,8 @@ class VectorSettingsActivity : VectorBaseActivity(),
|
||||||
if (isFirstCreation()) {
|
if (isFirstCreation()) {
|
||||||
// display the fragment
|
// display the fragment
|
||||||
when (intent.getIntExtra(EXTRA_DIRECT_ACCESS, EXTRA_DIRECT_ACCESS_ROOT)) {
|
when (intent.getIntExtra(EXTRA_DIRECT_ACCESS, EXTRA_DIRECT_ACCESS_ROOT)) {
|
||||||
|
EXTRA_DIRECT_ACCESS_GENERAL ->
|
||||||
|
replaceFragment(R.id.vector_settings_page, VectorSettingsGeneralFragment::class.java, null, FRAGMENT_TAG)
|
||||||
EXTRA_DIRECT_ACCESS_ADVANCED_SETTINGS ->
|
EXTRA_DIRECT_ACCESS_ADVANCED_SETTINGS ->
|
||||||
replaceFragment(R.id.vector_settings_page, VectorSettingsAdvancedSettingsFragment::class.java, null, FRAGMENT_TAG)
|
replaceFragment(R.id.vector_settings_page, VectorSettingsAdvancedSettingsFragment::class.java, null, FRAGMENT_TAG)
|
||||||
EXTRA_DIRECT_ACCESS_SECURITY_PRIVACY ->
|
EXTRA_DIRECT_ACCESS_SECURITY_PRIVACY ->
|
||||||
|
@ -137,6 +139,7 @@ class VectorSettingsActivity : VectorBaseActivity(),
|
||||||
const val EXTRA_DIRECT_ACCESS_ADVANCED_SETTINGS = 1
|
const val EXTRA_DIRECT_ACCESS_ADVANCED_SETTINGS = 1
|
||||||
const val EXTRA_DIRECT_ACCESS_SECURITY_PRIVACY = 2
|
const val EXTRA_DIRECT_ACCESS_SECURITY_PRIVACY = 2
|
||||||
const val EXTRA_DIRECT_ACCESS_SECURITY_PRIVACY_MANAGE_SESSIONS = 3
|
const val EXTRA_DIRECT_ACCESS_SECURITY_PRIVACY_MANAGE_SESSIONS = 3
|
||||||
|
const val EXTRA_DIRECT_ACCESS_GENERAL = 4
|
||||||
|
|
||||||
private const val FRAGMENT_TAG = "VectorSettingsPreferencesFragment"
|
private const val FRAGMENT_TAG = "VectorSettingsPreferencesFragment"
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,7 +30,7 @@ import im.vector.riotx.core.extensions.configureWith
|
||||||
import im.vector.riotx.core.extensions.exhaustive
|
import im.vector.riotx.core.extensions.exhaustive
|
||||||
import im.vector.riotx.core.platform.VectorBaseActivity
|
import im.vector.riotx.core.platform.VectorBaseActivity
|
||||||
import im.vector.riotx.core.platform.VectorBaseFragment
|
import im.vector.riotx.core.platform.VectorBaseFragment
|
||||||
import im.vector.riotx.core.utils.openUrlInExternalBrowser
|
import im.vector.riotx.core.utils.openUrlInChromeCustomTab
|
||||||
import kotlinx.android.synthetic.main.fragment_review_terms.*
|
import kotlinx.android.synthetic.main.fragment_review_terms.*
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -106,6 +106,6 @@ class ReviewTermsFragment @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun review(term: Term) {
|
override fun review(term: Term) {
|
||||||
openUrlInExternalBrowser(requireContext(), term.url)
|
openUrlInChromeCustomTab(requireContext(), null, term.url)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,6 @@
|
||||||
android:width="1.2dp"
|
android:width="1.2dp"
|
||||||
android:color="#E7E7E7" />
|
android:color="#E7E7E7" />
|
||||||
|
|
||||||
<solid android:color="@color/white" />
|
<solid android:color="?riotx_background" />
|
||||||
|
|
||||||
</shape>
|
</shape>
|
|
@ -7,6 +7,6 @@
|
||||||
android:width="1.2dp"
|
android:width="1.2dp"
|
||||||
android:color="@color/riotx_accent" />
|
android:color="@color/riotx_accent" />
|
||||||
|
|
||||||
<solid android:color="@color/white" />
|
<solid android:color="?riotx_background" />
|
||||||
|
|
||||||
</shape>
|
</shape>
|
|
@ -0,0 +1,13 @@
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="14dp"
|
||||||
|
android:height="16dp"
|
||||||
|
android:viewportWidth="14"
|
||||||
|
android:viewportHeight="16">
|
||||||
|
<path
|
||||||
|
android:strokeWidth="1"
|
||||||
|
android:pathData="M13,11.1915V9.9086L8,5.6517C8,3.2856 8,1.8893 8,1.7728C8,1.2731 7.5522,0.6667 7,0.6667C6.4478,0.6667 6,1.2731 6,1.7728C6,1.9784 6,3.3376 6,5.6517L1,9.9086V11.1915L6,8.8416C6,10.3353 6,12.3168 6,13.0103L3.963,14.7439V15.3334L7,14.7508L10.037,15.3334V14.7439L8,13.0103C8,12.3168 8,10.3353 8,8.8416L13,11.1915Z"
|
||||||
|
android:strokeLineJoin="round"
|
||||||
|
android:fillColor="#00000000"
|
||||||
|
android:strokeColor="#2E2F32"
|
||||||
|
android:strokeLineCap="round"/>
|
||||||
|
</vector>
|
|
@ -25,6 +25,7 @@
|
||||||
android:id="@+id/loginServerIcon"
|
android:id="@+id/loginServerIcon"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:tint="?riotx_text_primary"
|
||||||
tools:src="@drawable/ic_logo_matrix_org" />
|
tools:src="@drawable/ic_logo_matrix_org" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
|
|
|
@ -63,6 +63,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
android:src="@drawable/ic_logo_matrix_org"
|
android:src="@drawable/ic_logo_matrix_org"
|
||||||
|
android:tint="?riotx_text_primary"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceMatrixOrgText"
|
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceMatrixOrgText"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
@ -103,6 +104,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
android:src="@drawable/ic_logo_modular"
|
android:src="@drawable/ic_logo_modular"
|
||||||
|
android:tint="?riotx_text_primary"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceModularText"
|
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceModularText"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
|
|
@ -26,7 +26,8 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
android:src="@drawable/ic_logo_modular" />
|
android:src="@drawable/ic_logo_modular"
|
||||||
|
android:tint="?riotx_text_primary" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/loginServerUrlFormTitle"
|
android:id="@+id/loginServerUrlFormTitle"
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:importantForAccessibility="no"
|
android:importantForAccessibility="no"
|
||||||
|
android:tint="?riotx_text_primary"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent"
|
app:layout_constraintTop_toTopOf="parent"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
<merge xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
@ -36,16 +37,26 @@
|
||||||
tools:layout_marginTop="10dp"
|
tools:layout_marginTop="10dp"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible" />
|
||||||
|
|
||||||
<TextView
|
<FrameLayout
|
||||||
android:id="@+id/syncStateNoNetworkAirplane"
|
android:id="@+id/syncStateNoNetworkAirplane"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/notification_accent_color"
|
android:background="@color/notification_accent_color"
|
||||||
android:gravity="center"
|
|
||||||
android:text="@string/no_connectivity_to_the_server_indicator_airplane"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:layout_marginTop="10dp"
|
tools:layout_marginTop="10dp"
|
||||||
tools:visibility="visible" />
|
tools:visibility="visible">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:drawablePadding="4dp"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="@string/no_connectivity_to_the_server_indicator_airplane"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
app:drawableStartCompat="@drawable/ic_airplane_16dp"
|
||||||
|
app:drawableTint="@color/white" />
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
</merge>
|
</merge>
|
|
@ -862,6 +862,9 @@
|
||||||
<string name="settings_integration_allow">Allow integrations</string>
|
<string name="settings_integration_allow">Allow integrations</string>
|
||||||
<string name="settings_integration_manager">Integration Manager</string>
|
<string name="settings_integration_manager">Integration Manager</string>
|
||||||
|
|
||||||
|
<string name="disabled_integration_dialog_title">Integrations are disabled</string>
|
||||||
|
<string name="disabled_integration_dialog_content">"Enable 'Allow integrations' in Settings to do this."</string>
|
||||||
|
|
||||||
<string name="settings_user_interface">User interface</string>
|
<string name="settings_user_interface">User interface</string>
|
||||||
<string name="settings_interface_language">Language</string>
|
<string name="settings_interface_language">Language</string>
|
||||||
<string name="settings_select_language">Choose language</string>
|
<string name="settings_select_language">Choose language</string>
|
||||||
|
|
|
@ -68,6 +68,26 @@
|
||||||
|
|
||||||
</im.vector.riotx.core.preference.VectorPreferenceCategory>
|
</im.vector.riotx.core.preference.VectorPreferenceCategory>
|
||||||
|
|
||||||
|
<im.vector.riotx.core.preference.VectorPreferenceCategory android:title="@string/settings_integrations">
|
||||||
|
|
||||||
|
<im.vector.riotx.core.preference.VectorPreference
|
||||||
|
android:focusable="false"
|
||||||
|
android:persistent="false"
|
||||||
|
android:summary="@string/settings_integrations_summary" />
|
||||||
|
|
||||||
|
<im.vector.riotx.core.preference.VectorSwitchPreference
|
||||||
|
android:key="SETTINGS_ALLOW_INTEGRATIONS_KEY"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/settings_integration_allow" />
|
||||||
|
|
||||||
|
<im.vector.riotx.core.preference.VectorPreference
|
||||||
|
android:dependency="SETTINGS_ALLOW_INTEGRATIONS_KEY"
|
||||||
|
android:key="SETTINGS_INTEGRATION_MANAGER_UI_URL_KEY"
|
||||||
|
android:persistent="false"
|
||||||
|
android:title="@string/settings_integration_manager" />
|
||||||
|
|
||||||
|
</im.vector.riotx.core.preference.VectorPreferenceCategory>
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreferenceCategory android:title="@string/settings_advanced">
|
<im.vector.riotx.core.preference.VectorPreferenceCategory android:title="@string/settings_advanced">
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreference
|
<im.vector.riotx.core.preference.VectorPreference
|
||||||
|
@ -96,26 +116,6 @@
|
||||||
|
|
||||||
</im.vector.riotx.core.preference.VectorPreferenceCategory>
|
</im.vector.riotx.core.preference.VectorPreferenceCategory>
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreferenceCategory android:title="@string/settings_integrations">
|
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreference
|
|
||||||
android:focusable="false"
|
|
||||||
android:persistent="false"
|
|
||||||
android:summary="@string/settings_integrations_summary" />
|
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorSwitchPreference
|
|
||||||
android:key="SETTINGS_ALLOW_INTEGRATIONS_KEY"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/settings_integration_allow" />
|
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreference
|
|
||||||
android:dependency="SETTINGS_ALLOW_INTEGRATIONS_KEY"
|
|
||||||
android:key="SETTINGS_INTEGRATION_MANAGER_UI_URL_KEY"
|
|
||||||
android:persistent="false"
|
|
||||||
android:title="@string/settings_integration_manager" />
|
|
||||||
|
|
||||||
</im.vector.riotx.core.preference.VectorPreferenceCategory>
|
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreferenceCategory android:title="@string/action_sign_out">
|
<im.vector.riotx.core.preference.VectorPreferenceCategory android:title="@string/action_sign_out">
|
||||||
|
|
||||||
<im.vector.riotx.core.preference.VectorPreference
|
<im.vector.riotx.core.preference.VectorPreference
|
||||||
|
|
Loading…
Reference in New Issue