mirror of
https://github.com/SchildiChat/SchildiChat-android.git
synced 2025-03-18 04:08:44 +03:00
Merge pull request #1867 from vector-im/feature/cleanup_after_ooo
Small cleanup, also to be aware of all the changes that occurred during my holidays.
This commit is contained in:
commit
b4af59728c
19 changed files with 113 additions and 82 deletions
|
@ -20,7 +20,7 @@ Build 🧱:
|
|||
-
|
||||
|
||||
Other changes:
|
||||
-
|
||||
- Hide Flair settings, this is not implemented yet.
|
||||
|
||||
Changes in Element 1.0.4 (2020-08-03)
|
||||
===================================================
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2019 New Vector Ltd
|
||||
* Copyright 2020 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.
|
||||
|
@ -17,10 +17,9 @@
|
|||
package im.vector.matrix.android.api.session.accountdata
|
||||
|
||||
object UserAccountDataTypes {
|
||||
|
||||
const val TYPE_IGNORED_USER_LIST = "m.ignored_user_list"
|
||||
const val TYPE_DIRECT_MESSAGES = "m.direct"
|
||||
const val TYPE_BREADCRUMBS = "im.vector.setting.breadcrumbs" // Was previously "im.vector.riot.breadcrumb_rooms"
|
||||
const val TYPE_BREADCRUMBS = "im.vector.setting.breadcrumbs"
|
||||
const val TYPE_PREVIEW_URLS = "org.matrix.preview_urls"
|
||||
const val TYPE_WIDGETS = "m.widgets"
|
||||
const val TYPE_PUSH_RULES = "m.push_rules"
|
||||
|
|
|
@ -67,13 +67,15 @@ internal interface AuthAPI {
|
|||
* https://github.com/matrix-org/matrix-doc/pull/2290
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "register/{threePid}/requestToken")
|
||||
fun add3Pid(@Path("threePid") threePid: String, @Body params: AddThreePidRegistrationParams): Call<AddThreePidRegistrationResponse>
|
||||
fun add3Pid(@Path("threePid") threePid: String,
|
||||
@Body params: AddThreePidRegistrationParams): Call<AddThreePidRegistrationResponse>
|
||||
|
||||
/**
|
||||
* Validate 3pid
|
||||
*/
|
||||
@POST
|
||||
fun validate3Pid(@Url url: String, @Body params: ValidationCodeBody): Call<SuccessResult>
|
||||
fun validate3Pid(@Url url: String,
|
||||
@Body params: ValidationCodeBody): Call<SuccessResult>
|
||||
|
||||
/**
|
||||
* Get the supported login flow
|
||||
|
|
|
@ -119,7 +119,9 @@ internal interface CryptoApi {
|
|||
* @param body the body
|
||||
*/
|
||||
@PUT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "sendToDevice/{eventType}/{txnId}")
|
||||
fun sendToDevice(@Path("eventType") eventType: String, @Path("txnId") transactionId: String, @Body body: SendToDeviceBody): Call<Unit>
|
||||
fun sendToDevice(@Path("eventType") eventType: String,
|
||||
@Path("txnId") transactionId: String,
|
||||
@Body body: SendToDeviceBody): Call<Unit>
|
||||
|
||||
/**
|
||||
* Delete a device.
|
||||
|
@ -129,7 +131,8 @@ internal interface CryptoApi {
|
|||
* @param params the deletion parameters
|
||||
*/
|
||||
@HTTP(path = NetworkConstants.URI_API_PREFIX_PATH_R0 + "devices/{device_id}", method = "DELETE", hasBody = true)
|
||||
fun deleteDevice(@Path("device_id") deviceId: String, @Body params: DeleteDeviceParams): Call<Unit>
|
||||
fun deleteDevice(@Path("device_id") deviceId: String,
|
||||
@Body params: DeleteDeviceParams): Call<Unit>
|
||||
|
||||
/**
|
||||
* Update the device information.
|
||||
|
@ -139,7 +142,8 @@ internal interface CryptoApi {
|
|||
* @param params the params
|
||||
*/
|
||||
@PUT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "devices/{device_id}")
|
||||
fun updateDeviceInfo(@Path("device_id") deviceId: String, @Body params: UpdateDeviceInfoBody): Call<Unit>
|
||||
fun updateDeviceInfo(@Path("device_id") deviceId: String,
|
||||
@Body params: UpdateDeviceInfoBody): Call<Unit>
|
||||
|
||||
/**
|
||||
* Get the update devices list from two sync token.
|
||||
|
@ -149,5 +153,6 @@ internal interface CryptoApi {
|
|||
* @param newToken the up-to token.
|
||||
*/
|
||||
@GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "keys/changes")
|
||||
fun getKeyChanges(@Query("from") oldToken: String, @Query("to") newToken: String): Call<KeyChangesResponse>
|
||||
fun getKeyChanges(@Query("from") oldToken: String,
|
||||
@Query("to") newToken: String): Call<KeyChangesResponse>
|
||||
}
|
||||
|
|
|
@ -25,10 +25,10 @@ internal class AccessTokenInterceptor(private val accessTokenProvider: AccessTok
|
|||
override fun intercept(chain: Interceptor.Chain): Response {
|
||||
var request = chain.request()
|
||||
|
||||
accessTokenProvider.getToken()?.let {
|
||||
// Add the access token to all requests if it is set
|
||||
accessTokenProvider.getToken()?.let { token ->
|
||||
val newRequestBuilder = request.newBuilder()
|
||||
// Add the access token to all requests if it is set
|
||||
newRequestBuilder.addHeader(HttpHeaders.Authorization, "Bearer $it")
|
||||
newRequestBuilder.header(HttpHeaders.Authorization, "Bearer $token")
|
||||
request = newRequestBuilder.build()
|
||||
}
|
||||
|
||||
|
|
|
@ -32,7 +32,8 @@ internal interface FilterApi {
|
|||
* @param body the Json representation of a FilterBody object
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "user/{userId}/filter")
|
||||
fun uploadFilter(@Path("userId") userId: String, @Body body: Filter): Call<FilterResponse>
|
||||
fun uploadFilter(@Path("userId") userId: String,
|
||||
@Body body: Filter): Call<FilterResponse>
|
||||
|
||||
/**
|
||||
* Gets a filter with a given filterId from the homeserver
|
||||
|
@ -42,5 +43,6 @@ internal interface FilterApi {
|
|||
* @return Filter
|
||||
*/
|
||||
@GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "user/{userId}/filter/{filterId}")
|
||||
fun getFilterById(@Path("userId") userId: String, @Path("filterId") filterId: String): Call<Filter>
|
||||
fun getFilterById(@Path("userId") userId: String,
|
||||
@Path("filterId") filterId: String): Call<Filter>
|
||||
}
|
||||
|
|
|
@ -94,5 +94,6 @@ internal interface IdentityAPI {
|
|||
* - https://matrix.org/docs/spec/identity_service/latest#post-matrix-identity-v2-validate-email-submittoken
|
||||
*/
|
||||
@POST(NetworkConstants.URI_IDENTITY_PATH_V2 + "validate/{medium}/submitToken")
|
||||
fun submitToken(@Path("medium") medium: String, @Body body: IdentityRequestOwnershipParams): Call<SuccessResult>
|
||||
fun submitToken(@Path("medium") medium: String,
|
||||
@Body body: IdentityRequestOwnershipParams): Call<SuccessResult>
|
||||
}
|
||||
|
|
|
@ -34,5 +34,6 @@ internal interface OpenIdAPI {
|
|||
* @param userId the user id
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "user/{userId}/openid/request_token")
|
||||
fun openIdToken(@Path("userId") userId: String, @Body body: JsonDict = emptyMap()): Call<RequestOpenIdTokenResponse>
|
||||
fun openIdToken(@Path("userId") userId: String,
|
||||
@Body body: JsonDict = emptyMap()): Call<RequestOpenIdTokenResponse>
|
||||
}
|
||||
|
|
|
@ -47,13 +47,15 @@ internal interface ProfileAPI {
|
|||
* Change user display name
|
||||
*/
|
||||
@PUT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "profile/{userId}/displayname")
|
||||
fun setDisplayName(@Path("userId") userId: String, @Body body: SetDisplayNameBody): Call<Unit>
|
||||
fun setDisplayName(@Path("userId") userId: String,
|
||||
@Body body: SetDisplayNameBody): Call<Unit>
|
||||
|
||||
/**
|
||||
* Change user avatar url.
|
||||
*/
|
||||
@PUT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "profile/{userId}/avatar_url")
|
||||
fun setAvatarUrl(@Path("userId") userId: String, @Body body: SetAvatarUrlBody): Call<Unit>
|
||||
fun setAvatarUrl(@Path("userId") userId: String,
|
||||
@Body body: SetAvatarUrlBody): Call<Unit>
|
||||
|
||||
/**
|
||||
* Bind a threePid
|
||||
|
|
|
@ -165,7 +165,8 @@ internal interface RoomAPI {
|
|||
* @param eventId the event Id
|
||||
*/
|
||||
@GET(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/event/{eventId}")
|
||||
fun getEvent(@Path("roomId") roomId: String, @Path("eventId") eventId: String): Call<Event>
|
||||
fun getEvent(@Path("roomId") roomId: String,
|
||||
@Path("eventId") eventId: String): Call<Event>
|
||||
|
||||
/**
|
||||
* Send read markers.
|
||||
|
@ -174,7 +175,8 @@ internal interface RoomAPI {
|
|||
* @param markers the read markers
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/read_markers")
|
||||
fun sendReadMarker(@Path("roomId") roomId: String, @Body markers: Map<String, String>): Call<Unit>
|
||||
fun sendReadMarker(@Path("roomId") roomId: String,
|
||||
@Body markers: Map<String, String>): Call<Unit>
|
||||
|
||||
/**
|
||||
* Invite a user to the given room.
|
||||
|
@ -184,7 +186,8 @@ internal interface RoomAPI {
|
|||
* @param body a object that just contains a user id
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/invite")
|
||||
fun invite(@Path("roomId") roomId: String, @Body body: InviteBody): Call<Unit>
|
||||
fun invite(@Path("roomId") roomId: String,
|
||||
@Body body: InviteBody): Call<Unit>
|
||||
|
||||
/**
|
||||
* Invite a user to a room, using a ThreePid
|
||||
|
@ -192,7 +195,8 @@ internal interface RoomAPI {
|
|||
* @param roomId Required. The room identifier (not alias) to which to invite the user.
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/invite")
|
||||
fun invite3pid(@Path("roomId") roomId: String, @Body body: ThreePidInviteBody): Call<Unit>
|
||||
fun invite3pid(@Path("roomId") roomId: String,
|
||||
@Body body: ThreePidInviteBody): Call<Unit>
|
||||
|
||||
/**
|
||||
* Send a generic state events
|
||||
|
@ -278,7 +282,8 @@ internal interface RoomAPI {
|
|||
* @param userIdAndReason the banned user object (userId and reason for ban)
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/ban")
|
||||
fun ban(@Path("roomId") roomId: String, @Body userIdAndReason: UserIdAndReason): Call<Unit>
|
||||
fun ban(@Path("roomId") roomId: String,
|
||||
@Body userIdAndReason: UserIdAndReason): Call<Unit>
|
||||
|
||||
/**
|
||||
* unban a user from the given room.
|
||||
|
@ -287,7 +292,8 @@ internal interface RoomAPI {
|
|||
* @param userIdAndReason the unbanned user object (userId and reason for unban)
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/unban")
|
||||
fun unban(@Path("roomId") roomId: String, @Body userIdAndReason: UserIdAndReason): Call<Unit>
|
||||
fun unban(@Path("roomId") roomId: String,
|
||||
@Body userIdAndReason: UserIdAndReason): Call<Unit>
|
||||
|
||||
/**
|
||||
* Kick a user from the given room.
|
||||
|
@ -296,7 +302,8 @@ internal interface RoomAPI {
|
|||
* @param userIdAndReason the kicked user object (userId and reason for kicking)
|
||||
*/
|
||||
@POST(NetworkConstants.URI_API_PREFIX_PATH_R0 + "rooms/{roomId}/kick")
|
||||
fun kick(@Path("roomId") roomId: String, @Body userIdAndReason: UserIdAndReason): Call<Unit>
|
||||
fun kick(@Path("roomId") roomId: String,
|
||||
@Body userIdAndReason: UserIdAndReason): Call<Unit>
|
||||
|
||||
/**
|
||||
* Strips all information out of an event which isn't critical to the integrity of the server-side representation of the room.
|
||||
|
|
|
@ -35,5 +35,7 @@ internal interface TermsAPI {
|
|||
* This request requires authentication
|
||||
*/
|
||||
@POST
|
||||
fun agreeToTerms(@Url url: String, @Body params: AcceptTermsBody, @Header(HttpHeaders.Authorization) token: String): Call<Unit>
|
||||
fun agreeToTerms(@Url url: String,
|
||||
@Body params: AcceptTermsBody,
|
||||
@Header(HttpHeaders.Authorization) token: String): Call<Unit>
|
||||
}
|
||||
|
|
|
@ -32,5 +32,7 @@ interface AccountDataAPI {
|
|||
* @param params the put params
|
||||
*/
|
||||
@PUT(NetworkConstants.URI_API_PREFIX_PATH_R0 + "user/{userId}/account_data/{type}")
|
||||
fun setAccountData(@Path("userId") userId: String, @Path("type") type: String, @Body params: Any): Call<Unit>
|
||||
fun setAccountData(@Path("userId") userId: String,
|
||||
@Path("type") type: String,
|
||||
@Body params: Any): Call<Unit>
|
||||
}
|
||||
|
|
|
@ -30,8 +30,10 @@ internal interface WidgetsAPI {
|
|||
* @param body the body content (Ref: https://github.com/matrix-org/matrix-doc/pull/1961)
|
||||
*/
|
||||
@POST("register")
|
||||
fun register(@Body body: RequestOpenIdTokenResponse, @Query("v") version: String?): Call<RegisterWidgetResponse>
|
||||
fun register(@Body body: RequestOpenIdTokenResponse,
|
||||
@Query("v") version: String?): Call<RegisterWidgetResponse>
|
||||
|
||||
@GET("account")
|
||||
fun validateToken(@Query("scalar_token") scalarToken: String?, @Query("v") version: String?): Call<Unit>
|
||||
fun validateToken(@Query("scalar_token") scalarToken: String?,
|
||||
@Query("v") version: String?): Call<Unit>
|
||||
}
|
||||
|
|
|
@ -43,13 +43,13 @@ class LoginServerSelectionFragment @Inject constructor() : AbstractLoginFragment
|
|||
}
|
||||
|
||||
private fun initTextViews() {
|
||||
loginServerChoiceEMSLearnMore.text = span {
|
||||
loginServerChoiceEmsLearnMore.text = span {
|
||||
text = getString(R.string.login_server_modular_learn_more)
|
||||
textDecorationLine = "underline"
|
||||
}
|
||||
}
|
||||
|
||||
@OnClick(R.id.loginServerChoiceEMSLearnMore)
|
||||
@OnClick(R.id.loginServerChoiceEmsLearnMore)
|
||||
fun learnMore() {
|
||||
openUrlInChromeCustomTab(requireActivity(), null, EMS_LINK)
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ class LoginServerSelectionFragment @Inject constructor() : AbstractLoginFragment
|
|||
loginViewModel.handle(LoginAction.UpdateServerType(ServerType.MatrixOrg))
|
||||
}
|
||||
|
||||
@OnClick(R.id.loginServerChoiceEMS)
|
||||
@OnClick(R.id.loginServerChoiceEms)
|
||||
fun selectEMS() {
|
||||
loginViewModel.handle(LoginAction.UpdateServerType(ServerType.EMS))
|
||||
}
|
||||
|
|
|
@ -77,6 +77,6 @@ class SharedPrefPinCodeStore @Inject constructor(private val sharedPreferences:
|
|||
}
|
||||
|
||||
companion object {
|
||||
const val ENCODED_PIN_CODE_KEY = "ENCODED_PIN_CODE_KEY"
|
||||
private const val ENCODED_PIN_CODE_KEY = "ENCODED_PIN_CODE_KEY"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -104,8 +104,11 @@ class CreateRoomController @Inject constructor(private val stringProvider: Strin
|
|||
enabled(enableFormElement)
|
||||
title(stringProvider.getString(R.string.create_room_encryption_title))
|
||||
summary(
|
||||
if (viewState.hsAdminHasDisabledE2E) stringProvider.getString(R.string.settings_hs_admin_e2e_disabled)
|
||||
else stringProvider.getString(R.string.create_room_encryption_description)
|
||||
if (viewState.hsAdminHasDisabledE2E) {
|
||||
stringProvider.getString(R.string.settings_hs_admin_e2e_disabled)
|
||||
} else {
|
||||
stringProvider.getString(R.string.create_room_encryption_description)
|
||||
}
|
||||
)
|
||||
switchChecked(viewState.isEncrypted)
|
||||
|
||||
|
|
|
@ -51,42 +51,46 @@ class RoomBannedMemberListController @Inject constructor(
|
|||
override fun buildModels(data: RoomBannedMemberListViewState?) {
|
||||
val bannedList = data?.bannedMemberSummaries?.invoke() ?: return
|
||||
|
||||
buildProfileSection(
|
||||
stringProvider.getString(R.string.room_settings_banned_users_title)
|
||||
)
|
||||
val quantityString = stringProvider.getQuantityString(R.plurals.room_settings_banned_users_count, bannedList.size, bannedList.size)
|
||||
|
||||
bannedList.join(
|
||||
each = { _, roomMember ->
|
||||
val actionInProgress = data.onGoingModerationAction.contains(roomMember.userId)
|
||||
profileMatrixItemWithProgress {
|
||||
id(roomMember.userId)
|
||||
matrixItem(roomMember.toMatrixItem())
|
||||
avatarRenderer(avatarRenderer)
|
||||
apply {
|
||||
if (actionInProgress) {
|
||||
inProgress(true)
|
||||
editable(false)
|
||||
} else {
|
||||
inProgress(false)
|
||||
editable(true)
|
||||
clickListener { _ ->
|
||||
callback?.onUnbanClicked(roomMember)
|
||||
if (bannedList.isEmpty()) {
|
||||
buildProfileSection(stringProvider.getString(R.string.room_settings_banned_users_title))
|
||||
|
||||
genericFooterItem {
|
||||
id("footer")
|
||||
text(quantityString)
|
||||
}
|
||||
} else {
|
||||
buildProfileSection(quantityString)
|
||||
|
||||
bannedList.join(
|
||||
each = { _, roomMember ->
|
||||
val actionInProgress = data.onGoingModerationAction.contains(roomMember.userId)
|
||||
profileMatrixItemWithProgress {
|
||||
id(roomMember.userId)
|
||||
matrixItem(roomMember.toMatrixItem())
|
||||
avatarRenderer(avatarRenderer)
|
||||
apply {
|
||||
if (actionInProgress) {
|
||||
inProgress(true)
|
||||
editable(false)
|
||||
} else {
|
||||
inProgress(false)
|
||||
editable(true)
|
||||
clickListener { _ ->
|
||||
callback?.onUnbanClicked(roomMember)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
between = { _, roomMemberBefore ->
|
||||
dividerItem {
|
||||
id("divider_${roomMemberBefore.userId}")
|
||||
color(dividerColor)
|
||||
}
|
||||
}
|
||||
},
|
||||
between = { _, roomMemberBefore ->
|
||||
dividerItem {
|
||||
id("divider_${roomMemberBefore.userId}")
|
||||
color(dividerColor)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
genericFooterItem {
|
||||
id("footer")
|
||||
text(stringProvider.getQuantityString(R.plurals.room_settings_banned_users_count, bannedList.size, bannedList.size))
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
</im.vector.riotx.core.platform.CheckableConstraintLayout>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/loginServerChoiceEMS"
|
||||
android:id="@+id/loginServerChoiceEms"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/layout_vertical_margin"
|
||||
|
@ -95,19 +95,19 @@
|
|||
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceMatrixOrg">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/loginServerChoiceEMSIcon"
|
||||
android:id="@+id/loginServerChoiceEmsIcon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:importantForAccessibility="no"
|
||||
android:src="@drawable/ic_logo_element_matrix_services"
|
||||
android:tint="?riotx_text_primary"
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceEMSText"
|
||||
app:layout_constraintBottom_toTopOf="@+id/loginServerChoiceEmsText"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintVertical_chainStyle="packed" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/loginServerChoiceEMSText"
|
||||
android:id="@+id/loginServerChoiceEmsText"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="7dp"
|
||||
|
@ -115,21 +115,21 @@
|
|||
android:text="@string/login_server_modular_text"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/loginServerChoiceEMSLearnMore"
|
||||
app:layout_constraintEnd_toStartOf="@+id/loginServerChoiceEmsLearnMore"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceEMSIcon" />
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceEmsIcon" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/loginServerChoiceEMSLearnMore"
|
||||
android:id="@+id/loginServerChoiceEmsLearnMore"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="16dp"
|
||||
android:text="@string/login_server_modular_learn_more"
|
||||
android:textAppearance="@style/TextAppearance.Vector.Login.Text.Small"
|
||||
android:textColor="@color/riotx_accent"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/loginServerChoiceEMSText"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/loginServerChoiceEmsText"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/loginServerChoiceEMSText" />
|
||||
app:layout_constraintTop_toTopOf="@+id/loginServerChoiceEmsText" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
@ -145,7 +145,7 @@
|
|||
android:paddingEnd="@dimen/layout_horizontal_margin"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceEMS">
|
||||
app:layout_constraintTop_toBottomOf="@+id/loginServerChoiceEms">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/loginServerChoiceOtherTitle"
|
||||
|
|
|
@ -8,10 +8,10 @@
|
|||
app:fragment="im.vector.riotx.features.settings.VectorSettingsGeneralFragment" />
|
||||
|
||||
<im.vector.riotx.core.preference.VectorPreference
|
||||
android:enabled="@bool/false_not_implemented"
|
||||
android:icon="@drawable/ic_settings_root_flair"
|
||||
android:title="@string/settings_flair"
|
||||
app:fragment="im.vector.riotx.features.settings.VectorSettingsFlairFragment" />
|
||||
app:fragment="im.vector.riotx.features.settings.VectorSettingsFlairFragment"
|
||||
app:isPreferenceVisible="@bool/false_not_implemented" />
|
||||
|
||||
<im.vector.riotx.core.preference.VectorPreference
|
||||
android:icon="@drawable/ic_settings_root_notification"
|
||||
|
@ -24,11 +24,10 @@
|
|||
app:fragment="im.vector.riotx.features.settings.VectorSettingsPreferencesFragment" />
|
||||
|
||||
<im.vector.riotx.core.preference.VectorPreference
|
||||
app:isPreferenceVisible="@bool/false_not_implemented"
|
||||
android:enabled="@bool/false_not_implemented"
|
||||
android:icon="@drawable/ic_settings_root_call"
|
||||
android:title="@string/preference_voice_and_video"
|
||||
app:fragment="im.vector.riotx.features.settings.VectorSettingsVoiceVideoFragment" />
|
||||
app:fragment="im.vector.riotx.features.settings.VectorSettingsVoiceVideoFragment"
|
||||
app:isPreferenceVisible="@bool/false_not_implemented" />
|
||||
|
||||
<im.vector.riotx.core.preference.VectorPreference
|
||||
android:icon="@drawable/ic_settings_root_ignored_users"
|
||||
|
|
Loading…
Add table
Reference in a new issue