From 66a394245b53340bdbf814cd9263e1e7852a1855 Mon Sep 17 00:00:00 2001 From: Nik Clayton Date: Sun, 11 Jun 2023 19:12:05 +0200 Subject: [PATCH] Remove ReplacementSpan, display diffs using CharacterStyle (#3431) Remove the use of ReplacementSpan. It turns out this span type is incompatible with spans that occupy more than one line, and the result is that a longer diff can run off the end of the screen. The alternative means that the diff'd text doesn't have additional padding and rounded corners, but it's better than not being visible. Display the most recent version of the status with larger text. Again, consistent with the thread view. Display the avatar, name, and username of the poster in a pinned header at the top of the screen, instead of duplicating the information on every edit. This reduces the amount of redundant information on the screen. --- .../viewthread/edits/ViewEditsAdapter.kt | 143 ++++++------------ .../viewthread/edits/ViewEditsFragment.kt | 19 ++- .../viewthread/edits/ViewEditsViewModel.kt | 5 +- .../main/res/layout/fragment_view_edits.xml | 112 ++++++++++++++ app/src/main/res/layout/item_status_edit.xml | 69 +++------ app/src/main/res/values-ar/strings.xml | 4 +- app/src/main/res/values-be/strings.xml | 6 +- app/src/main/res/values-ca/strings.xml | 4 +- app/src/main/res/values-cy/strings.xml | 6 +- app/src/main/res/values-de/strings.xml | 6 +- app/src/main/res/values-es/strings.xml | 6 +- app/src/main/res/values-fa/strings.xml | 4 +- app/src/main/res/values-fr/strings.xml | 6 +- app/src/main/res/values-gd/strings.xml | 6 +- app/src/main/res/values-gl/strings.xml | 4 +- app/src/main/res/values-hu/strings.xml | 4 +- app/src/main/res/values-is/strings.xml | 4 +- app/src/main/res/values-it/strings.xml | 6 +- app/src/main/res/values-ja/strings.xml | 6 +- app/src/main/res/values-lv/strings.xml | 6 +- app/src/main/res/values-nl/strings.xml | 4 +- app/src/main/res/values-oc/strings.xml | 6 +- app/src/main/res/values-pl/strings.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 4 +- app/src/main/res/values-ru/strings.xml | 4 +- app/src/main/res/values-sa/strings.xml | 4 +- app/src/main/res/values-sv/strings.xml | 8 +- app/src/main/res/values-tr/strings.xml | 6 +- app/src/main/res/values-uk/strings.xml | 6 +- app/src/main/res/values-vi/strings.xml | 6 +- app/src/main/res/values-zh-rCN/strings.xml | 4 +- app/src/main/res/values/dimens.xml | 3 - app/src/main/res/values/strings.xml | 4 +- 33 files changed, 266 insertions(+), 223 deletions(-) create mode 100644 app/src/main/res/layout/fragment_view_edits.xml diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt index 075a84e2..33085f82 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsAdapter.kt @@ -1,8 +1,6 @@ package com.keylesspalace.tusky.components.viewthread.edits import android.content.Context -import android.graphics.Canvas -import android.graphics.Paint import android.graphics.Typeface.DEFAULT_BOLD import android.graphics.drawable.ColorDrawable import android.graphics.drawable.Drawable @@ -11,7 +9,9 @@ import android.text.Html import android.text.Spannable import android.text.SpannableStringBuilder import android.text.Spanned -import android.text.style.ReplacementSpan +import android.text.TextPaint +import android.text.style.CharacterStyle +import android.util.TypedValue import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -33,11 +33,9 @@ import com.keylesspalace.tusky.util.aspectRatios import com.keylesspalace.tusky.util.decodeBlurHash import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.hide -import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.parseAsMastodonHtml import com.keylesspalace.tusky.util.setClickableText import com.keylesspalace.tusky.util.show -import com.keylesspalace.tusky.util.unicodeWrap import com.keylesspalace.tusky.util.visible import com.keylesspalace.tusky.viewdata.toViewData import org.xml.sax.XMLReader @@ -52,13 +50,28 @@ class ViewEditsAdapter( private val absoluteTimeFormatter = AbsoluteTimeFormatter() + /** Size of large text in this theme, in px */ + var largeTextSizePx: Float = 0f + + /** Size of medium text in this theme, in px */ + var mediumTextSizePx: Float = 0f + override fun onCreateViewHolder( parent: ViewGroup, viewType: Int ): BindingHolder { val binding = ItemStatusEditBinding.inflate(LayoutInflater.from(parent.context), parent, false) + binding.statusEditMediaPreview.clipToOutline = true + val typedValue = TypedValue() + val context = binding.root.context + val displayMetrics = context.resources.displayMetrics + context.theme.resolveAttribute(R.attr.status_text_large, typedValue, true) + largeTextSizePx = typedValue.getDimension(displayMetrics) + context.theme.resolveAttribute(R.attr.status_text_medium, typedValue, true) + mediumTextSizePx = typedValue.getDimension(displayMetrics) + return BindingHolder(binding) } @@ -69,24 +82,26 @@ class ViewEditsAdapter( val context = binding.root.context - val avatarRadius: Int = context.resources - .getDimensionPixelSize(R.dimen.avatar_radius_48dp) - - loadAvatar(edit.account.avatar, binding.statusEditAvatar, avatarRadius, animateAvatars) - - val infoStringRes = if (position == edits.size - 1) { + val infoStringRes = if (position == edits.lastIndex) { R.string.status_created_info } else { R.string.status_edit_info } + // Show the most recent version of the status using large text to make it clearer for + // the user, and for similarity with thread view. + val variableTextSize = if (position == edits.lastIndex) { + mediumTextSizePx + } else { + largeTextSizePx + } + binding.statusEditContentWarningDescription.setTextSize(TypedValue.COMPLEX_UNIT_PX, variableTextSize) + binding.statusEditContent.setTextSize(TypedValue.COMPLEX_UNIT_PX, variableTextSize) + binding.statusEditMediaSensitivity.setTextSize(TypedValue.COMPLEX_UNIT_PX, variableTextSize) + val timestamp = absoluteTimeFormatter.format(edit.createdAt, false) - binding.statusEditInfo.text = context.getString( - infoStringRes, - edit.account.name.unicodeWrap(), - timestamp - ).emojify(edit.account.emojis, binding.statusEditInfo, animateEmojis) + binding.statusEditInfo.text = context.getString(infoStringRes, timestamp) if (edit.spoilerText.isEmpty()) { binding.statusEditContentWarningDescription.hide() @@ -198,6 +213,11 @@ class ViewEditsAdapter( } override fun getItemCount() = edits.size + + companion object { + private const val VIEW_TYPE_EDITS_NEWEST = 0 + private const val VIEW_TYPE_EDITS = 1 + } } /** @@ -266,98 +286,31 @@ class TuskyTagHandler(val context: Context) : Html.TagHandler { } } - /** - * A span that draws text with additional padding at the start/end of the text. The padding - * is the width of [separator]. - * - * Note: The separator string is not included in the final text, so it will not be included - * if the user cuts or copies the text. - */ - open class LRPaddedSpan(val separator: String = " ") : ReplacementSpan() { - /** The width of the separator string, used as padding */ - var paddingWidth = 0f - - /** Measured width of the span */ - var spanWidth = 0f - - override fun getSize( - paint: Paint, - text: CharSequence?, - start: Int, - end: Int, - fm: Paint.FontMetricsInt? - ): Int { - paddingWidth = paint.measureText(separator, 0, separator.length) - spanWidth = (paddingWidth * 2) + paint.measureText(text, start, end) - return spanWidth.toInt() - } - - override fun draw( - canvas: Canvas, - text: CharSequence?, - start: Int, - end: Int, - x: Float, - top: Int, - y: Int, - bottom: Int, - paint: Paint - ) { - canvas.drawText(text?.subSequence(start, end).toString(), x + paddingWidth, y.toFloat(), paint) - } - } - /** Span that signifies deleted text */ - class DeletedTextSpan(context: Context) : LRPaddedSpan() { - private val bgPaint = Paint() - val radius: Float + class DeletedTextSpan(context: Context) : CharacterStyle() { + private var bgColor: Int init { - bgPaint.color = context.getColor(R.color.view_edits_background_delete) - radius = context.resources.getDimension(R.dimen.lrPaddedSpanRadius) + bgColor = context.getColor(R.color.view_edits_background_delete) } - override fun draw( - canvas: Canvas, - text: CharSequence?, - start: Int, - end: Int, - x: Float, - top: Int, - y: Int, - bottom: Int, - paint: Paint - ) { - canvas.drawRoundRect(x, top.toFloat(), x + spanWidth, bottom.toFloat(), radius, radius, bgPaint) - paint.isStrikeThruText = true - super.draw(canvas, text, start, end, x, top, y, bottom, paint) + override fun updateDrawState(tp: TextPaint) { + tp.bgColor = bgColor + tp.isStrikeThruText = true } } /** Span that signifies inserted text */ - class InsertedTextSpan(context: Context) : LRPaddedSpan() { - val bgPaint = Paint() - val radius: Float + class InsertedTextSpan(context: Context) : CharacterStyle() { + private var bgColor: Int init { - bgPaint.color = context.getColor(R.color.view_edits_background_insert) - radius = context.resources.getDimension(R.dimen.lrPaddedSpanRadius) + bgColor = context.getColor(R.color.view_edits_background_insert) } - override fun draw( - canvas: Canvas, - text: CharSequence?, - start: Int, - end: Int, - x: Float, - top: Int, - y: Int, - bottom: Int, - paint: Paint - ) { - canvas.drawRoundRect(x, top.toFloat(), x + spanWidth, bottom.toFloat(), radius, radius, bgPaint) - paint.typeface = DEFAULT_BOLD - super.draw(canvas, text, start, end, x, top, y, bottom, paint) + override fun updateDrawState(tp: TextPaint) { + tp.bgColor = bgColor + tp.typeface = DEFAULT_BOLD } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt index f829141a..3378b7a2 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsFragment.kt @@ -37,13 +37,16 @@ import com.keylesspalace.tusky.BottomSheetActivity import com.keylesspalace.tusky.R import com.keylesspalace.tusky.StatusListActivity import com.keylesspalace.tusky.components.account.AccountActivity -import com.keylesspalace.tusky.databinding.FragmentViewThreadBinding +import com.keylesspalace.tusky.databinding.FragmentViewEditsBinding import com.keylesspalace.tusky.di.Injectable import com.keylesspalace.tusky.di.ViewModelFactory import com.keylesspalace.tusky.interfaces.LinkListener import com.keylesspalace.tusky.settings.PrefKeys +import com.keylesspalace.tusky.util.emojify import com.keylesspalace.tusky.util.hide +import com.keylesspalace.tusky.util.loadAvatar import com.keylesspalace.tusky.util.show +import com.keylesspalace.tusky.util.unicodeWrap import com.keylesspalace.tusky.util.viewBinding import com.mikepenz.iconics.IconicsDrawable import com.mikepenz.iconics.typeface.library.googlematerial.GoogleMaterial @@ -54,7 +57,7 @@ import java.io.IOException import javax.inject.Inject class ViewEditsFragment : - Fragment(R.layout.fragment_view_thread), + Fragment(R.layout.fragment_view_edits), LinkListener, OnRefreshListener, MenuProvider, @@ -65,7 +68,7 @@ class ViewEditsFragment : private val viewModel: ViewEditsViewModel by viewModels { viewModelFactory } - private val binding by viewBinding(FragmentViewThreadBinding::bind) + private val binding by viewBinding(FragmentViewEditsBinding::bind) private lateinit var statusId: String @@ -88,6 +91,7 @@ class ViewEditsFragment : val animateAvatars = preferences.getBoolean(PrefKeys.ANIMATE_GIF_AVATARS, false) val animateEmojis = preferences.getBoolean(PrefKeys.ANIMATE_CUSTOM_EMOJIS, false) val useBlurhash = preferences.getBoolean(PrefKeys.USE_BLURHASH, true) + val avatarRadius: Int = requireContext().resources.getDimensionPixelSize(R.dimen.avatar_radius_48dp) viewLifecycleOwner.lifecycleScope.launch { viewModel.uiState.collect { uiState -> @@ -130,6 +134,15 @@ class ViewEditsFragment : useBlurhash = useBlurhash, listener = this@ViewEditsFragment ) + + // Focus on the most recent version + (binding.recyclerView.layoutManager as LinearLayoutManager).scrollToPosition(0) + + val account = uiState.edits.first().account + loadAvatar(account.avatar, binding.statusAvatar, avatarRadius, animateAvatars) + + binding.statusDisplayName.text = account.name.unicodeWrap().emojify(account.emojis, binding.statusDisplayName, animateEmojis) + binding.statusUsername.text = account.username } } } diff --git a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsViewModel.kt b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsViewModel.kt index 6dc0e25f..c1e76da3 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsViewModel.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/viewthread/edits/ViewEditsViewModel.kt @@ -98,10 +98,7 @@ class ViewEditsViewModel @Inject constructor(private val api: MastodonApi) : Vie if (i < sortedEdits.size - 1) { currentContent = previousContent previousContent = loader.load( - sortedEdits[i + 1].content.replace( - "
", - "
" - ) + sortedEdits[i + 1].content.replace("
", "
") ) } } diff --git a/app/src/main/res/layout/fragment_view_edits.xml b/app/src/main/res/layout/fragment_view_edits.xml new file mode 100644 index 00000000..6aabe13a --- /dev/null +++ b/app/src/main/res/layout/fragment_view_edits.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/item_status_edit.xml b/app/src/main/res/layout/item_status_edit.xml index e43b167f..af0d2a1b 100644 --- a/app/src/main/res/layout/item_status_edit.xml +++ b/app/src/main/res/layout/item_status_edit.xml @@ -6,33 +6,21 @@ android:layout_height="wrap_content" android:gravity="center_vertical" android:orientation="horizontal" - android:paddingBottom="6dp"> - - + android:paddingLeft="16dp" + android:paddingRight="16dp" + android:paddingBottom="8dp"> @@ -40,34 +28,27 @@ android:id="@+id/status_edit_content_warning_description" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="14dp" - android:layout_marginTop="4dp" - android:layout_marginEnd="14dp" - android:layout_marginBottom="8dp" + android:layout_marginTop="8dp" android:hyphenationFrequency="full" android:importantForAccessibility="no" android:lineSpacingMultiplier="1.1" android:textColor="?android:textColorPrimary" android:textSize="?attr/status_text_medium" android:visibility="gone" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toEndOf="@+id/status_edit_info" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/status_edit_avatar" + app:layout_constraintTop_toBottomOf="@+id/status_edit_info" tools:text="content warning which is very long and it doesn't fit" tools:visibility="visible" /> @@ -75,62 +56,52 @@ android:id="@+id/status_edit_content" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="14dp" - android:layout_marginTop="8dp" - android:layout_marginEnd="14dp" - android:layout_marginBottom="8dp" + android:layout_marginTop="4dp" android:focusable="true" android:hyphenationFrequency="full" android:importantForAccessibility="no" android:lineSpacingMultiplier="1.1" android:textColor="?android:textColorPrimary" android:textSize="?attr/status_text_medium" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toEndOf="@+id/status_edit_info" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/status_edit_content_warning_separator" tools:text="This is an edited status" /> + - ليس لديك أي قوائم. عدَّلَ %s شكوى جديدة عن %s - عدّله %1$s في %2$s - أنشأه %1$s في %2$s + عدّله %1$s + أنشأه %1$s سيتم إخفاء بعض المعلومات التي قد تؤثر على صحتك العقلية. هذا يتضمن: \n \n- المفضلة/المشاركات/متابعة الاشعارات diff --git a/app/src/main/res/values-be/strings.xml b/app/src/main/res/values-be/strings.xml index b6f82177..0c4ec319 100644 --- a/app/src/main/res/values-be/strings.xml +++ b/app/src/main/res/values-be/strings.xml @@ -572,8 +572,8 @@ Далучыўся(-лася) %1$s Захавана! Вы паўторна зайшлі ў бягучы ўліковы запіс, каб дазволіць Tusky падпісацца на push-апавяшчэнні. Але ў Вас яшчэ засталіся ўліковыя запісы, якія не мігрыравалі такім чынам. Пераключыцеся на іх і зайдзіце паўторна, каб уключыць падтрымку апавяшчэнняў праз UnifiedPush. - %1$s адрэдагаваў(-ла) %2$s - %1$s стварыў(-ла) %2$s + %1$s адрэдагаваў(-ла) + %1$s стварыў(-ла) Схаваць загаловак верхняй панэлі інструментаў Ваша асабістая нататка пра гэты ўліковы запіс Патрабаваць пацвярджэнне перад упадабаннем @@ -671,4 +671,4 @@ %s (цэлае слова) Дадаць ключавое слова Змяніць ключавое слова - \ No newline at end of file + diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index b3cfc4ba..ccdd3ee5 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -617,12 +617,12 @@ Per utilitzar les notificacions push mitjançant UnifiedPush, Tusky necessita permís per subscriure\'s a les notificacions al vostre servidor Mastodon. Això requereix un nou inici de sessió per canviar els àmbits d\'OAuth concedits a Tusky. Si feu servir l\'opció de tornar a iniciar sessió aquí o a les preferències del compte, es conservaran tots els esborranys locals i la memòria cau. Torneu a iniciar sessió a tots els comptes per activar el suport de notificacions push. Editat - %1$s ha editat %2$s + %1$s ha editat Subscriu-te Cancel·la la subscripció %s regles Silencia les notificacions - %1$s ha creat %2$s + %1$s ha creat Hashtags populars %1$d persones parlen del hashtag %2$s Ús total diff --git a/app/src/main/res/values-cy/strings.xml b/app/src/main/res/values-cy/strings.xml index 75100b1d..ec0e253f 100644 --- a/app/src/main/res/values-cy/strings.xml +++ b/app/src/main/res/values-cy/strings.xml @@ -636,8 +636,8 @@ Disgrifiwch y cynnwys ar gyfer pobl â nam ar eu golwg (terfyn nodau o %d) Parhau i olygu - Golygodd %1$s %2$s - Creodd %1$s %2$s + Golygodd %1$s + Creodd %1$s Golygiadau AMGEN Hepgor newidiadau @@ -712,4 +712,4 @@ \n \nI archwilio cyfrifon gallwch un ai eu darganfod o fewn un o\'r llinellau amser eraill. Er enghraifft, mae llinell amser eich enghraifft chi [iconics gmd_group]. Neu gallwch eu chwilio yn ôl eu henw [iconics gmd_search]; er enghraifft, chwilio am Tusky i ganfod ein cyfrif Mastodon. Dangos ystadegau postiadau mewn llinell amser - \ No newline at end of file + diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e1f690b2..247c4159 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -613,8 +613,8 @@ Profil-Link teilen an … Profilname teilen an … Profilname kopiert - %1$s bearbeitete %2$s - %1$s erstellte %2$s + %1$s bearbeitete + %1$s erstellte Neue Meldung über %s Benachrichtigungen über Moderationsmeldungen es eine neue Meldung gibt @@ -664,4 +664,4 @@ \nDamit du andere Konten entdeckst, kannst du entweder andere Timelines lesen – z. B. die Lokale Timeline deiner Instanz [iconics gmd_group] – oder du suchst nach Namen [iconics gmd_search] – z. B. Tusky, um unser Mastodon-Konto zu finden. Bild Beitragsstatistiken in der Timeline anzeigen - \ No newline at end of file + diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 8b123a69..4b84f235 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -621,8 +621,8 @@ Orden de lectura Más antiguas primero Más recientes primero - %1$s ha editado %2$s - %1$s ha editado %2$s + %1$s ha editado + %1$s ha editado Desactivado <sin establecer> <inválido> @@ -685,4 +685,4 @@ Añadir %s (palabra completa) Añadir palabra - \ No newline at end of file + diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index f0c6961d..2dc20742 100644 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -595,8 +595,8 @@ <نامعتبر> ترتیب خواندن نخست جدیدترین - %1$s %2$s را ویراست - %1$s %2$s را ایجاد کرد + %1$s را ویراست + %1$s را ایجاد کرد بارگذاری شکست خورد نمایش پیش‌نویس‌ها رد کردن diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index b5cac1a0..3eb21848 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -626,8 +626,8 @@ Les plus récents en premier Arrêter de suivre #%s \? Échec de l\'épinglage - Modification de %1$s le %2$s - Création par %1$s le %2$s + Modification de %1$s + Création par %1$s Enregistrer comme brouillon \? (Les pièces jointes seront à nouveau téléchargées lorsque le brouillon sera réouvert.) Vous n\'avez aucune liste. %s (%s) @@ -684,4 +684,4 @@ Ajouter un mot-clé Modifier mot-clé %s : %s - \ No newline at end of file + diff --git a/app/src/main/res/values-gd/strings.xml b/app/src/main/res/values-gd/strings.xml index 1c325cf4..ad77f0a8 100644 --- a/app/src/main/res/values-gd/strings.xml +++ b/app/src/main/res/values-gd/strings.xml @@ -594,8 +594,8 @@ Deasachaidhean an-dràsta Cànan bunaiteach nam post - Chruthaich %1$s %2$s - Dheasaich %1$s %2$s + Chruthaich %1$s + Dheasaich %1$s Chan eil liosta sam bith agad. %s (%s) Bu chòir dhan phort a bhith eadar %d is %d @@ -681,4 +681,4 @@ Seo loidhne-ama do dhachaigh. Seallaidh i na postaichean o chionn goirid aig na cunntasan a leanas tu. \n \nAirson cunntasan a rùrachadh, lorg iad air tè dhe na loidhnichean-ama eile; mar eisimpleir, loidhne-ama ionadail an ionstans agad [iconics gmd_group]. Air neo lorg cunntasan a-rèir ainm [iconics gmd_search]; mar eisimpleir, lorg “Tusky” ach am faigh thu grèim air a’ chunntas againne air Mastodon. - \ No newline at end of file + diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 114af9f5..32e11f62 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -584,8 +584,8 @@ Cargando fío Acalar notificacións Edicións - Editado por %1$s o %2$s - Creado por %1$s o %2$s + Editado por %1$s + Creado por %1$s Desbotar cambios Continuar a edición Hai cambios non gardados. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 27d9291c..3454271d 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -599,8 +599,8 @@ <nincs beállítva> <érvénytelen> Szerkesztések - %1$s létrehozta %2$s - %1$s szerkesztette %2$s + %1$s létrehozta + %1$s szerkesztette ALT Változtatások elvetése Szerkesztés folytatása diff --git a/app/src/main/res/values-is/strings.xml b/app/src/main/res/values-is/strings.xml index f8c010a8..0e9aecb2 100644 --- a/app/src/main/res/values-is/strings.xml +++ b/app/src/main/res/values-is/strings.xml @@ -589,8 +589,8 @@ <ekki stillt> <ógilt> Breytingar - %1$s bjó til %2$s - %1$s breytti %2$s + %1$s bjó til + %1$s breytti AUKA Henda breytingum Halda breytingum áfram diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index aa6438a0..9d5a5621 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -610,8 +610,8 @@ Silenzia notifiche Modifiche Spam - %1$s ha modificato %2$s - %1$s ha creato %2$s + %1$s ha modificato + %1$s ha creato Altro Smettere di seguire #%s\? Caricamento fallito @@ -645,4 +645,4 @@ Account totali Aggiorna Hashtag di tendenza - \ No newline at end of file + diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 592500e5..7ee97608 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -587,8 +587,8 @@ サムネイル画像で常に表示される中心点を設定するには、円をタップまたはドラッグして中してくだだい。 通知のミュート %1$s に参加 - %1$s 編集 %2$s - %1$s の投稿 %2$s + %1$s 編集 + %1$s の投稿 投稿 %s の検索エラー アカウントがロックされていなかったとしても、%1$s のスタッフは以下のアカウントのフォローリクエストを確認した方がいいと判断しました。 中心点の設定 @@ -623,4 +623,4 @@ プロフィール トレンドノハッシュタグ タイムラインに投稿の統計情報を表示する - \ No newline at end of file + diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml index 2c02764c..67774513 100644 --- a/app/src/main/res/values-lv/strings.xml +++ b/app/src/main/res/values-lv/strings.xml @@ -514,7 +514,7 @@ Vecākos vispirms Jaunākos vispirms - %1$s izveidoja %2$s + %1$s izveidoja %s personas %s persona @@ -544,7 +544,7 @@ Rādīt melnrakstus Aizvākt Tēmturis bez # - %1$s laboja %2$s + %1$s laboja Pieslēgties ar pārlūku Strādā vairumā gadījumu. Dati netiek nopludināti uz citām lietotnēm. beidzas %s @@ -610,4 +610,4 @@ Paslēpt ar brīdinājumu Labot atslēgvārdu Pievienot atslēgvārdu - \ No newline at end of file + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 68329c4d..8956cf71 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -569,8 +569,8 @@ Standaardtaal van berichten Rapporten Bewerkt - %1$s bewerkte %2$s - %1$s maakte %2$s + %1$s bewerkte + %1$s maakte Door in te loggen ben je het eens met de regels van %s. Spam Overig diff --git a/app/src/main/res/values-oc/strings.xml b/app/src/main/res/values-oc/strings.xml index b9fba1d5..f9e3bae3 100644 --- a/app/src/main/res/values-oc/strings.xml +++ b/app/src/main/res/values-oc/strings.xml @@ -590,9 +590,9 @@ Modificada Fracàs del cargament de l’estatut a partir del servidor. Amudir las notificacions - %1$s creèt %2$s + %1$s creèt Modificacions - %1$s modifiquèt %2$s + %1$s modifiquèt ALT Ignorar las modificacions Téner de modificar @@ -666,4 +666,4 @@ Aquò es vòstra cronologia. Mòstra las publicacions recentas dels comptes que seguissètz. \n \nPer explorar mai de compte podètz siá los descobrir dins d’autres fils, per exemple lo fil local de vòstra instància [iconics gmd_group], siá los trapar per lor nom [iconics gmd_search], per exemple « Tusky » per trobar nòstre compte Mastodon. - \ No newline at end of file + diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index b8359f0f..38ebf6cd 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -602,8 +602,8 @@ Najpierw najnowsze Nie masz żadnych list. Wycisz powiadomienia - %1$s edytował %2$s - %1$s stworzył %2$s + %1$s edytował + %1$s stworzył Edycje Masz niezapisane zmiany. %s regulamin diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index aaa1c59a..4f901bbe 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -562,7 +562,7 @@ Falha ao desafixar Salvar rascunho\? (Os anexos serão reenviados assim que você restaurar o rascunho.) Faça login novamente em todas as contas para habilitar o suporte de notificação push. - %1$s publicou em %2$s + %1$s publicou Edições Idioma padrão dos toots há uma nova denúncia @@ -587,7 +587,7 @@ Funciona na maioria dos casos. Nenhum dado é vazado para outros aplicativos. Pode oferecer suporte a métodos de autenticação adicionais, mas requer um navegador compatível. Falha ao remover a conta da lista - %1$s editou em %2$s + %1$s editou Continuar editando Você tem alterações não salvas. Editado diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 4654ffb6..a0266819 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -540,8 +540,8 @@ Загрузка ветки Сначала новые Правки - %1$s отредактировали %2$s - %1$s создали %2$s + %1$s отредактировали + %1$s создали Войти Вход через Браузер diff --git a/app/src/main/res/values-sa/strings.xml b/app/src/main/res/values-sa/strings.xml index ea1a8f06..b16160da 100644 --- a/app/src/main/res/values-sa/strings.xml +++ b/app/src/main/res/values-sa/strings.xml @@ -508,8 +508,8 @@ उत्सृज्यताम् लेखविकर्षान् दर्शयतु सम्पादनं कृतम् - %1$s निर्मितम् %2$s - %1$s सम्पादितम् %2$s + %1$s निर्मितम् + %1$s सम्पादितम् ग्राहकता प्रारूपं निष्कासितम् नियम-उल्लङ्घनम् diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index b43d726b..3c663f95 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -139,7 +139,7 @@ Vad är en instans? Ansluter… Adressen eller domänen för varje instans kan anges - här, till exempel mastodon.social, icosahedron.website, social.tchncs.de och + här, till exempel mastodon.social, icosahedron.website, social.tchncs.de och mer! \n\nOm du inte har något konto kan du ange namnet på instansen du vill ansluta till och skapa ett konto där. \n\nEn instans är en plats där ditt konto finns, men du kan enkelt kommunicera med och följa andra personer på andra instanser, @@ -282,7 +282,7 @@ Beskriv innehåll för synskadade \n (max %d tecken) - Beskriv innehåll för synskadade + Beskriv innehåll för synskadade \n (max %d tecken) Ange bildtext @@ -602,13 +602,13 @@ Laddar tråd Tysta notiser Redigeringar - %1$s redigerade %2$s + %1$s redigerade Dela länk med konto Dela användarnamn för konto Dela konto-URL med… Dela kontots användarnamn med… Kopierade användarnamn - %1$s skapade %2$s + %1$s skapade Förkasta ändringar Fortsätt redigera Du har ändringar som inte sparats. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index fae65fa9..61d10e5a 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -598,11 +598,11 @@ <ayarlanmadı> <geçersiz> Etkisizleştirildi - %1$s oluşturdu %2$s + %1$s oluşturdu Etiketi takip et #etiket Kaydedilmemiş değişikliklerin var. - %1$s düzenledi %2$s + %1$s düzenledi Yenile Düzenlemeler Açıklama @@ -664,4 +664,4 @@ Toplam kullanım Toplam hesap %1$d kişi %2$s etiketi hakkında konuşuyor - \ No newline at end of file + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 53e5d677..744dc67b 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -610,8 +610,8 @@ Продовжити редагування Беззвучні сповіщення Редагування - %1$s редагує %2$s - %1$s створює %2$s + %1$s редагує + %1$s створює Завантаження стрічки Поділитися посиланням на обліковий запис Поділитися іменем користувача облікового запису @@ -681,4 +681,4 @@ Помилка завантаження списків У вас ще немає списків Керувати списками - \ No newline at end of file + diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 6b1ff130..be691122 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -574,8 +574,8 @@ Tiếp tục sửa Thay đổi chưa được lưu. Ẩn thông báo - %1$s sửa %2$s - %1$s đăng %2$s + %1$s sửa + %1$s đăng Những lượt sửa tút Đang tải thảo luận Chia sẻ URL người dùng @@ -646,4 +646,4 @@ Quản lý danh sách Xảy ra lỗi khi tải danh sách Bạn chưa có danh sách - \ No newline at end of file + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 1ba73704..f95c2a0b 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -591,10 +591,10 @@ 放弃更改 继续编辑 你有未保存的更改。 - %1$s 创建了 %2$s + %1$s 创建了 将通知静音 编辑 - %1$s 编辑了 %2$s + %1$s 编辑了 加载帖子 分享账户链接 分享账户用户名 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index df2bd8a5..0966630d 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -63,7 +63,4 @@ 1dp 48dp - - 4dp - diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 656d082c..02c106c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -764,9 +764,9 @@ Newest first - %1$s edited %2$s + Edited: %1$s - %1$s created %2$s + Created: %1$s Loading thread