enable reporting users without statuses (#1445)

This commit is contained in:
Konrad Pozniak 2019-08-17 09:08:58 +02:00 committed by GitHub
parent 8353ed7214
commit d13a341a35
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
40 changed files with 38 additions and 79 deletions

View file

@ -43,6 +43,7 @@ import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.snackbar.Snackbar
import com.google.android.material.tabs.TabLayout
import com.keylesspalace.tusky.adapter.AccountFieldAdapter
import com.keylesspalace.tusky.components.report.ReportActivity
import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.entity.Account
import com.keylesspalace.tusky.entity.Relationship
@ -628,12 +629,13 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
}
} else {
// It shouldn't be possible to block or follow yourself.
// It shouldn't be possible to block, follow, mute or report yourself.
menu.removeItem(R.id.action_follow)
menu.removeItem(R.id.action_block)
menu.removeItem(R.id.action_mute)
menu.removeItem(R.id.action_mute_domain)
menu.removeItem(R.id.action_show_reblogs)
menu.removeItem(R.id.action_report)
}
return super.onCreateOptionsMenu(menu)
@ -725,6 +727,12 @@ class AccountActivity : BottomSheetActivity(), ActionButtonActivity, HasAndroidI
viewModel.changeShowReblogsState()
return true
}
R.id.action_report -> {
if(loadedAccount != null) {
startActivity(ReportActivity.getIntent(this, viewModel.accountId, loadedAccount!!.username))
}
return true
}
}
return super.onOptionsItemSelected(item)
}

View file

@ -18,7 +18,6 @@ package com.keylesspalace.tusky.components.report
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.text.Spanned
import android.view.MenuItem
import androidx.appcompat.content.res.AppCompatResources
import androidx.lifecycle.Observer
@ -27,7 +26,6 @@ import com.keylesspalace.tusky.BottomSheetActivity
import com.keylesspalace.tusky.R
import com.keylesspalace.tusky.components.report.adapter.ReportPagerAdapter
import com.keylesspalace.tusky.di.ViewModelFactory
import com.keylesspalace.tusky.util.HtmlUtils
import com.keylesspalace.tusky.util.ThemeUtils
import dagger.android.DispatchingAndroidInjector
import dagger.android.HasAndroidInjector
@ -55,8 +53,7 @@ class ReportActivity : BottomSheetActivity(), HasAndroidInjector {
throw IllegalStateException("accountId ($accountId) or accountUserName ($accountUserName) is null")
}
viewModel.init(accountId, accountUserName,
intent?.getStringExtra(STATUS_ID), intent?.getStringExtra(STATUS_CONTENT))
viewModel.init(accountId, accountUserName, intent?.getStringExtra(STATUS_ID))
setContentView(R.layout.activity_report)
@ -143,16 +140,14 @@ class ReportActivity : BottomSheetActivity(), HasAndroidInjector {
private const val ACCOUNT_ID = "account_id"
private const val ACCOUNT_USERNAME = "account_username"
private const val STATUS_ID = "status_id"
private const val STATUS_CONTENT = "status_content"
@JvmStatic
fun getIntent(context: Context, accountId: String, userName: String, statusId: String, statusContent: Spanned) =
fun getIntent(context: Context, accountId: String, userName: String, statusId: String? = null) =
Intent(context, ReportActivity::class.java)
.apply {
putExtra(ACCOUNT_ID, accountId)
putExtra(ACCOUNT_USERNAME, userName)
putExtra(STATUS_ID, statusId)
putExtra(STATUS_CONTENT, HtmlUtils.toHtml(statusContent))
}
}

View file

@ -64,21 +64,20 @@ class ReportViewModel @Inject constructor(
var reportNote: String? = null
var isRemoteNotify = false
private var statusContent: String? = null
private var statusId: String? = null
lateinit var accountUserName: String
lateinit var accountId: String
var isRemoteAccount: Boolean = false
var remoteServer: String? = null
fun init(accountId: String, userName: String, statusId: String?, statusContent: String?) {
fun init(accountId: String, userName: String, statusId: String?) {
this.accountId = accountId
this.accountUserName = userName
this.statusId = statusId
statusId?.let {
selectedIds.add(it)
}
this.statusContent = statusContent
isRemoteAccount = userName.contains('@')
if (isRemoteAccount) {
remoteServer = userName.substring(userName.indexOf('@') + 1)
@ -208,17 +207,15 @@ class ReportViewModel @Inject constructor(
}
fun setStatusChecked(status: Status, checked: Boolean) {
if (checked)
if (checked) {
selectedIds.add(status.id)
else
} else {
selectedIds.remove(status.id)
}
}
fun isStatusChecked(id: String): Boolean {
return selectedIds.contains(id)
}
fun isStatusesSelected(): Boolean {
return selectedIds.isNotEmpty()
}
}

View file

@ -72,14 +72,18 @@ class StatusesDataSource(private val accountId: String,
retryBefore = null
retryInitial = null
initialLoad.postValue(NetworkState.LOADING)
mastodonApi.statusObservable(params.requestedInitialKey).zipWith(
mastodonApi.accountStatusesObservable(accountId, params.requestedInitialKey, null, params.requestedLoadSize - 1, true),
BiFunction { status: Status, list: List<Status> ->
val ret = ArrayList<Status>()
ret.add(status)
ret.addAll(list)
return@BiFunction ret
})
if (params.requestedInitialKey == null) {
mastodonApi.accountStatusesObservable(accountId, null, null, params.requestedLoadSize, true)
} else {
mastodonApi.statusObservable(params.requestedInitialKey).zipWith(
mastodonApi.accountStatusesObservable(accountId, params.requestedInitialKey, null, params.requestedLoadSize - 1, true),
BiFunction { status: Status, list: List<Status> ->
val ret = ArrayList<Status>()
ret.add(status)
ret.addAll(list)
return@BiFunction ret
})
}
.doOnSubscribe {
disposables.add(it)
}

View file

@ -188,11 +188,7 @@ class ReportStatusesFragment : Fragment(), Injectable, AdapterHandler {
}
buttonContinue.setOnClickListener {
if (viewModel.isStatusesSelected()) {
viewModel.navigateTo(Screen.Note)
} else {
Snackbar.make(swipeRefreshLayout, R.string.error_report_too_few_statuses, Snackbar.LENGTH_LONG).show()
}
viewModel.navigateTo(Screen.Note)
}
}

View file

@ -202,7 +202,6 @@ class SearchStatusesFragment : SearchFragment<Pair<Status, StatusViewData.Concre
val id = status.actionableId
val accountId = status.actionableStatus.account.id
val accountUsername = status.actionableStatus.account.username
val content = status.actionableStatus.content
val statusUrl = status.actionableStatus.url
val accounts = viewModel.getAllAccountsOrderedByActive()
var openAsTitle: String? = null
@ -297,7 +296,7 @@ class SearchStatusesFragment : SearchFragment<Pair<Status, StatusViewData.Concre
return@setOnMenuItemClickListener true
}
R.id.status_report -> {
openReportPage(accountId, accountUsername, id, content)
openReportPage(accountId, accountUsername, id)
return@setOnMenuItemClickListener true
}
R.id.status_unreblog_private -> {
@ -367,9 +366,8 @@ class SearchStatusesFragment : SearchFragment<Pair<Status, StatusViewData.Concre
}
}
private fun openReportPage(accountId: String, accountUsername: String, statusId: String,
statusContent: Spanned) {
startActivity(ReportActivity.getIntent(requireContext(), accountId, accountUsername, statusId, statusContent))
private fun openReportPage(accountId: String, accountUsername: String, statusId: String) {
startActivity(ReportActivity.getIntent(requireContext(), accountId, accountUsername, statusId))
}
private fun showConfirmDeleteDialog(id: String, position: Int) {

View file

@ -165,7 +165,6 @@ public abstract class SFragment extends BaseFragment implements Injectable {
final String id = status.getActionableId();
final String accountId = status.getActionableStatus().getAccount().getId();
final String accountUsername = status.getActionableStatus().getAccount().getUsername();
final Spanned content = status.getActionableStatus().getContent();
final String statusUrl = status.getActionableStatus().getUrl();
List<AccountEntity> accounts = accountManager.getAllAccountsOrderedByActive();
String openAsTitle = null;
@ -273,7 +272,7 @@ public abstract class SFragment extends BaseFragment implements Injectable {
return true;
}
case R.id.status_report: {
openReportPage(accountId, accountUsername, id, content);
openReportPage(accountId, accountUsername, id);
return true;
}
case R.id.status_unreblog_private: {
@ -340,9 +339,8 @@ public abstract class SFragment extends BaseFragment implements Injectable {
startActivity(intent);
}
protected void openReportPage(String accountId, String accountUsername, String statusId,
Spanned statusContent) {
startActivity(ReportActivity.getIntent(requireContext(),accountId,accountUsername,statusId,statusContent));
protected void openReportPage(String accountId, String accountUsername, String statusId) {
startActivity(ReportActivity.getIntent(requireContext(), accountId, accountUsername, statusId));
}
protected void showConfirmDeleteDialog(final String id, final int position) {

View file

@ -19,7 +19,6 @@ import com.keylesspalace.tusky.entity.AccessToken;
import com.keylesspalace.tusky.entity.Account;
import com.keylesspalace.tusky.entity.AppCredentials;
import com.keylesspalace.tusky.entity.Attachment;
import com.keylesspalace.tusky.entity.Card;
import com.keylesspalace.tusky.entity.Conversation;
import com.keylesspalace.tusky.entity.Emoji;
import com.keylesspalace.tusky.entity.Filter;
@ -299,13 +298,6 @@ public interface MastodonApi {
@POST("api/v1/follow_requests/{id}/reject")
Call<Relationship> rejectFollowRequest(@Path("id") String accountId);
@FormUrlEncoded
@POST("api/v1/reports")
Call<ResponseBody> report(
@Field("account_id") String accountId,
@Field("status_ids[]") List<String> statusIds,
@Field("comment") String comment);
@GET("api/v1/search")
Call<SearchResults> search(@Query("q") String q, @Query("resolve") Boolean resolve);

View file

@ -30,5 +30,7 @@
android:title="@string/action_hide_reblogs"
app:showAsAction="never" />
<item
android:id="@+id/action_report"
android:title="@string/action_report" />
</menu>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">التصريح لازم للإحتفاظ بالوسائط.</string>
<string name="error_media_upload_image_or_video">لا يمكنك إرفاق كلا من الصور و الفيديوهات في نفس المنشور.</string>
<string name="error_media_upload_sending">اخفقت عملية الرفع.</string>
<string name="error_report_too_few_statuses">يجب على الأقل اختيار منشور واحد للإبلاغ عنه.</string>
<string name="error_sender_account_gone">خطأ عند إرسال التبويق.</string>
<string name="title_home">الرئيسية</string>
<string name="title_notifications">الاشعارات</string>

View file

@ -19,7 +19,6 @@
<string name="error_media_download_permission">মিডিয়া সংরক্ষণ করার অনুমতি প্রয়োজন।</string>
<string name="error_media_upload_image_or_video">ছবি এবং ভিডিও উভয় একই স্টেটাস থেকে সংযুক্ত করা যাবে না।</string>
<string name="error_media_upload_sending">আপলোড করতে ব্যর্থ হয়েছে।</string>
<string name="error_report_too_few_statuses">অন্তত এক স্টেটাস রিপোর্ট করা আবশ্যক।</string>
<string name="error_sender_account_gone">টুট পাঠাতে গিয়ে একটি ত্রুটি ঘটেছে।</string>
<string name="title_home">ঘর</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">Cal pemís d\'escriptura en el mitjà.</string>
<string name="error_media_upload_image_or_video">No es poden adjuntar imatges i vídeos en el mateix estat.</string>
<string name="error_media_upload_sending">La pujada ha fallat.</string>
<string name="error_report_too_few_statuses">Com a mínim has de denunciar un estat.</string>
<string name="title_home">Inici</string>
<string name="title_notifications">Notificacions</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Je vyžadováno povolení ukládat média.</string>
<string name="error_media_upload_image_or_video">K jednomu tootu nemohou být přiloženy obrázky i videa.</string>
<string name="error_media_upload_sending">Nahrání selhalo.</string>
<string name="error_report_too_few_statuses">Musí být nahlášen alespoň jeden toot.</string>
<string name="error_sender_account_gone">Chyba při odesílání tootu.</string>
<string name="title_home">Domů</string>
<string name="title_notifications">Oznámení</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">Rhaid cael caniatâd i gadw hwn.</string>
<string name="error_media_upload_image_or_video">Ni allwch atodi delweddau a fideos i\'r un statws.</string>
<string name="error_media_upload_sending">Methu uwchlwytho.</string>
<string name="error_report_too_few_statuses">Rhaid rhoi gwybod am o leiaf un statws.</string>
<string name="error_sender_account_gone">Methu tŵtio.</string>
<string name="title_home">Hafan</string>
<string name="title_notifications">Hysbysiadau</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Eine Berechtigung wird zum Speichern des Mediums benötigt.</string>
<string name="error_media_upload_image_or_video">Bilder und Videos können beide nicht an den Beitrag angehängt werden.</string>
<string name="error_media_upload_sending">Die Mediendatei konnte nicht hochgeladen werden.</string>
<string name="error_report_too_few_statuses">Mindestens ein Beitrag muss gemeldet werden.</string>
<string name="error_sender_account_gone">Fehler beim Senden des Status.</string>
<string name="title_home">Start</string>
<string name="title_notifications">Benachrichtigungen</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Permeso konservi aŭdovidaĵojn necesas.</string>
<string name="error_media_upload_image_or_video">Bildoj kaj videoj ne povas ambaŭ estas alligita al la sama mesaĝo.</string>
<string name="error_media_upload_sending">La alŝuto malsukcesis.</string>
<string name="error_report_too_few_statuses">Almenaŭ unu mesaĝo devas esti signalita.</string>
<string name="error_sender_account_gone">Eraro dum sendo de la mesaĝo.</string>
<string name="title_home">Hejmo</string>
<string name="title_notifications">Sciigoj</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Se requiere permiso para descargar al almacenamiento.</string>
<string name="error_media_upload_image_or_video">No se pueden adjuntar imágenes y vídeos en el mismo estado.</string>
<string name="error_media_upload_sending">La subida falló.</string>
<string name="error_report_too_few_statuses">Debe seleccionar al menos un estado.</string>
<string name="error_sender_account_gone">Error al publicar.</string>
<string name="title_home">Inicio</string>
<string name="title_notifications">Notificaciones</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">Memoriara deskargatzeko baimena behar da.</string>
<string name="error_media_upload_image_or_video">Ezin dira bideoak eta irudiak tut berean gehitu.</string>
<string name="error_media_upload_sending">Akatsa igotzerakoan.</string>
<string name="error_report_too_few_statuses">Gutxienez tut bat hautatu behar da.</string>
<string name="error_sender_account_gone">Akatsa tuta bidaltzerakoan.</string>
<string name="title_home">Hasiera</string>
<string name="title_notifications">Jakinarazpenak</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">اجازه ذخیره رسانه نیاز است</string>
<string name="error_media_upload_image_or_video">تصاویر و فیلم‌ها هر دو نمی‌توانند به یک وضعیت ضمیمه شوند.</string>
<string name="error_media_upload_sending">بارگذاری ناموفق بود</string>
<string name="error_report_too_few_statuses">حداقل یک وضعیت باید گزارش شود</string>
<string name="error_sender_account_gone">خطا در ارسال بوق</string>
<string name="title_home">خانه</string>
<string name="title_notifications">اعلان‌ها</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Permission requise pour enregistrer le média.</string>
<string name="error_media_upload_image_or_video">Un même pouet ne peut contenir à la fois une vidéo et une image.</string>
<string name="error_media_upload_sending">Échec denvoi du média.</string>
<string name="error_report_too_few_statuses">Au moins un pouet doit été signalé.</string>
<string name="error_sender_account_gone">Erreur lors de lenvoi du pouet.</string>
<string name="title_home">Accueil</string>
<string name="title_notifications">Notifications</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Média tárolási engedély szükséges.</string>
<string name="error_media_upload_image_or_video">Képek és videók egyszerre nem csatolhatók ugyanazon tülköléshez.</string>
<string name="error_media_upload_sending">Feltöltés sikertelen.</string>
<string name="error_report_too_few_statuses">Legalább egy tülkölést jelenti kell.</string>
<string name="error_sender_account_gone">Nem sikerült elküldeni a tülköt.</string>
<string name="title_home">Kezdőlap</string>
<string name="title_notifications">Értesítések</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">È richiesta l\'autorizzazione di archiviazione.</string>
<string name="error_media_upload_image_or_video">Immagini e video non possono essere allegati allo stesso stato.</string>
<string name="error_media_upload_sending">Il caricamento non è riuscito.</string>
<string name="error_report_too_few_statuses">Almeno uno stato deve essere segnalato.</string>
<string name="error_sender_account_gone">Errore nell\'invio del toot.</string>
<string name="title_home">Home</string>
<string name="title_notifications">Notifiche</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">メディアの書き込み許可が必要です。</string>
<string name="error_media_upload_image_or_video">画像と動画を同時に投稿することはできません。</string>
<string name="error_media_upload_sending">アップロードに失敗しました。</string>
<string name="error_report_too_few_statuses">少なくとも1つの投稿を報告してください。</string>
<string name="error_sender_account_gone">トゥート送信時のエラーです。</string>
<string name="title_home">ホーム</string>
<string name="title_notifications">通知</string>

View file

@ -19,7 +19,6 @@
<string name="error_media_download_permission">미디어를 저장하기 위한 권한이 필요합니다.</string>
<string name="error_media_upload_image_or_video">이미지와 비디오는 동시에 첨부할 수 없습니다.</string>
<string name="error_media_upload_sending">파일을 업로드하지 못했습니다.</string>
<string name="error_report_too_few_statuses">신고할 게시물을 최소 1개 이상 선택해야 합니다.</string>
<string name="error_sender_account_gone">툿을 전송하지 못했습니다.</string>
<string name="title_home"></string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Er is toestemming nodig om media op te slaan.</string>
<string name="error_media_upload_image_or_video">Afbeeldingen en video\'s kunnen niet allebei aan dezelfde toot worden toegevoegd.</string>
<string name="error_media_upload_sending">Uploaden mislukt.</string>
<string name="error_report_too_few_statuses">Minstens een status moet gerapporteerd worden.</string>
<string name="error_sender_account_gone">Fout tijdens verzenden toot.</string>
<string name="title_home">Start</string>
<string name="title_notifications">Meldingen</string>

View file

@ -19,7 +19,6 @@
<string name="error_media_download_permission">Trenger tillatelse for å lagre media.</string>
<string name="error_media_upload_image_or_video">Bilder og videoer kan ikke kobles til samme status.</string>
<string name="error_media_upload_sending">Opplastingen feilet.</string>
<string name="error_report_too_few_statuses">Minst en status må rapporteres.</string>
<string name="error_sender_account_gone">En feil oppsto under sending av tootet.</string>
<string name="title_home">Hjem</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">Cal pemís d\'escritura dins lo mèdia.</string>
<string name="error_media_upload_image_or_video">Se pòt pas ajustar imatges e una vidèo dins lo meteis estatut.</string>
<string name="error_media_upload_sending">Fracàs en mandar.</string>
<string name="error_report_too_few_statuses">Cal almens denonciar un estatut.</string>
<string name="error_sender_account_gone">Error en enviar lo tut.</string>
<string name="title_home">Acuèlh</string>
<string name="title_notifications">Notificacions</string>

View file

@ -16,7 +16,6 @@
<string name="error_media_download_permission">Wymagane jest pozwolenie na przechowywanie plików na urządzeniu.</string>
<string name="error_media_upload_image_or_video">Do wpisu nie mogą być dołączone jednocześnie obrazy i pliki wideo.</string>
<string name="error_media_upload_sending">Wysyłanie nie powiodło się.</string>
<string name="error_report_too_few_statuses">Musisz zgłosić przynajmniej jeden wpis.</string>
<string name="error_sender_account_gone">Wysyłanie wpisu nie powiodło się.</string>
<string name="title_home">Strona główna</string>
<string name="title_notifications">Powiadomienia</string>

View file

@ -17,7 +17,6 @@
<string name="error_media_download_permission">Permissão para armazenar mídia é necessária.</string>
<string name="error_media_upload_image_or_video">Imagens e vídeos não podem ser anexados no mesmo toot.</string>
<string name="error_media_upload_sending">Falha no envio.</string>
<string name="error_report_too_few_statuses">Pelo menos um toot deve ser denunciado.</string>
<string name="error_sender_account_gone">Erro ao enviar toot.</string>
<string name="title_home">Página inicial</string>
<string name="title_notifications">Notificações</string>

View file

@ -19,7 +19,6 @@
<string name="error_media_download_permission">Необходимо разрешение для хранения медиаконтента.</string>
<string name="error_media_upload_image_or_video">Изображения и видео не могут быть прикрекплены к статусу одновременно.</string>
<string name="error_media_upload_sending">Загрузка не удалась.</string>
<string name="error_report_too_few_statuses">Должен быть выбран хотя бы один статус.</string>
<string name="error_sender_account_gone">Ошибка при отправке поста.</string>
<string name="title_home">Главная</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Potrebno je dovoljenje za shranjevanje medijev.</string>
<string name="error_media_upload_image_or_video">Slike in videoposnetki ne morejo biti dodani istemu statusu.</string>
<string name="error_media_upload_sending">Prenos ni uspel.</string>
<string name="error_report_too_few_statuses">Prijaviti je treba vsaj en status.</string>
<string name="error_sender_account_gone">Napaka pri pošiljanju tuta.</string>
<string name="title_home">Domov</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Tillstånd att lagra media krävs.</string>
<string name="error_media_upload_image_or_video">Bilder och videoklipp kan inte båda bifogas i samma status.</string>
<string name="error_media_upload_sending">Uppladdningen misslyckades.</string>
<string name="error_report_too_few_statuses">Minst en status måste rapporteras.</string>
<string name="error_sender_account_gone">Misslyckades med att få ett inloggningsnamn.</string>
<string name="title_home">Hem</string>
<string name="title_notifications">Notifikationer</string>

View file

@ -16,7 +16,6 @@
<string name="error_media_download_permission">ஊடகத்தை சேமிக்க அனுமதி தேவை.</string>
<string name="error_media_upload_image_or_video">படங்களும், வீடியோக்களும் ஒரே நிலைக்கு இணைக்க இயலாது.</string>
<string name="error_media_upload_sending">பதிவேற்றம் தோல்வியுற்றது.</string>
<string name="error_report_too_few_statuses">குறைந்தபட்சம் ஒரு நிலையை அறிவிக்க வேண்டும்.</string>
<string name="title_home">முகப்பு</string>
<string name="title_notifications">அறிவிப்புகள்</string>
<string name="title_public_local">அருகாமயில்</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Medya yazma izni gerekiyor.</string>
<string name="error_media_upload_image_or_video">Aynı iletiye hem video hem resim eklenemez.</string>
<string name="error_media_upload_sending">Yükleme başarsız.</string>
<string name="error_report_too_few_statuses">En az bir durum bildirilmelidir.</string>
<string name="error_sender_account_gone">İleti gönderilirken hata oluştu.</string>
<string name="title_home">Ana sayfa</string>
<string name="title_notifications">Bildirimler</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">需要授予 Tusky 写入存储空间的权限</string>
<string name="error_media_upload_image_or_video">无法在嘟文中同时插入视频和图片</string>
<string name="error_media_upload_sending">媒体文件上传失败</string>
<string name="error_report_too_few_statuses">至少要报告 1 则嘟文</string>
<string name="error_sender_account_gone">嘟文发送时出错</string>
<string name="title_home">主页</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">需要授予 Tusky 寫入儲存空間的權限</string>
<string name="error_media_upload_image_or_video">無法在嘟文中同時插入影片和圖片</string>
<string name="error_media_upload_sending">媒體檔案上傳失敗</string>
<string name="error_report_too_few_statuses">至少要檢舉 1 則嘟文</string>
<string name="error_sender_account_gone">嘟文發送時出錯</string>
<string name="title_home">主頁</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">需要授予 Tusky 寫入儲存空間的權限</string>
<string name="error_media_upload_image_or_video">無法在嘟文中同時插入影片和圖片</string>
<string name="error_media_upload_sending">媒體檔案上傳失敗</string>
<string name="error_report_too_few_statuses">至少要檢舉 1 則嘟文</string>
<string name="error_sender_account_gone">嘟文發送時出錯</string>
<string name="title_home">主頁</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">需要授予 Tusky 写入存储空间的权限</string>
<string name="error_media_upload_image_or_video">无法在嘟文中同时插入视频和图片</string>
<string name="error_media_upload_sending">媒体文件上传失败</string>
<string name="error_report_too_few_statuses">至少要报告 1 则嘟文</string>
<string name="error_sender_account_gone">嘟文发送时出错</string>
<string name="title_home">主页</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">需要授予 Tusky 寫入儲存空間的權限</string>
<string name="error_media_upload_image_or_video">無法在嘟文中同時插入影片和圖片</string>
<string name="error_media_upload_sending">媒體檔案上傳失敗</string>
<string name="error_report_too_few_statuses">至少要檢舉 1 則嘟文</string>
<string name="error_sender_account_gone">嘟文發送時出錯</string>
<string name="title_home">主頁</string>

View file

@ -18,7 +18,6 @@
<string name="error_media_download_permission">Permission to store media is required.</string>
<string name="error_media_upload_image_or_video">Images and videos cannot both be attached to the same status.</string>
<string name="error_media_upload_sending">The upload failed.</string>
<string name="error_report_too_few_statuses">At least one status must be reported.</string>
<string name="error_sender_account_gone">Error sending toot.</string>
<string name="title_home">Home</string>