Merge branch 'fix/displayname'

This commit is contained in:
kyori19 2021-03-04 22:27:40 +09:00
commit 5a46be79a8
7 changed files with 20 additions and 13 deletions

View File

@ -126,7 +126,7 @@ class EditProfileActivity : BaseActivity(), Injectable {
val me = profileRes.data
if (me != null) {
displayNameEditText.setText(me.displayName)
displayNameEditText.setText(me.intentionallyUseDisplayName)
noteEditText.setText(me.source?.note)
lockedCheckBox.isChecked = me.locked

View File

@ -168,7 +168,7 @@ fun Account.toEntity() =
ConversationAccountEntity(
id,
username,
displayName.orEmpty(),
name,
avatar,
emojis ?: emptyList()
)

View File

@ -17,13 +17,13 @@ package com.keylesspalace.tusky.entity
import android.text.Spanned
import com.google.gson.annotations.SerializedName
import java.util.Date
import java.util.*
data class Account(
val id: String,
@SerializedName("username") val localUsername: String,
@SerializedName("acct", alternate = ["subject"]) val username: String,
@SerializedName("display_name") val displayName: String?, // should never be null per Api definition, but some servers break the contract
@SerializedName("display_name") private val displayName: String?, // should never be null per Api definition, but some servers break the contract
val note: Spanned,
val url: String,
val avatar: String,
@ -46,6 +46,13 @@ data class Account(
localUsername
} else displayName
/**
* We have to use [localUsername] when [displayName] is empty.
* Should use [name] for displaying purposes.
*/
val intentionallyUseDisplayName: String
get() = displayName.orEmpty()
override fun hashCode(): Int {
return id.hashCode()
}

View File

@ -313,7 +313,7 @@ fun Account.toEntity(accountId: Long, gson: Gson): TimelineAccountEntity {
timelineUserId = accountId,
localUsername = localUsername,
username = username,
displayName = displayName.orEmpty(),
displayName = name,
url = url,
avatar = avatar,
emojis = gson.toJson(emojis),

View File

@ -52,7 +52,7 @@ public final class ViewDataUtils {
.setSensitive(visibleStatus.getSensitive())
.setIsShowingSensitiveContent(alwaysShowSensitiveMedia || !visibleStatus.getSensitive())
.setSpoilerText(visibleStatus.getSpoilerText())
.setRebloggedByUsername(status.getReblog() == null ? null : status.getAccount().getDisplayName())
.setRebloggedByUsername(status.getReblog() == null ? null : status.getAccount().getName())
.setUserFullName(visibleStatus.getAccount().getName())
.setVisibility(visibleStatus.getVisibility())
.setSenderId(visibleStatus.getAccount().getId())

View File

@ -15,12 +15,12 @@
package com.keylesspalace.tusky.viewmodel
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import android.content.Context
import android.graphics.Bitmap
import android.net.Uri
import android.util.Log
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.keylesspalace.tusky.EditProfileActivity.Companion.AVATAR_SIZE
import com.keylesspalace.tusky.EditProfileActivity.Companion.HEADER_HEIGHT
import com.keylesspalace.tusky.EditProfileActivity.Companion.HEADER_WIDTH
@ -36,10 +36,10 @@ import io.reactivex.disposables.CompositeDisposable
import io.reactivex.rxkotlin.addTo
import io.reactivex.schedulers.Schedulers
import okhttp3.MediaType.Companion.toMediaTypeOrNull
import okhttp3.RequestBody.Companion.asRequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import okhttp3.MultipartBody
import okhttp3.RequestBody
import okhttp3.RequestBody.Companion.asRequestBody
import okhttp3.RequestBody.Companion.toRequestBody
import org.json.JSONException
import org.json.JSONObject
import retrofit2.Call
@ -145,7 +145,7 @@ class EditProfileViewModel @Inject constructor(
return
}
val displayName = if (oldProfileData?.displayName == newDisplayName) {
val displayName = if (oldProfileData?.intentionallyUseDisplayName == newDisplayName) {
null
} else {
newDisplayName.toRequestBody(MultipartBody.FORM)
@ -285,4 +285,4 @@ class EditProfileViewModel @Inject constructor(
}
}
}

View File

@ -115,7 +115,7 @@ public class QuoteInlineHelper {
public void setupQuoteContainer() {
Account account = quoteStatus.getAccount();
setDisplayName(account.getDisplayName().equals("") ? account.getLocalUsername() : account.getDisplayName(), account.getEmojis());
setDisplayName(account.getName(), account.getEmojis());
setUsername(account.getUsername());
setContent(quoteStatus.getContent(), quoteStatus.getMentions(),
quoteStatus.getEmojis(), listener);