diff --git a/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java b/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java index c4820280..30af13d8 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java @@ -58,6 +58,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AlertDialog; +import androidx.appcompat.widget.TooltipCompat; import androidx.core.app.ActivityOptionsCompat; import androidx.core.content.ContextCompat; import androidx.lifecycle.ViewModelProvider; @@ -248,12 +249,15 @@ public class ProfileActivity extends BaseActivity { TabLayout.Tab followerTab = binding.accountTabLayout.getTabAt(2); if (statusTab != null) { statusTab.setText(getString(R.string.status_cnt, Helper.withSuffix(account.statuses_count))); + TooltipCompat.setTooltipText(statusTab.view, String.valueOf(account.statuses_count)); } if (followingTab != null) { followingTab.setText(getString(R.string.following_cnt, Helper.withSuffix(account.following_count))); + TooltipCompat.setTooltipText(followingTab.view, String.valueOf(account.following_count)); } if (followerTab != null) { followerTab.setText(getString(R.string.followers_cnt, Helper.withSuffix(account.followers_count))); + TooltipCompat.setTooltipText(followerTab.view, String.valueOf(account.followers_count)); } } diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/ZipHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/ZipHelper.java index a09edef2..0cd20368 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/ZipHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/ZipHelper.java @@ -32,6 +32,8 @@ import android.widget.Toast; import androidx.preference.PreferenceManager; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; + import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; @@ -110,6 +112,12 @@ public class ZipHelper { Uri uri = Uri.parse("file://" + zipFile); intentOpen.setDataAndType(uri, "application/zip"); String title = context.getString(R.string.data_export_settings); + new MaterialAlertDialogBuilder(context) + .setTitle(R.string.export_settings) + .setMessage(message + "\n\n" + uri.getPath()) + .setIcon(R.drawable.ic_baseline_check_24) + .setNeutralButton(R.string.close, (dialogInterface, i) -> dialogInterface.dismiss()) + .show(); Helper.notify_user(context, Helper.getCurrentAccount(context), intentOpen, BitmapFactory.decodeResource(context.getResources(), getMainLogo(context)), Helper.NotifType.BACKUP, title, message); } diff --git a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java index 1ae652b6..57144582 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/ui/drawer/StatusAdapter.java @@ -2228,11 +2228,11 @@ public class StatusAdapter extends RecyclerView.Adapter // Executors.newSingleThreadScheduledExecutor().scheduleAtFixedRate(() -> holder.binding.statusContent.invalidate(), 0, 100, TimeUnit.MILLISECONDS); if (remote) { - holder.binding.actionButtonMore.setVisibility(View.GONE); + holder.binding.actionButtonMoreContainer.setVisibility(View.GONE); } else { - holder.binding.actionButtonMore.setVisibility(View.VISIBLE); + holder.binding.actionButtonMoreContainer.setVisibility(View.VISIBLE); } - holder.binding.actionButtonMore.setOnClickListener(v -> { + holder.binding.actionButtonMoreContainer.setOnClickListener(v -> { boolean isOwner = statusToDeal.account.id.compareTo(BaseMainActivity.currentUserID) == 0; PopupMenu popup = new PopupMenu(context, holder.binding.actionButtonMore); popup.getMenuInflater() @@ -2609,7 +2609,7 @@ public class StatusAdapter extends RecyclerView.Adapter popup.show(); }); - holder.binding.actionButtonReply.setOnLongClickListener(v -> { + holder.binding.actionButtonReplyContainer.setOnLongClickListener(v -> { CrossActionHelper.doCrossAction(context, CrossActionHelper.TypeOfCrossAction.REPLY_ACTION, null, statusToDeal); return true; }); @@ -2624,7 +2624,7 @@ public class StatusAdapter extends RecyclerView.Adapter context.startActivity(intent); }); }); - holder.binding.actionButtonReply.setOnClickListener(v -> { + holder.binding.actionButtonReplyContainer.setOnClickListener(v -> { if (remote) { Toasty.info(context, context.getString(R.string.retrieve_remote_status), Toasty.LENGTH_SHORT).show(); searchVM.search(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, statusToDeal.uri, null, "statuses", false, true, false, 0, null, null, 1) diff --git a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml index 1459c9c4..4f1b889b 100644 --- a/app/src/main/res/layouts/mastodon/layout/drawer_status.xml +++ b/app/src/main/res/layouts/mastodon/layout/drawer_status.xml @@ -653,10 +653,13 @@ android:clipChildren="false" android:clipToPadding="false"> - - + - + app:layout_constraintTop_toTopOf="parent"> + + + + diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index ec7591b2..0621575f 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -1071,4 +1071,5 @@ O token non pode quedar baleiro! Usar un token A app non se puido autenticar coa conta! + Etiquetas de Twitter (con Nitter) diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 92278d52..fdd63d8f 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -83,4 +83,18 @@ Pridėti laukelį Ištrinti laukelį Ar tikrai norite ištrinti šį laukelį? + Pasirinkti takelius + Automatinis + Pasirinktinė akcento spalva + Įkelti mediją nuotoliniu būdu + Medijos negalima įkelti. + Automatiškai gauti nuotolines medijas, kai jų nepasiekiama + Gaunamos žinutės + Pridėti aprašą + Atgauti nuotolinę paskyrą. + Išeiti + Nustatykite temos spalvą kiekvienai paskyrai + Šviesi akcento spalva + Miniatiūra + Tamsi akcento spalva diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 032cc699..0b653c9b 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -247,8 +247,8 @@ Назва Назва… Description - Keywords - Keywords… + Ключові слова + Ключові слова… Загальнодоступне Поза списком @@ -264,8 +264,8 @@ Додати до списку Видалити список Нова назва списку - The account was added to the list! - You don\'t have any lists yet! + Обліковий запис додано до списку! + У вас ще немає списків! %1$s відправлено до %2$s Медіа-файл завантажений. Натисніть щоб відобразити. @@ -279,41 +279,41 @@ Додати деталі повідомлення при поширюванні Підтримати додаток на Liberapay Помилка у регулярному виразі! - No timelines was found on this instance! - Follow instance - You already follow this instance! + Для цього екземпляра не знайдено хронології! + Слідкуйте за прикладом + Ви вже стежите за цим екземпляром! Партнерство - Hide boosts from %s - Feature on profile - Show boosts from %s - Don\'t feature on profile + Приховати підсилення від %s + Функція в профілі + Показати посилення від %s + Не показувати в профілі Пряме повідомлення Фільтри - No filters to display. You can create one by tapping on the \"+\" button. + Немає фільтрів для відображення. Ви можете створити його, натиснувши на кнопку «+». Ключове слово або фраза Домашня стрічка Публічна стрічка Сповіщення Розмови Буде зіставлено незалежно від регістру в тексті чи вмісті попередження повідомлення - Drop instead of hide + Киньте, а не ховайтеся Відфільтровані повідомлення зникнуть безповоротно, навіть якщо фільтр пізніше буде видалено - When the keyword or phrase is alphanumeric only, it will only be applied if it matches the whole word + Якщо ключове слово або фраза є лише буквено-цифровим, воно буде застосовано, лише якщо воно відповідає всьому слову Слово повністю Фільтр контексту - One or multiple contexts where the filter should apply + Один або кілька контекстів, до яких має застосовуватися фільтр Закінчується після Видалити фільтр? Оновлення фільтра - You have not created a list yet. Tap on the \"+\" button to add a new one. - Automatically expand hidden media - New follow - New Boost - New Favourite - New Mention - Poll Ended + Ви ще не створили список. Натисніть на кнопку «+», щоб додати новий. + Автоматично розгортати приховані носії + Нове слідування + Нове посилення + Новий фаворит + Нова згадка + Опитування завершено Запасне копіювання повідомлень - New posts + Нові пости Медіа завантаження Оберіть сигнал Увімкнути часовий слот @@ -324,29 +324,29 @@ Домен заблокований Завантаження віддаленого статусу Peertube екземпляр - Use Emoji One + Використовуйте Emoji One Information Відображати дрібнообрази в усіх повідомленнях - The account id has been copied in the clipboard! - Change the language + Ідентифікатор облікового запису скопійовано в буфер обміну! + Змінити мову Обтинати довгі повідомлення Обтинати повідомлення більші, ніж \'x\' рядків. Нуль означає вимикання. - Display more - Display less - The tag already exists! - Schedule boost - The boost is scheduled! - No scheduled boost to display! + Показати більше + Показувати менше + Тег вже існує! + Підвищення розкладу + Посилення заплановане! + Немає запланованого підвищення для відображення! Open menu - Profile picture - Profile banner - Contact admin of the instance - MastoHost logo - Emoji picker - Expand the conversation - Custom emoji picker + Фото профілю + Банер профілю + Зв\'язатися з адміністратором інстанції + Логотип MastoHost + Вибір емодзі + Розгорніть розмову + Спеціальний засіб вибору емодзі Favicon - Add description for media (for the visually impaired) + Додайте опис для медіа (для людей із вадами зору) Ніколи 30 хвилин @@ -358,47 +358,47 @@ Мови - Media only - Show NSFW - Bot - Pixelfed instance - Mastodon instance - Any of these - All of these - None of these - Any of these words (space-separated) - All these words (space-separated) - Add some words to filter (space-separated) - Change column name - Misskey instance - Trending + Тільки ЗМІ + Показати NSFW + Бот + Примірник Pixelfed + Примірник Мастодонта + Будь-який із цих + Всі ці + Нічого з цього + Будь-яке з цих слів (розділених пробілами) + Усі ці слова (розділені пробілами) + Додати кілька слів до фільтра (розділених пробілами) + Змінити назву стовпця + Екземпляр Misskey + В тренді Local - Category + Категорія Description - Share + Поділіться Повідомлення (сервер) Повідомлення (пристрій) - Timelines + Часові рамки Interface Contacts - An error occurred when selecting the backup file! - Logout account - All - Copy link - http calls blocked by the application - List of blocked calls + Під час вибору файлу резервної копії сталася помилка! + Вийти з облікового запису + Все + Копіювати посилання + http-дзвінки, заблоковані програмою + Список заблокованих дзвінків Submit - Filter timeline with tags + Фільтрувати шкалу часу з тегами No tags - Attach an image when sharing a URL + Додайте зображення, коли надсилаєте URL-адресу - Create a poll - Choice %d - You need two choices at least for the poll! - Done + Створіть опитування + Вибір %d + Вам потрібно принаймні два варіанти для опитування! + Готово end at %s Vote - A poll you have voted in has ended + Опитування, у якому ви проголосували, завершено Опубліковане вами опитування закінчилося Categories Move timeline @@ -1085,4 +1085,5 @@ Додатку не вдалося автентифікувати обліковий запис! Ваш маркер Жетон не може бути порожнім! + Теги Twitter (через Ritter) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index cba0f08f..c3d46e60 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1073,4 +1073,5 @@ 令牌不能为空! 应用验证账户失败! 使用令牌 + Twitter 标签(通过 Nitter) diff --git a/src/fdroid/fastlane/metadata/android/uk/changelogs/521.txt b/src/fdroid/fastlane/metadata/android/uk/changelogs/521.txt index 4f9e631b..6fe980e7 100644 --- a/src/fdroid/fastlane/metadata/android/uk/changelogs/521.txt +++ b/src/fdroid/fastlane/metadata/android/uk/changelogs/521.txt @@ -1,19 +1,20 @@ Додано: -- Дозволяє стежити за графіком виявлення екземплярів Pixelfed -- Зберігайте пропорції медіа на шкалі часу для Pixelfed -— Додайте кнопку «Подобається» на часові шкали для Pixelfed -- Дозволити вхід за допомогою токена +- Дозволити відслідковувати хронологію відкриття екземплярів Pixelfed +- Зберігайте пропорції медіа на часовій шкалі для Pixelfed +- Додайте кнопку "Мені подобається" на шкалі часу для Pixelfed +- Дозволено вхід за допомогою токена -змінити: -- Використовуйте макет Pixelfed, коли слідкуєте за екземплярами Pixelfed -- Дозволяє використовувати кнопки прокручування для більших екранів у розмовах -- Перемістіть QR-код у заголовок +Змінити: +- Використовувати макет Pixelfed при відстеженні інстансів Pixelfed +- Дозволити кнопки прокрутки для більших екранів у розмовах +- Перенесено QR-код у заголовок Виправлено: -- Неактивні URL-адреси, коли ввімкнено Markdown -- Стежити за обліковими записами Twitter -- Часова шкала Pixelfed не відображається за умовчанням -- Виправити звіти адміністратора недоступні -— Забарвлення верхньої панелі при прокручуванні -- Пропозиції щодо пошуку користувачів мають дублікати +- Не клікабельні URL-адреси, коли ввімкнено Markdown +- Nitter для підписки на акаунти Twitter +- За замовчуванням не відображається піксельна шкала часу +- Виправлено недоступність адміністративних звітів +- Забарвлення верхнього рядка під час прокрутки +- Чернетки не зберігаються під час додавання/редагування описів медіа +- Пропозиції пошуку користувача мають дублікати - Деякі незначні збої diff --git a/src/fdroid/fastlane/metadata/android/uk/changelogs/523.txt b/src/fdroid/fastlane/metadata/android/uk/changelogs/523.txt new file mode 100644 index 00000000..74562993 --- /dev/null +++ b/src/fdroid/fastlane/metadata/android/uk/changelogs/523.txt @@ -0,0 +1,12 @@ +Додано: +- Слідкуйте за тегами Twitter + +Змінити: +- Видалено автоматичне резервне копіювання (лише для Google) + +Виправлено: +- Пуш-сповіщення не працювали на деяких пристроях +- Фільтри не застосовуються до опису медіа +- Виправлено збій з анімованими зображеннями на часових шкалах +- Виправлено збій для довгих потоків +- Виправлено збій через деякі повідомлення (траплялися в різних таймлайнах)