From d76e823489f493c10df25aa59da0bcce37bddd01 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Tue, 29 Aug 2023 11:52:38 +0200 Subject: [PATCH 01/44] New translations strings.xml (Italian) --- mastodon/src/main/res/values-it-rIT/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/mastodon/src/main/res/values-it-rIT/strings.xml b/mastodon/src/main/res/values-it-rIT/strings.xml index 295e41410..0e93b619a 100644 --- a/mastodon/src/main/res/values-it-rIT/strings.xml +++ b/mastodon/src/main/res/values-it-rIT/strings.xml @@ -387,6 +387,7 @@ Benvenuto/a su Mastodon Mastodon è un social network decentralizzato, il che significa che nessuna singola azienda lo controlla. È composto da molti server indipendenti e tutti connessi insieme. Cosa sono i server? + Ogni account Mastodon è ospitato su un server — ognuno con i propri valori, regole, & amministratori. Non importa quale scegliere, è possibile seguire e interagire con persone su altri server. Apertura del collegamento… Questo collegamento non è supportato nell\'app Esci da tutti gli account From e9df125cded28d389a00cd084b2dbf4a09d9b6ce Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Fri, 1 Sep 2023 16:10:32 +0200 Subject: [PATCH 02/44] New translations strings.xml (Swedish) --- mastodon/src/main/res/values-sv-rSE/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/mastodon/src/main/res/values-sv-rSE/strings.xml b/mastodon/src/main/res/values-sv-rSE/strings.xml index 7cbb5aa14..841687dac 100644 --- a/mastodon/src/main/res/values-sv-rSE/strings.xml +++ b/mastodon/src/main/res/values-sv-rSE/strings.xml @@ -165,6 +165,7 @@ Teknik Kolla din inkorg + Fick du ingen länk? Skicka igen Öppna e-postappen Bekräftelse via e-post skickad From 2d24e50ff24991a383442bfb8286da407d5d660c Mon Sep 17 00:00:00 2001 From: Angelo Suzuki <1063155+tinsukE@users.noreply.github.com> Date: Fri, 1 Sep 2023 21:48:10 +0200 Subject: [PATCH 03/44] Add a setting for "Load missing posts behavior" This will make sure that items that are filtered out don't show up on the interface. Fixes sk22#311 --- .../android/GlobalUserPreferences.java | 17 ++ .../fragments/HomeTimelineFragment.java | 148 ++++++++++++------ .../settings/SettingsBehaviorFragment.java | 25 ++- ...ent_arrow_maximize_vertical_24_regular.xml | 3 + mastodon/src/main/res/values/strings_sk.xml | 3 + 5 files changed, 151 insertions(+), 45 deletions(-) create mode 100644 mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index 200499599..f83eb76fb 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -25,6 +25,8 @@ import java.util.HashSet; import java.util.Map; import java.util.Set; +import androidx.annotation.StringRes; + public class GlobalUserPreferences{ private static final String TAG="GlobalUserPreferences"; @@ -32,6 +34,7 @@ public class GlobalUserPreferences{ public static boolean useCustomTabs; public static boolean altTextReminders, confirmUnfollow, confirmBoost, confirmDeletePost; public static ThemePreference theme; + public static LoadMissingPostsPreference loadMissingPosts; // MEGALODON public static boolean trueBlackTheme; @@ -119,6 +122,7 @@ public class GlobalUserPreferences{ displayPronounsInThreads=prefs.getBoolean("displayPronounsInThreads", true); displayPronounsInUserListings=prefs.getBoolean("displayPronounsInUserListings", true); overlayMedia=prefs.getBoolean("overlayMedia", false); + loadMissingPosts=LoadMissingPostsPreference.values()[prefs.getInt("loadMissingItems", 0)]; if (prefs.contains("prefixRepliesWithRe")) { prefixReplies = prefs.getBoolean("prefixRepliesWithRe", false) @@ -177,6 +181,7 @@ public class GlobalUserPreferences{ .putBoolean("displayPronounsInThreads", displayPronounsInThreads) .putBoolean("displayPronounsInUserListings", displayPronounsInUserListings) .putBoolean("overlayMedia", overlayMedia) + .putInt("loadMissingItems", loadMissingPosts.ordinal()) .apply(); } @@ -271,4 +276,16 @@ public class GlobalUserPreferences{ ALWAYS, TO_OTHERS } + + public enum LoadMissingPostsPreference{ + NEWEST_FIRST(R.string.sk_load_missing_posts_newest_first), // Downwards, default + OLDEST_FIRST(R.string.sk_load_missing_posts_oldest_first); // Upwards + + @StringRes + public int labelRes; + + LoadMissingPostsPreference(@StringRes int labelRes){ + this.labelRes=labelRes; + } + } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java index d511740fe..9a70f75e4 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java @@ -8,7 +8,9 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import org.joinmastodon.android.E; import org.joinmastodon.android.GlobalUserPreferences; +import org.joinmastodon.android.R; import org.joinmastodon.android.api.requests.markers.SaveMarkers; import org.joinmastodon.android.api.requests.timelines.GetHomeTimeline; import org.joinmastodon.android.api.session.AccountLocalPreferences; @@ -22,9 +24,12 @@ import org.joinmastodon.android.ui.displayitems.GapStatusDisplayItem; import org.joinmastodon.android.ui.displayitems.StatusDisplayItem; import org.joinmastodon.android.utils.StatusFilterPredicate; +import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.Objects; +import java.util.Optional; import java.util.Set; import java.util.stream.Collectors; @@ -179,12 +184,23 @@ public class HomeTimelineFragment extends StatusListFragment { public void onGapClick(GapStatusDisplayItem.Holder item){ if(dataLoading) return; - item.getItem().loading=true; + GapStatusDisplayItem gap=item.getItem(); + gap.loading=true; V.setVisibilityAnimated(item.progress, View.VISIBLE); V.setVisibilityAnimated(item.text, View.GONE); - GapStatusDisplayItem gap=item.getItem(); dataLoading=true; - currentRequest=new GetHomeTimeline(item.getItemID(), null, 20, null, getLocalPrefs().timelineReplyVisibility) + + GlobalUserPreferences.LoadMissingPostsPreference preference = GlobalUserPreferences.loadMissingPosts; + String maxID = null; + String minID = null; + if (preference==GlobalUserPreferences.LoadMissingPostsPreference.NEWEST_FIRST) { + maxID = item.getItemID(); + } else { + int gapPos=displayItems.indexOf(gap); + StatusDisplayItem nextItem=displayItems.get(gapPos + 1); + minID=nextItem.parentID; + } + currentRequest=new GetHomeTimeline(maxID, minID, 20, null, getLocalPrefs().timelineReplyVisibility) .setCallback(new Callback<>(){ @Override public void onSuccess(List result){ @@ -204,52 +220,96 @@ public class HomeTimelineFragment extends StatusListFragment { AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(gapStatus), false); } }else{ - Set idsBelowGap=new HashSet<>(); - boolean belowGap=false; - int gapPostIndex=0; - for(Status s:data){ - if(belowGap){ - idsBelowGap.add(s.id); - }else if(s.id.equals(gap.parentID)){ - belowGap=true; - s.hasGapAfter=false; - AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(s), false); - }else{ - gapPostIndex++; + if(preference==GlobalUserPreferences.LoadMissingPostsPreference.NEWEST_FIRST) { + Set idsBelowGap=new HashSet<>(); + boolean belowGap=false; + int gapPostIndex=0; + for(Status s:data){ + if(belowGap){ + idsBelowGap.add(s.id); + }else if(s.id.equals(gap.parentID)){ + belowGap=true; + s.hasGapAfter=false; + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(s), false); + }else{ + gapPostIndex++; + } } - } - int endIndex=0; - for(Status s:result){ - endIndex++; - if(idsBelowGap.contains(s.id)) - break; - } - if(endIndex==result.size()){ - result.get(result.size()-1).hasGapAfter=true; - }else{ - result=result.subList(0, endIndex); - } - List targetList=displayItems.subList(gapPos, gapPos+1); - targetList.clear(); - List insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1); - StatusFilterPredicate filterPredicate=new StatusFilterPredicate(accountID, getFilterContext()); - for(Status s:result){ - if(idsBelowGap.contains(s.id)) - break; - if(typeFilterPredicate(s) && filterPredicate.test(s)){ + int endIndex=0; + for(Status s:result){ + endIndex++; + if(idsBelowGap.contains(s.id)) + break; + } + if(endIndex==result.size()){ + result.get(result.size()-1).hasGapAfter=true; + }else{ + result=result.subList(0, endIndex); + } + AccountSessionManager.get(accountID).filterStatuses(result, FilterContext.HOME); + List targetList=displayItems.subList(gapPos, gapPos+1); + targetList.clear(); + List insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1); + for(Status s:result){ + if(idsBelowGap.contains(s.id)) + break; targetList.addAll(buildDisplayItems(s)); insertedPosts.add(s); } + if(targetList.isEmpty()){ + // oops. We didn't add new posts, but at least we know there are none. + adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos); + }else{ + adapter.notifyItemChanged(getMainAdapterOffset()+gapPos); + adapter.notifyItemRangeInserted(getMainAdapterOffset()+gapPos+1, targetList.size()-1); + } + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(insertedPosts, false); + } else { + String aboveGapID = gap.parentID; + int gapPostIndex = 0; + for (;gapPostIndex targetList=displayItems.subList(gapPos, gapPos+1); + if(indexOfGapInResponse gapStatus=data.stream() + .filter(s->Objects.equals(s.id, gap.parentID)) + .findFirst(); + if (gapStatus.isPresent()) { + gapStatus.get().hasGapAfter=false; + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(gapStatus.get()), false); + } + targetList.clear(); + } else { + gap.loading=false; + } + List insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1); + for(Status s:result){ + targetList.addAll(buildDisplayItems(s)); + insertedPosts.add(s); + } + AccountSessionManager.get(accountID).filterStatuses(insertedPosts, FilterContext.HOME); + if(targetList.isEmpty()){ + // oops. We didn't add new posts, but at least we know there are none. + adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos); + }else{ + adapter.notifyItemChanged(getMainAdapterOffset()+gapPos); + adapter.notifyItemRangeInserted(getMainAdapterOffset()+gapPos+1, targetList.size()-1); + } + list.scrollToPosition(getMainAdapterOffset()+gapPos+targetList.size()); + AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(insertedPosts, false); } - AccountSessionManager.get(accountID).filterStatuses(insertedPosts, getFilterContext()); - if(targetList.isEmpty()){ - // oops. We didn't add new posts, but at least we know there are none. - adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos); - }else{ - adapter.notifyItemChanged(getMainAdapterOffset()+gapPos); - adapter.notifyItemRangeInserted(getMainAdapterOffset()+gapPos+1, targetList.size()-1); - } - AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(insertedPosts, false); } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java index 919f6fbe6..2c28bd37c 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java @@ -20,9 +20,10 @@ import org.joinmastodon.android.utils.MastodonLanguage; import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; +import java.util.stream.Stream; public class SettingsBehaviorFragment extends BaseSettingsFragment implements HasAccountID{ - private ListItem languageItem; + private ListItem languageItem, loadMissingPostsItem; private CheckableListItem altTextItem, playGifsItem, customTabsItem, confirmUnfollowItem, confirmBoostItem, confirmDeleteItem; private MastodonLanguage postLanguage; private ComposeLanguageAlertViewController.SelectedOption newPostLanguage; @@ -45,6 +46,7 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment impleme List> items = new ArrayList<>(List.of( languageItem=new ListItem<>(getString(R.string.default_post_language), postLanguage!=null ? postLanguage.getDisplayName(getContext()) : null, R.drawable.ic_fluent_local_language_24_regular, this::onDefaultLanguageClick), + loadMissingPostsItem=new ListItem<>(R.string.sk_settings_load_missing_posts, GlobalUserPreferences.loadMissingPosts.labelRes, R.drawable.ic_fluent_arrow_maximize_vertical_24_regular, this::onLoadMissingPostsClick), altTextItem=new CheckableListItem<>(R.string.settings_alt_text_reminders, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.altTextReminders, R.drawable.ic_fluent_image_alt_text_24_regular, ()->toggleCheckableItem(altTextItem)), playGifsItem=new CheckableListItem<>(R.string.settings_gif, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.playGifs, R.drawable.ic_fluent_gif_24_regular, ()->toggleCheckableItem(playGifsItem)), overlayMediaItem=new CheckableListItem<>(R.string.sk_settings_continues_playback, R.string.sk_settings_continues_playback_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.overlayMedia, R.drawable.ic_fluent_play_circle_hint_24_regular, ()->toggleCheckableItem(overlayMediaItem)), @@ -127,6 +129,27 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment impleme .show(); } + private void onLoadMissingPostsClick(){ + GlobalUserPreferences.LoadMissingPostsPreference[] values=GlobalUserPreferences.LoadMissingPostsPreference.values(); + int selected=GlobalUserPreferences.loadMissingPosts.ordinal(); + int[] newSelected={selected}; + new M3AlertDialogBuilder(getActivity()) + .setTitle(R.string.sk_settings_load_missing_posts) + .setSingleChoiceItems(Stream.of(values).map(pref->getString(pref.labelRes)).toArray(String[]::new), + selected, (dlg, item)->newSelected[0]=item) + .setPositiveButton(R.string.ok, (dlg, item)->{ + GlobalUserPreferences.LoadMissingPostsPreference pref=values[newSelected[0]]; + if(pref!=GlobalUserPreferences.loadMissingPosts){ + GlobalUserPreferences.loadMissingPosts=pref; + GlobalUserPreferences.save(); + loadMissingPostsItem.subtitleRes=pref.labelRes; + rebindItem(loadMissingPostsItem); + } + }) + .setNegativeButton(R.string.cancel, null) + .show(); + } + private void onReplyVisibilityClick(){ AccountLocalPreferences lp=getLocalPrefs(); int selected=lp.timelineReplyVisibility==null ? 2 : switch(lp.timelineReplyVisibility){ diff --git a/mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml new file mode 100644 index 000000000..405c1eaba --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_arrow_maximize_vertical_24_regular.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index 950285895..41d7659f1 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -378,4 +378,7 @@ post posts + Load missing posts behavior + Newest first (downwards) + Oldest first (upwards) \ No newline at end of file From 228fdc8ffe061269210f3b96e52116fb7b5dc801 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Sun, 3 Sep 2023 11:26:37 +0200 Subject: [PATCH 04/44] New translations strings.xml (Swedish) --- mastodon/src/main/res/values-sv-rSE/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/mastodon/src/main/res/values-sv-rSE/strings.xml b/mastodon/src/main/res/values-sv-rSE/strings.xml index 841687dac..f3e7f6a20 100644 --- a/mastodon/src/main/res/values-sv-rSE/strings.xml +++ b/mastodon/src/main/res/values-sv-rSE/strings.xml @@ -371,6 +371,7 @@ Om %s Fråga innan du raderar inlägg + Personer som följer dig Ingen %d vecka From a7e23aa228475922576486be120fe85ff539e29d Mon Sep 17 00:00:00 2001 From: ca Date: Sun, 3 Sep 2023 00:19:53 +0000 Subject: [PATCH 05/44] Translated using Weblate (Catalan) Currently translated at 100.0% (370 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ca/ --- mastodon/src/main/res/values-ca-rES/strings_sk.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mastodon/src/main/res/values-ca-rES/strings_sk.xml b/mastodon/src/main/res/values-ca-rES/strings_sk.xml index 49b101970..f37cc5e1b 100644 --- a/mastodon/src/main/res/values-ca-rES/strings_sk.xml +++ b/mastodon/src/main/res/values-ca-rES/strings_sk.xml @@ -372,4 +372,8 @@ Aquestes són les publicacions més recents de la xarxa seleccionades per l\'administració de la instància. Indicador Cerca al fedivers + + publicació + publicacions + \ No newline at end of file From 3373b2bb045a8a0bdc758bc1ff84586640543e13 Mon Sep 17 00:00:00 2001 From: ca Date: Sun, 3 Sep 2023 00:23:13 +0000 Subject: [PATCH 06/44] Translated using Weblate (Catalan) Currently translated at 100.0% (18 of 18 strings) Translation: Megalodon/metadata Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/ca/ --- metadata/ca/changelogs/67.txt | 2 +- metadata/ca/changelogs/76.txt | 6 ++++++ metadata/ca/changelogs/77.txt | 4 ++++ metadata/ca/changelogs/83.txt | 5 +++++ metadata/ca/changelogs/94.txt | 8 ++++++++ 5 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 metadata/ca/changelogs/76.txt create mode 100644 metadata/ca/changelogs/77.txt create mode 100644 metadata/ca/changelogs/83.txt create mode 100644 metadata/ca/changelogs/94.txt diff --git a/metadata/ca/changelogs/67.txt b/metadata/ca/changelogs/67.txt index c4a0a1817..3f445ab52 100644 --- a/metadata/ca/changelogs/67.txt +++ b/metadata/ca/changelogs/67.txt @@ -1,6 +1,6 @@ - Pestanya d'inici nova amb línies de temps públiques - Mostra els avisos del servidor -- El text s'escala segons la configuració del sistema +- El text s'escala segons el sistema - Filtre millorat (no, «Amaga amb un avís» encara no funciona) per @thiagojedi - Gestió de llistes - Elimina els seguidors bloquejant-los suaument diff --git a/metadata/ca/changelogs/76.txt b/metadata/ca/changelogs/76.txt new file mode 100644 index 000000000..3ca84ec47 --- /dev/null +++ b/metadata/ca/changelogs/76.txt @@ -0,0 +1,6 @@ +- Filtres millorats, inclosa la compatibilitat «Amaga amb un avís» +- Pàgina de perfil redissenyada amb metadades directament a sota de la bio +- Funció de replegar/expandir a les publicacions molt llargues +- Opció que afegeix el prefix «re:» a les respostes d'avisos de contingut +- Opció d’amagar els botons d’interacció en la línia de temps +- Diverses correccions, retocs i millores diff --git a/metadata/ca/changelogs/77.txt b/metadata/ca/changelogs/77.txt new file mode 100644 index 000000000..1f3060df4 --- /dev/null +++ b/metadata/ca/changelogs/77.txt @@ -0,0 +1,4 @@ +- Feu una pulsació llarga al botó de seguiment per a seguir els perfils en un altre compte +- Opció d’obrir perfils en un altre compte +- Amaga automàticament el botó de redacció en desplaçar-se per la línia de temps +- S'ha arreglat un error en obrir els perfils d'administrador del servidor diff --git a/metadata/ca/changelogs/83.txt b/metadata/ca/changelogs/83.txt new file mode 100644 index 000000000..3332987ab --- /dev/null +++ b/metadata/ca/changelogs/83.txt @@ -0,0 +1,5 @@ +- Feu m'agrada/afegiu als marcadors/responeu directament des de la notificació +- Capçaleres més boniques i coherents per a les republicacions i respostes en la línia de temps +- Punt de notificació (que encara no carrega les notificacions) +- Per als usuaris d'Akkoma: Visibilitat de les respostes, respostes ordenades als fils, citar… +- S'han arreglat alguns errors i retocs menors diff --git a/metadata/ca/changelogs/94.txt b/metadata/ca/changelogs/94.txt new file mode 100644 index 000000000..c472cacf7 --- /dev/null +++ b/metadata/ca/changelogs/94.txt @@ -0,0 +1,8 @@ +- Vista millorada i més clara dels fils +- Obre comptes o publicacions compartint un lloc web a Megalodon +- Carrega els llistats de seguidors, preferits… des de la instància d’origen +- Millores de compatibilitat per a servidors que no són de Mastodon +- Opció per establir el tipus de contingut a les publicacions +- Suport per a copiar URL de les aplicacions recents en dispositius Pixel +- Mostra automàticament els mateixos avisos de contingut als fils +- Correcció d'errors i millores de la interfície From 54d48253d5015c7a779763f3f6de819e5e47dfbf Mon Sep 17 00:00:00 2001 From: butterflyoffire Date: Sun, 3 Sep 2023 15:58:11 +0000 Subject: [PATCH 07/44] Translated using Weblate (Arabic) Currently translated at 12.4% (46 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ar/ --- mastodon/src/main/res/values-ar/strings_sk.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mastodon/src/main/res/values-ar/strings_sk.xml b/mastodon/src/main/res/values-ar/strings_sk.xml index 1e9246d2e..3c0c1cd11 100644 --- a/mastodon/src/main/res/values-ar/strings_sk.xml +++ b/mastodon/src/main/res/values-ar/strings_sk.xml @@ -31,4 +31,18 @@ عطل إشعارات النشر لـ %s تحقق من وجود تحديثات لا يتوفر تحديث + ساعة واحدة + 6 ساعات + يوم واحد + 3 أيام + 7 أيام + الفديرالية + المحلي + الإشعارات + المدة + إظهار المعاد نشرها + 5 دقائق + الرئيسي + 30 دقيقة + الرئيسي \ No newline at end of file From 8101bb9ea1ef0803c78b7bbdcd0cfd601d6f59db Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 4 Sep 2023 07:10:05 +0200 Subject: [PATCH 08/44] New translations strings.xml (Portuguese, Brazilian) --- mastodon/src/main/res/values-pt-rBR/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/mastodon/src/main/res/values-pt-rBR/strings.xml b/mastodon/src/main/res/values-pt-rBR/strings.xml index 7a9cad8c0..571f8ee64 100644 --- a/mastodon/src/main/res/values-pt-rBR/strings.xml +++ b/mastodon/src/main/res/values-pt-rBR/strings.xml @@ -236,6 +236,7 @@ Seguir %s Deixou de seguir %s Agora você está seguindo %s + Solicitou para te seguir %s Abrir no navegador Por que você deseja se inscrever? Isso vai nos ajudar a revisar sua inscrição. From e7f5dd3357df57f179c3c7be8c7772cf5cf984a1 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 4 Sep 2023 07:10:06 +0200 Subject: [PATCH 09/44] New translations strings.xml (Bengali) --- mastodon/src/main/res/values-bn-rBD/strings.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mastodon/src/main/res/values-bn-rBD/strings.xml b/mastodon/src/main/res/values-bn-rBD/strings.xml index cc2e931a2..506df1209 100644 --- a/mastodon/src/main/res/values-bn-rBD/strings.xml +++ b/mastodon/src/main/res/values-bn-rBD/strings.xml @@ -2,6 +2,7 @@ লগ ইন করুন এরপর + সার্ভারের তথ্য পুনরূদ্ধার করা হচ্ছে… কোনো ত্রুটি ঘটেছে ঠিক আছে প্রমাণীকরণের জন্য প্রস্তুত হচ্ছে... @@ -65,6 +66,10 @@ %d দিন বাকি %d দিন বাকি + + %,d ভোট + %,d ভোট + বন্ধ অ্যাকাউন্টটি মিউট করুন মিউট করুন @@ -123,6 +128,8 @@ তথ্য-প্রযুক্তি আপনার ইনবক্স দেখুন + ই-মেইল অ্যাপ খুলুন + নিশ্চিতকরনের ই-মেইল পাঠানো হয়েছে ফলোয়ারদের জন্য নতুন ফলোয়াররা Mastodon-এ প্রথমে লগ ইন করুন From f0eb6573f427a87339d51af0875be4c74e22800e Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 4 Sep 2023 08:10:24 +0200 Subject: [PATCH 10/44] New translations strings.xml (Portuguese, Brazilian) --- mastodon/src/main/res/values-pt-rBR/strings.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mastodon/src/main/res/values-pt-rBR/strings.xml b/mastodon/src/main/res/values-pt-rBR/strings.xml index 571f8ee64..afc5bb99f 100644 --- a/mastodon/src/main/res/values-pt-rBR/strings.xml +++ b/mastodon/src/main/res/values-pt-rBR/strings.xml @@ -238,6 +238,7 @@ Agora você está seguindo %s Solicitou para te seguir %s Abrir no navegador + Ocultar boosts de %s Por que você deseja se inscrever? Isso vai nos ajudar a revisar sua inscrição. Limpar @@ -366,6 +367,7 @@ Escolha um ou mais Salvar alterações Destaques + Linha do tempo Visualizar tudo Contas Link verificado @@ -378,6 +380,7 @@ Bem-vindo ao Mastodon Mastodon é uma rede social descentralizada, o que significa que nenhuma empresa a controla. É composto de muitos servidores executados de forma independente, todos conectados entre si. O que são servidores? + Todas as contas no Mastodon são hospedadas em um servidor — cada um com seus próprios valores, regras, & administradores. Não importa qual você escolha, você pode seguir e interagir com pessoas que estão em qualquer outro servidor. Abrindo link… Este link não é compatível com o aplicativo Sair de todas as contas @@ -462,6 +465,7 @@ Termina %s + Notificações serão retomadas %s. Vá para as configurações de notificação Sobre Regras From 209081f1f0d47825f0911417ec01a966e01393ff Mon Sep 17 00:00:00 2001 From: kallekn Date: Mon, 4 Sep 2023 08:03:07 +0000 Subject: [PATCH 11/44] Translated using Weblate (Finnish) Currently translated at 0.8% (3 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fi/ --- mastodon/src/main/res/values-fi-rFI/strings_sk.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/res/values-fi-rFI/strings_sk.xml b/mastodon/src/main/res/values-fi-rFI/strings_sk.xml index 045e125f3..177079004 100644 --- a/mastodon/src/main/res/values-fi-rFI/strings_sk.xml +++ b/mastodon/src/main/res/values-fi-rFI/strings_sk.xml @@ -1,3 +1,5 @@ - + Kiinnitetty + Megalodon + \ No newline at end of file From 0cb3e1863e85829a6a7ff6d55bed450638527aae Mon Sep 17 00:00:00 2001 From: Arkxv Date: Mon, 4 Sep 2023 07:40:21 +0000 Subject: [PATCH 12/44] Translated using Weblate (Japanese) Currently translated at 5.4% (20 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ja/ --- .../src/main/res/values-ja-rJP/strings_sk.xml | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/res/values-ja-rJP/strings_sk.xml b/mastodon/src/main/res/values-ja-rJP/strings_sk.xml index 045e125f3..fb26d70fb 100644 --- a/mastodon/src/main/res/values-ja-rJP/strings_sk.xml +++ b/mastodon/src/main/res/values-ja-rJP/strings_sk.xml @@ -1,3 +1,22 @@ - + 固定 + 削除して再編集 + 投稿を削除して再編集 + 本当にこの投稿を削除して再編集しますか? + プロファイルに固定 + 投稿をプロフィールに固定 + この投稿をあなたのプロフィールに固定しますか? + 投稿を固定しています… + プロフィールへの固定を解除 + プロフィールへの投稿の固定を解除 + 本当にこの投稿の固定を解除しますか? + 投稿の固定を解除しています… + 画像の説明 + 未収載 + 返信を表示 + 返信の公開範囲 + すべての返信 + 音声のオーバーレイ + 既に再生されているメディアを停止することなく、新たなメディアを再生できるようにします + \ No newline at end of file From 0a338ad6074fe91da3718d088929d29625a59cd5 Mon Sep 17 00:00:00 2001 From: starstuff Date: Mon, 4 Sep 2023 08:05:15 +0000 Subject: [PATCH 13/44] Translated using Weblate (Swedish) Currently translated at 41.6% (154 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/sv/ --- mastodon/src/main/res/values-sv-rSE/strings_sk.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/mastodon/src/main/res/values-sv-rSE/strings_sk.xml b/mastodon/src/main/res/values-sv-rSE/strings_sk.xml index e6b239821..75b51bff3 100644 --- a/mastodon/src/main/res/values-sv-rSE/strings_sk.xml +++ b/mastodon/src/main/res/values-sv-rSE/strings_sk.xml @@ -152,4 +152,5 @@ Svara med annat konto Opublicerade inlägg Utkast sparat + Citerar %s \ No newline at end of file From 1c2183bf1a510d36fbba316483986f8a44c07c80 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 6 Sep 2023 22:29:03 +0200 Subject: [PATCH 14/44] New translations strings.xml (Slovenian) --- .../src/main/res/values-sl-rSI/strings.xml | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/mastodon/src/main/res/values-sl-rSI/strings.xml b/mastodon/src/main/res/values-sl-rSI/strings.xml index 9770923ae..cb81f9631 100644 --- a/mastodon/src/main/res/values-sl-rSI/strings.xml +++ b/mastodon/src/main/res/values-sl-rSI/strings.xml @@ -272,6 +272,7 @@ Ni programa za ravnanje s tem dejanjem Krajevno To so objave, ki plenijo pozornost po Mastodonu. + To so novice, o katerih se govori na Mastodonu. Pokaži nove objave Naloži manjkajoče objave @@ -385,6 +386,7 @@ Sledenje uporabnikom ... + %1$s ne dovoljuje prijav s/z %2$s. Poskusite drugega ali <a>izberite drug strežnik</a>. Vseeno pokaži Ponovno skrij Izberi eno ali več izbir @@ -403,29 +405,51 @@ Dobrodošli na Mastodon Mastodon je decentralizirano družbeno omrežje, kar pomeni, da ga ne upravlja nobeno posamezno podjetje. Sestavljajo ga številni neodvisni strežniki, ki so medsebojno povezani. Kaj so strežniki? + Vsak račun Mastodon gostuje na strežniku — vsak strežnik ima svoje vrednote, pravila in skbrnike. Vseeno je, katerega izberete - sledite in komunicirate lahko z osebbami na poljubnem strežniku. Odpiranje povezav ... + Ta povezava v aplikaciji ni podprta Odjava iz vseh računov Ali se želite odjaviti iz vseh računov? Poskusi znova + Objave ni možno poslati + %s slika + %s video posnetek + %s zvočni posnetek + %s datoteka Slika Video Zvok GIF Datoteka + Dodaj možen odgovor v anketi + Dolžina ankete Slog + Izberite eno možnost + Več možnosti + Izbriši možen odgovor v anketi Slog ankete + Nadomestno besedilo Pomoč + Kaj je nadomestno besedilo (alt text)? Uredi objavo Ni preverjenih povezav + Najdite tiste, ki jih iščete + Za ta iskalni niz ni zadetkov Jezik Privzeto sistemski Zaznavanje jezika Jezika ni moč zaznati Zaznano + Mediji so skriti + Skrita objava + Prijavi objavo + Račun je z drugega strežnika. Ali želite poslati anonimno kopijo prijave tudi na drugi strežnik? + Posreduj k %s + Prijavljeno Označi vse kot prebrano Filtri @@ -433,25 +457,34 @@ Privzeti jezik objave Premor za vse Izklopljeno + Ljudje, ki jim sledite Nihče Omembe in odgovori Zaustavi vsa obvestila + %1$s ob %2$s danes včeraj jutri + Obveščanje se bo nadaljevalo: %s. Nadaljuj zdaj + Pojdi k nastavitvam obvestil O programu Pravila Skrbnik Še več nastavitev Pokaži opozorilo o vsebini Skrij medij, ki je označen kot občutljiv + Števci interakcije objave Ena + Dva + Tri + Štiri Objavi + Ne želite slediti %s? Dejaven Nedejaven Dodaj filter @@ -462,14 +495,21 @@ Izbriši filter Za vedno + %1$s in %2$s + %1$s, %2$s in %3$s + %1$s, %2$s in še dodatnih %3$d Obvestila Javne časovnice Niti in odgovori Profili Naslov Ali želite izbrisati filter »%s«? + Dodaj utišano besedo + Uredi utišano besedo Dodaj Beseda ali besedna zveza + Ali želite izbrisati besedo »%s«? + Izberite Izberi vse Filtriraj po trajanju Po meri From be73c9e81c0cafd8c099631718f9304cdc3f5bf6 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Thu, 7 Sep 2023 02:28:42 +0200 Subject: [PATCH 15/44] New translations strings.xml (Basque) --- mastodon/src/main/res/values-eu-rES/strings.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mastodon/src/main/res/values-eu-rES/strings.xml b/mastodon/src/main/res/values-eu-rES/strings.xml index 2e893b1d4..62fca5584 100644 --- a/mastodon/src/main/res/values-eu-rES/strings.xml +++ b/mastodon/src/main/res/values-eu-rES/strings.xml @@ -11,6 +11,10 @@ %s(e)k bultzatu du %s-(r)i erantzunez Jakinarazpenak + %s(e)k jarraitu zaitu + %s-(e)k jarraitzeko eskaera bidali dizu + %s(e)k zure bidalketa gogoko du + %s(e)k zure bidalketa bultzatu du Partekatu Ezarpenak Argitaratu @@ -32,6 +36,7 @@ Jarraitu Jarraitzen Editatu profila + Partekatu profila Mututu %s Desmututu %s Blokeatu %s From 3020cab243614164635058f435921c90ae4d4ff7 Mon Sep 17 00:00:00 2001 From: LucasGGamerM <71328265+LucasGGamerM@users.noreply.github.com> Date: Thu, 7 Sep 2023 05:03:22 -0300 Subject: [PATCH 16/44] fix: fixes crashes when currentQuery is null and suicide prevention dialog is enabled (#807) cc: @FineFindus --- .../android/fragments/discover/SearchQueryFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/SearchQueryFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/SearchQueryFragment.java index b9332ebf0..8db5c48c2 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/SearchQueryFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/discover/SearchQueryFragment.java @@ -388,7 +388,7 @@ public class SearchQueryFragment extends MastodonRecyclerFragment Date: Thu, 7 Sep 2023 18:28:32 +0200 Subject: [PATCH 17/44] fix: use random account id in notification endpoint (#806) Closes https://github.com/sk22/megalodon/issues/803. This was due to registering with the actual accounId, whilst saving a random one. Once receiving a notification, the id could not be found. --- .../android/api/PushSubscriptionManager.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java index c1253ac3c..046c55531 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java @@ -130,12 +130,11 @@ public class PushSubscriptionManager{ return; } - String endpoint = "https://app.joinmastodon.org/relay-to/fcm/"+deviceToken+"/"+accountID; + String endpoint = "https://app.joinmastodon.org/relay-to/fcm/"+deviceToken+"/"; registerAccountForPush(subscription, endpoint); } public void registerAccountForPush(PushSubscription subscription, String endpoint){ - MastodonAPIController.runInBackground(()->{ Log.d(TAG, "registerAccountForPush: started for "+accountID); String encodedPublicKey, encodedAuthKey, pushAccountID; @@ -164,7 +163,13 @@ public class PushSubscriptionManager{ Log.e(TAG, "registerAccountForPush: error generating encryption key", e); return; } - new RegisterForPushNotifications(endpoint, + + //work-around for adding the randomAccountId + String newEndpoint = endpoint; + if (endpoint.startsWith("https://app.joinmastodon.org/relay-to/fcm/")) + newEndpoint += pushAccountID; + + new RegisterForPushNotifications(newEndpoint, encodedPublicKey, encodedAuthKey, subscription==null ? PushSubscription.Alerts.ofAll() : subscription.alerts, From 23c2c2b5e70927390c339214eb8c0c7ee2eb4f0b Mon Sep 17 00:00:00 2001 From: Andrewblasco Date: Wed, 6 Sep 2023 14:48:50 +0000 Subject: [PATCH 18/44] Translated using Weblate (Spanish) Currently translated at 100.0% (370 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/ --- mastodon/src/main/res/values-es-rES/strings_sk.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mastodon/src/main/res/values-es-rES/strings_sk.xml b/mastodon/src/main/res/values-es-rES/strings_sk.xml index 21826fce0..d1944fe7e 100644 --- a/mastodon/src/main/res/values-es-rES/strings_sk.xml +++ b/mastodon/src/main/res/values-es-rES/strings_sk.xml @@ -331,10 +331,10 @@ GIF Mostrar el contenido Pronombres - Cambiar la línea de tiempo + Cambiar la cronología Instancia Desactivar el indicador de pestaña activa en forma de pastilla - Modo negro intenso + Usar tema negro Buscar en el Fediverso Selecciona un distribuidor No se ha encontrado ningún distribuidor From 996842489d0d5fce954d49471cb9f7d0fc5761d2 Mon Sep 17 00:00:00 2001 From: kallekn Date: Tue, 5 Sep 2023 12:02:02 +0000 Subject: [PATCH 19/44] Translated using Weblate (Finnish) Currently translated at 100.0% (370 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fi/ --- .../src/main/res/values-fi-rFI/strings_sk.xml | 373 ++++++++++++++++++ 1 file changed, 373 insertions(+) diff --git a/mastodon/src/main/res/values-fi-rFI/strings_sk.xml b/mastodon/src/main/res/values-fi-rFI/strings_sk.xml index 177079004..c727880a9 100644 --- a/mastodon/src/main/res/values-fi-rFI/strings_sk.xml +++ b/mastodon/src/main/res/values-fi-rFI/strings_sk.xml @@ -2,4 +2,377 @@ Kiinnitetty Megalodon + Suodatettu: %s + Ota emojireaktiot käyttöön + Näytä emojireaktiot aikajanoissa + Näytetäänkö emojireaktiot aikajanoissa. Jos tämä on pois käytöstä, emojireaktiot näkyvät vain lankaa katsottaessa. + Reagoi emojilla + Järjestelmän näppäimistö seuraavalla painalluksella + Tähän tarvitaan emoji + Kirjoita vastataksesi emojilla + Kesto + Loputon + 5 minuuttia + 30 minuuttia + 1 tunti + 6 tuntia + 1 päivä + 3 päivää + 7 päivää + %s mainitsi sinut + Paikallinen + Koti + Poista ja kirjoita uudestaan + Kiinnitä profiiliin + Irrota profiilista + Poista ja kirjoita viesti uudelleen + Kiinnitä viesti profiiliin + Haluatko kiinnittää tämän viestin profiiliisi\? + Oletko varma että haluat poistaa ja kirjoittaa viestin uudelleen\? + Poista viestin kiinnitys profiilista + Viestiä irrotetaan… + Viestiä kiinnitetään… + Kuvaselitys + Listaamaton + Näytä vastaukset + Listat + Tyhjennä viimeksi käytetyt kielet + Tervetuloa! + Tue Megalodonia + Avaa automaattisesti samat sisältövaroitukset vastauksissa + Ei koskaan + Saman tilin vastauksissa + Kaikkien vastauksissa + Käännä vain avatut viestit + Näytä alkuperäinen + Käytettävissä olevat kielet + Kännetty käyttäen %s + Kieli: %s + Luo profiili + Julkaisuasetukset + Järjestelmä + Pinkki + Väripaletti + Poista ilmoitus + %s tukee käännöksiä! + Sovelluksessa avaaminen ei onnistunut + Jaa tilinä + Poista kaikki ilmoitukset + Poista kaikki + Oletko varma, että haluat poistaa kaikki ilmoitukset\? + Etsitään Fediversestä + Peru tehostus + Tehostuksen näkyvyysasetus + Kopioi linkki viestiin + Avaa toisella tilillä + Kohdetta ei löytynyt + Hae tietoa etäinstansseista + Lähetä edelleen kohteeseen %s + Julkaisemattomat viestit + Vastauksissa kaikille + Ei koskaan + Tallenna luonnos\? + Tallenna muutokset\? + Merkitse luonnokseksi + Ajasta julkaisu + Vuode + Todennettu + Lääkäri + Timantti + Sateenverjo + Lisää aikajana + Viestit joissa on aihetunniste… + ...tai jokin näistä + Kannu + Ei määritelty + Pelkkä teksti + HTML + Sisällön tyyppi + Markdown + Rajoita animaatioiden liikettä + Oletusarvo valinnalle \"Lähetä raportti edelleen\" + Bubble + Merkitse luetuksi + Palvelinilmoitukset + Tietoja instanssista + Näytä vain yksi ilmoitus + Luo + Vastauksena + Oletko varma että haluat poistaa listan \"%s\"\? + Poista seuraajista + Kissa + Kaupunki + Koira + Nasta + Etsitään… + ”Katso uudet viestit” -painike + Syöte + muokattu + Muokatut viestit + Liitä tiedosto + Piilota reaktiopainikkeet + Seurattu tilinä %s + Piilota Julkaise-painike automaattisesti + Seuraa toisena tilinä + Viesti-ilmoitukset + Estä välilehdestä toiseen pyyhkäiseminen + Salli ilmoitusten poistaminen + GIF + Selitys puuttuu + vain maininnat + Glitch local-only mode + Ota tämä käyttöön, jos koti-instanssisi käyttää Glitchiä. Hometown tai Akkoma eivät tarvitse tätä. + Joitakin liitteitä ei ole vielä ladattu valmiiksi. + Ota viestin muotoilu käyttöön + Sisältötyypin oletusarvo + Tämä mahdollistaa uusien viestien sisältötyypin ennaltavalinnan, ohittaa julkaisuasetuksissa asetetun arvon. + Tietoa instanssista ei juuri nyt ole saatavilla + Avaa sovelluksessa + Jaa tai avaa tilinä + Vastauksen näkyvyys + Kaikki vastaukset + Näytä lanka + \"Vastauksena\" -rivi käyttäjäkuvakkeen yläpuolella + Tiivistetty tehostus/vastaus-rivi + + Yksi käyttäjä reagoi näin: %2$s + %1$,d käyttäjää reagoi näin: %2$s + + + viesti + viestiä + + Ääniraita + Vastaukset seuraamilleni + Vastaukset minulle + Näytä laskimet + Megalodon v%1$s (%2$d) + Merkitse media arkaluontoiseksi + Nämä ovat uusimmat viestit yleiseltä aikajanalta. + Listoja joissa on %s + Viestit + Sininen + Ruskea + Punainen + Keltainen + Salli useita valintoja + Käännä + Hai tervehtii sinua! Päästäksesi alkuun kirjoita koti-instanssisi osoite alla olevaan ruutuun. + example.social + Suodatinasetukset + Turvallisuusasetukset + Säännöt + Tietoa sovelluksesta + Lahjoita + Oletko varma, että haluat poistaa ilmoituksen\? + Julkaisupainikkeen teksti + Kirjoita viesti aiheena tämä + Tee kirjamerkki toiselle tilille + Kirjamerkki jo tallennettu + Tykkä toisena tilinä + Tykätty tilinä %s + Tykkäys jo tallennettu + Vastaa toisena tilinä + Luonnos + Ajasta + Poista luonnos + Oletko varma, että haluat poistaa tämän viestiluonnoksen\? + Poista ajastettu julkaisu + Ilmoitukset käyttäjän %s viesteistä poistettu käyttöstä + Näytä tehostukset + Lataa uudet viestit automaattisesti + Luonnos tai ajastettu viesti + Ajastettu ajalle + Luonnos tallennettu + Julkaisu ajastettu + Valittu aika on liian pian + Ajasta tai kirjoita luonnos + Älä ajasta + Älä kirjoita luonnosta + Ota käyttöön UnifiedPush + Valitse jakelija + Jakelijaa ei löydetty + Luo lista + Listan nimi + Näytä vastaukset kohteeseen + listan jäsenet + seuratut tilit + ei mitään + Poista lista + Muokkaa listaa + Listasi + Yleinen + Poista %s seuraajista estämällä ja poistamalla esto välittömästi\? + Poista + Seuraaja poistettu onnistuneesti + Muutoslista + Kuvaselitys puuttuu + Julkaise silti + Poista muistutus mediakuvauksesta + Jos otat käyttöön ilmoitukset joidenkin henkilöiden viesteistä, heidän uudet viestinsä näkyvät täällä. + Aikajanat + Viestit + Lisää + Aikajana + Lista + Aihetunniste + Kiinnitä aikajana + Irrota aikajana + Irrotettu kotinäytöstä + Poista + Kuvake + Sydän + Tähti + Megafoni + Koskettimisto + Nauru + Pii + Väripaletti + Akateeminen päähine + Etiketti + Stetoskooppi + Sää + Pelit + Koodi + Hehkulamppu + Juna + Lehtiä + Urheilu + Aukko + Musiikki + Ihmisiä + Terveys + Tärkeää + Juttelu + Kilpi + Kirja + Polkupyörä + Kartta + Laskukaava + Reppu + Salkku + Tuli + Ötökkä + Puheenjohtajan nuija + Mittari + Kuulokkeet + Ihminen + Maapallo + Muokkaa aikajanaa + ... ja kaikki nämä + ...muttei mitään näistä + Kirjoita aihetunniste… + Kirjoita aihetunnisteet… + Näytetäänkö vain paikalliset viestit\? + Aihetunniste ei voi olla tyhjä + ALT + Ei tuloksia + Tallenna luonnos\? + Ilmoitus kuvaselityksistä + Ilmoitus puuttuvista kuvaselityksistä + Salli pre-release-versiot + vain paikallinen + · + Vain paikallinen instanssi + Jotta tämä toimii, koti-instanssisi on tuettava viestien julkaisemista ainoastaan paikallisesti. Useimmat Mastodonin muunnellut versiot tukevat, mutta Mastodon ei. + rekisteröity + raportoitu + Käyttäjät rekisteröityvät + Lisää sisältövaroitukseen \"re:\" kun vastaat + Korjataanko liitteet\? + BBCode + MFM + Vain vastauksissa muille + Erillinen lista + Tee listasta erillinen + Erillisen listan jäsenet eivät näy kotiaikajanallasi – jos instanssisi tukee tätä. + Näytä lisäasetukset + Piilota lisäasetukset + Näytä sisältö + Pronominit + Vaihda aikajanaa + Instanssi + Ota aktiivisen välilehden pillerinmuotoinen osoitin pois käytöstä + Täysmusta tila + Näytä pronominit aikajanoissa + Näytä pronominit langoissa + Näytä pronominit käyttäjälistoissa + Koti + Etsi + Ilmoitukset + Näytä välilehtien nimet navigointipalkissa + Profiili + Tehostettu tililtä %s + Jo tehostettu + %s reagoi + Uusia raportteja + Palvelimen versio: %s + Kyselyn tulokset + Avaa + Kätke + Kätke pitkien viestien loppuosa + %1$s reagoi %2$s + Vastaus lähetetty käyttäjälle %s + Megalodon %s on ladattu ja valmis asennettavaksi. + Etsi päivityksiä + Ei päivityksiä saatavilla + Seuraamispyynnöt + Megalodon %s on valmis ladattavaksi. + Hyväksy seuraamispyyntö + Avaa sisältövaroitukset aina + Näytä yleinen aikajana + Violetti + Vihreä + Kilpikonna + Jänis + Ilmapallo + Kuva + Botti + Kieli + Sijainti + Mikrofoni + Mikroskooppi + Instanssin ominaisuudet + Etsi Fediversumista + Kysy vahvistus ennen tehostamista + %1$s (%2$s) + Oletko varma, että haluat tyhjentää viimeksi käytettyjen kielten listan\? + Ilmoitukset käyttäjän %s viesteistä otettu käyttöön + Yleinen + Poista ilmoitus + Mahdollistaa viestien sisältötyypin valinnan, esimerkiksi Markdown. Kaikki instanssit eivät tue tätä. + Nämä ovat uusimmat viestit ihmisiltä, joiden tilejä sinun instanssisi isännöi. + Muokkaa Julkaise-painikkeen tekstiä + etäinfoa ei saatavilla + Hylkää seuraamispyyntö + %s ei näytä tukevan käännöksiä. + Profiilin lataaminen %s:n kautta epäonnistui + Salli tekstin rullaus otsikkolistoissa + Etsitään %ssta + Yritä hakea tarkempia tietoja seuraajista, tykkäyksistä ja tehostuksista lataamalla tiedot alkuperäiseltä instanssilta. + Aihetunnisteet joita seuraat + Kirjamerkki tehty tilille %s + Tehosta toisena tilinä + Sama kuvake kaikille ilmoituksille + Oletko varma, että haluat poistaa tämän ajastetun julkaisun\? + Julkaisu tallennetaan luonnoksena. + Julkaisu on ajastettava vähintään 10 minuuttia tulevaisuuteen. + Oletko varma että haluat irrottaa tämän viestin\? + On asennettava jakelijaohjelma jotta UnifiedPush-ilmoitukset toimivat. Lisätietoja: https://unifiedpush.org/ + Näyttää viestien emojireaktiot ja mahdollistaa vuorovaikutuksen niiden kanssa. Jotkin Mastodonin muokatut versiot tukevat tätä, mutta Mastodon ei. + Hae kirjoittamalla tähän + Selitys puuttuu vähintään yhdestä liitteestä. + Kiinnitetty kotinäyttöön + Kahvi + Uutiset + Klaffitaulu + Pitsa + Roskakori + Muokkaa aikananoja + Ota huomioon, että palvelin tekee nämä operaatiot. Niiden yhdistelyä ei välttämättä tueta. + Tämä muokkaa tehostettua viestiä + Haluatko tallentaa muutokset tähän luonnokseen vai julkaista sen nyt\? + Palvelin tukee paikallista julkaisemista + Anna mediatoiston jatkua lisäten uusi raita + Lainaus %s \ No newline at end of file From 79d7873790f9b8a6c321ad9aeb343612a7594d8b Mon Sep 17 00:00:00 2001 From: butterflyoffire Date: Thu, 7 Sep 2023 12:11:53 +0000 Subject: [PATCH 20/44] Translated using Weblate (French) Currently translated at 100.0% (370 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/ --- .../src/main/res/values-fr-rFR/strings_sk.xml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/mastodon/src/main/res/values-fr-rFR/strings_sk.xml b/mastodon/src/main/res/values-fr-rFR/strings_sk.xml index 2d0e839f3..da84044b4 100644 --- a/mastodon/src/main/res/values-fr-rFR/strings_sk.xml +++ b/mastodon/src/main/res/values-fr-rFR/strings_sk.xml @@ -29,7 +29,7 @@ Toujours afficher les avertissements de contenu Désactiver le défilement du texte dans les barres de titre Contribuez à Megalodon - Afficher la timeline fédérée + Afficher le fil fédéré Megalodon Supprimer et rééditer Épingler au profil @@ -141,7 +141,7 @@ Êtes-vous sûr de vouloir supprimer la liste \"%s\" \? Vos listes Fédération - Communauté + Local Accueil Écrivez pour lancer la recherche Supprimer @@ -149,28 +149,28 @@ Journal des modifications Supprimer %s en tant qu\'abonné en le bloquant et en le débloquant immédiatement \? Supprimer comme abonné - Détacher la timeline + Détacher le fil Texte alternatif manquant Au moins une pièce jointe ne contient pas de description. Publier quand même Si vous activez les notifications de message pour certaines personnes, leurs nouveaux messages apparaîtront ici. - Chronologies + Fils Messages Ajouter - Chronologie + Fil Liste Hashtag - Épingler la timeline + Épingler le fil Détachée de l\'accueil - Épinglée à l\'accueil + Épinglé à l’accueil Supprimer Icône Cœur Favoris - Modifier les timelines + Modifier les fils ALT édité - Modifier la timeline + Modifier le fil Modifier un article boosté Désactiver le rappel pour ajouter du texte alternatif Messages modifiés @@ -290,7 +290,7 @@ Ouvrir dans l\'application Partager avec le compte Partager ou ouvrir avec le compte - Ce sont les messages les plus récents du réseau organisés par vos administrateurs d\'instance. + Ce sont les messages les plus récents du réseau organisés par les administrateur·rice·s de votre instance. Bulle Informations sur l\'instance temporairement indisponibles Impossible de l\'ouvrir dans l\'application @@ -311,7 +311,7 @@ Docteur Diamant Parapluie - Ajouter une timeline + Ajouter un fil … ou l\'un d\'entre eux … et chacun d\'entre eux … mais aucun d\'entre eux @@ -327,11 +327,11 @@ Entrez le hashtag… Veuillez noter que le serveur gère ces opérations. Les combiner peut ne pas être prise en charge. Liste exclusive - Les membres d\'une liste exclusive n\'apparaîtront pas sur votre chronologie personnelle - si votre instance le prend en charge. + Les membres d\'une liste exclusive n\'apparaîtront pas sur votre fil principal - si votre instance le prend en charge. Flux Montrer le contenu Pronoms - Changer la chronologie + Changer de fil Instance Mode noir absolu GIF From 0238aa43752ce94abbb42a92c5eb452aad6b79aa Mon Sep 17 00:00:00 2001 From: GunChleoc Date: Wed, 6 Sep 2023 16:10:48 +0000 Subject: [PATCH 21/44] Translated using Weblate (Gaelic) Currently translated at 84.3% (312 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/gd/ --- .../src/main/res/values-gd-rGB/strings_sk.xml | 313 +++++++++++++++++- 1 file changed, 312 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/res/values-gd-rGB/strings_sk.xml b/mastodon/src/main/res/values-gd-rGB/strings_sk.xml index 045e125f3..16f02bd9f 100644 --- a/mastodon/src/main/res/values-gd-rGB/strings_sk.xml +++ b/mastodon/src/main/res/values-gd-rGB/strings_sk.xml @@ -1,3 +1,314 @@ - + Criathraichte: %s + Co-theannaich + Ceadaich iomadh roghainn + Prìnichte + Falamhaich na cànain o chionn goirid + Megalodon + Prìnich ris a’ phròifil + Leudaich rabhaidhean susbainte an-còmhnaidh + Cuir ris na comharran-lìn aig cunntas eile + Seall an tionndadh tùsail + Air eadar-theangachadh le %s + Pailead nan dathan + Sguab às am brath + Sguab às am brath + Tha %s a’ cur taic ri eadar-theangachadh! + Chan eil %s a’ cur taic ri eadar-theangachadh a-rèir coltais. + Falamhaich a h-uile brath + Sguab às na h-uile + A bheil thu cinnteach gu bheil thu airson gach brath fhalamhachadh\? + ’Ga lorg air a’ cho-shaoghal + Na brosnaich tuilleadh + Sìn air adhart gu %s + Ann am freagairtean gu duine sam bith + Ann am freagairtean do chàch a-mhàin + A bheil thu airson a shàbhaladh ’na dhreachd\? + Bìocar + Dotair + Daoimean + Sgàilean + Cuir loidhne-ama ris + Postaichean sa bheil taga hais… + … no gin sam bith dhen fheadhainn seo + … ’s gach fear dhen fheadhainn seo + Sgeideal no dreachd + Seòrsa na susbainte + Ìslich an gluasad sna beòthachaidhean + Brathan-fios + Cuir comharra gun deach a leughadh + Mun ionstans + Sgrìobh rud a thòiseachadh air lorg + Thoir an neach-leantainn air falbh + Thoir air falbh + Baile + Cat + + Coineanach + Bòrd-braig + Duilleach + Deasaich na loidhnichean-ama + ALT + air a dheasachadh + Prìne + Postaichean air an deasachadh + ’Ga lorg… + Putan “Seall na postaichean ùra” + Inbhir + Falaich putanan na h-eadar-ghabhail + Cuir an comas sgroladh teacsa air bàraichean-tiotail + A’ toirt iomradh air %s + Dreachd + Tar-chòmhdachadh fuaime + Leig le meadhanan a tha ’gan cluich cumail a’ dol thairis air a’ chluiche ùr + Luchdaich postaichean ùra gu fèin-obrachail + Seall cunntas na h-eadar-ghabhail + Megalodon v%1$s (%2$d) + Cuir comharra gu bheil am meadhan frionasach + Co-nasgadh + Tha roghainn teacsa a dhìth + Tha ceanglachan no dhà gun tuairisgeul ann. + Foillsich e co-dhiù + Cuir an cuimhneachan air roghainn teacsa dheth + Ma chuireas tu brathan puist an comas do chuid, nochdaidh na postaichean ùra aca an-seo. + Loidhnichean-ama + Postaichean + Cuir ris + Loidhne-ama + Liosta + Taga hais + Prìnich an loidhne-ama + Dì-phrìnich an loidhne-ama + Prìnichte ris an dachaigh + Dì-phrìnichte on dachaigh + Thoir air falbh + Ìomhaigheag + Cridhe + GIF + Post brosnaichte air a dheasachadh + Ceangail faidhle ris + Gun toradh + A bheil thu airson a shàbhaladh ’na dhreachd\? + A bheil thu airson na h-atharraichean agad a shàbhaladh ’nan dreachd no am foillseachadh an-dràsta\? + Chan eil roghainn teacsa ri fhaighinn + Taisbeanair dhan roghainn teacsa + Taisbeanair do roghainn teacsa a dhìth + Cuir na ro-sgaoilidhean an comas + ionadail a-mhàin + le iomradh ort a-mhàin + · + An t-ionstans ionadail a-mhàin + Gleusan an ionstans + Cuiridh am frithealaiche taic ri postadh gu h-ionadail + Feumaidh an ionstans-dachaigh agad taic a chur ri postaichean a bhios ionadail a-mhàin. Cuiridh a’ mhòrchuid de thionndaidhean atharraichte de Mhastdon taic ri seo ach cha chuir Mastodon àbhaisteach. + Modh ionadail a-mhàin aig Glitch + Cuir seo an comas ma tha an t-ionstans-dachaigh agad a’ ruith Glitch. Chan eil feum air seo airson Hometown no Akkoma. + HTML + Dearbh mus dèan thu brosnachadh + %1$s (%2$s) + Brosnaich le cunntas eile + Loidhne brosnachaidh/freagairt dhùmhlaichte + Seo na postaichean as ùire on lìonra a tha rianairean an ionstans agad a’ curaideachadh. + Gabh ris an iarrtas leantainn + Diùlt an t-iarrtas leantainn + Liostaichean le %s + Pinc + Purpaidh + Uaine + Gorm + Donn + Dearg + Buidhe + A bheil thu cinnteach gu bheil thu airson na cànain o chionn goirid fhalamhachadh\? + Fàilte! + Tha an cearban ’gad fhàilteachadh! Airson tòiseachadh, cuir a-steach ainm àrainne an ionstans-dhachaigh agad gu h-ìosal. + ball-eisimpleir.social + Suidhich pròifil + Roghainnean postaidh + Rèitich na criathragan + Roghainnean tèarainteachd + Riaghailtean + Teacsa a’ phutain-fhoillseachaidh + Gnàthaich teacsa a’ phutain-fhoillseachaidh + Meaga-fòn + Micreofon + Micreosgop + Meur-chlàr + Cofaidh + Gàire + Naidheachdan + Pi + Pailead nan dathan + Currac sgoilearachd + Taga + Steatasgop + Aimsir + Geamannan + Còd + Bolgan solais + Trèana + Spòrs + Thoir an aire gur e am frithealaiche a làimhsicheas na gnìomhan seo. Dh’fhaoidte nach obraich an cur ri chèile aca. + A bheil thu airson na postaichean ionadail a shealltainn a-mhàin\? + Chan fhaod an taga hais a bhith falamh + air a chlàradh + air gearan a dhèanamh + Fhreagair %1$s le %2$s + Fhreagair %s + Cleachdaichean a’ clàradh + Gearanan ùra + Toraidhean cunntais-bheachd + Cuir ro-leasachan “re:” ris an rabhadh susbainte nuair a bhios tu a’ freagairt + Leudaich + Co-theannaich postaichean glè fhada + A bheil thu airson na ceanglachain a chàradh\? + Chan eil luchdadh suas nan ceanglachan uile deiseil. + Lean le cunntas eile + ’Ga leantainn le %s + Falaich putan an sgrìobhaidh gu fèin-obrachail + Chaidh freagairt a chur gu %s + San fhreagairt + Loidhne nam freagairtean os cionn an avatar + Seall an snàithlean + Cha deach a shònrachadh + Teacsa lom + Markdown + BBCode + MFM + Cuir fòrmatadh nam postaichean an comas + Tionndadh an fhrithealaiche: %s + Sguab às is dèan dreachd ùr air + Sguab às is dèan dreachd ùr air a’ phost + A bheil thu cinnteach gu bheil thu airson am post seo a sguabadh às ’s dreachd ùr a dhèanamh air\? + Prìnich am post ris a’ phròifil + A bheil thu airson am post seo a phrìneachadh ris a’ phròifil agad\? + A’ prìneachadh a’ phuist… + Dì-phrìnich on phròifil + Dì-phrìnich am post on phròifil + A bheil thu cinnteach gu bheil thu airson am post seo a dì-phrìneachadh\? + A’ dì-phrìneachadh a’ phuist… + Tuairisgeul an deilbh + Falaichte o liostaichean + Seall na freagairtean + Faicsinneach nam freagairtean + A h-uile freagairt + Freagairtean dhan luchd-leantainn agam + Freagairtean dhomhsa + Seall na brosnachaidhean + Chuir thu brathan nam post air dha %s + Chuir thu brathan nam post dheth dha %s + Seo na postaichean as ùire leis na daoine sa cho-nasgadh agad. + Tha Megalodon %s deiseil ri luchdadh a-nuas. + Chaidh Megalodon %s a luchdadh a-nuas is tha e deiseil ri stàladh. + Thoir sùil airson ùrachadh + Chan eil ùrachadh ri fhaighinn + Liostaichean + Iarrtasan leantainn + Cuidich le leasachadh Megalodon + Seall an loidhne-ama cho-naisgte + Postaichean + Brathan puist + An siostam + Eadar-theangaich + Cànan: %s + Cànain ri am faighinn + Cuir grad-shlaighdeadh eadar tabaichean à comas + Mun aplacaid + Thoir tabhartas dhuinn + A bheil thu cinnteach gu bheil thu airson am brath seo a sguabadh às\? + Cuir sguabadh às nam brathan an comas + Na eadar-theangaich ach postaichean a chaidh fhosgladh + ’Ga lorg air %s + Chaidh a bhrosnachadh mar %s + Brosnaich le so-fhaicsinneachd + Postaich mu dhèidhinn seo + Tagaichean hais ’gan leantainn + Dèan lethbhreac dhen cheangal dhan phost + Fosgail le cunntas eile + Cha deach an goireas a lorg + Chaidh a chur ris na comharran-lìn mar %s + Tha seo ’na chomharra-lìn mu thràth + Cuir ris na h-annsachdan aig cunntas eile + Chaidh a chur ris na h-annsachdan mar %s + Tha seo ’na annsachd mu thràth + Tha seo ’ga bhrosnachadh mu thràth + Freagair le cunntas eile + Ìomhaigheag chunbhalach dhan a h-uile brath + Postaichean gun chur + Sgeidealaich + Sguab às an dreachd + A bheil thu cinnteach gu bheil thu airson an dreachd seo a sguabadh às\? + Sguab às am post sgeidealaichte + A bheil thu cinnteach gu bheil thu airson am post sgeidealaichte seo a sguabadh às\? + Dèan dreachd no sgeidealaich + Thèid am post a shàbhaladh mar dhreachd. + Air an sgeideal + Chaidh an dreachd a shàbhaladh + Chaidh am post a chur air an sgeideal + Tha àm an sgeideil ro thràth + Feumaidh post sgeidealaichte a bhith 10 mionaidean san àm ri teachd air a char as tràithe. + A bheil thu airson na dh’atharraich thu a shàbhaladh\? + Cuir comharra gur e dreachd a th’ ann + Cuir am post air an sgeideal + Na cuir air an sgeideal + Na dèan dreachd dheth + Na seall ach aon bhrath + Cleachd UnifiedPush + Tagh sgaoileadair + Cha deach sgaoileadair a lorg + Feumaidh tu sgaoileadair a stàladh mus obraich brathan le UnifiedPush. Airson barrachd fiosrachaidh, tadhail air https://unifiedpush.org/ + Cruthaich + Cruthaich liosta + Ainm na liosta + Seall na freagairtean gu + buill na liosta + cleachdaichean a leanas tu + na seall idir + Sguab às an liosta + A bheil thu cinnteach gu bheil thu airson an liosta “%s” a sguabadh às\? + Deasaich an liosta + Na liostaichean agad + Dachaigh + Ionadail + Co-nasgadh + Do cuideachd + A bheil thu airson %s a thoirt air falbh ’na neach-leantainn le bacadh ’s dì-bhacadh sa bhad\? + Chaidh an neach-leantainn a thoirt air falbh + Loga nan atharraichean + Rionnag + Turtar + Bailiùn + Dealbh + Bot + Cànan + Ionad + Fosgladh + Ceòl + Daoine + Slàinte + Cudromach + Cabadaich + Sgiath + Leabhar + Baidhseagal + Mapa + Foirmle matamataig + Màla-droma + Màileid-oifise + Teine + Biastag + Pizza + Casar + Gèidse + Cluais-fhòn + Daonna + Cruinne + Leabaidh + Biona ath-chuairteachaidh + Air a dhearbhadh + Deasaich an loidhne-ama + … ach gun gin sam bith dhen fheadhainn seo + Cuir a-steach taga hais… + Cuir a-steach tagaichean hais… + \ No newline at end of file From c8df9e085e0cc18903409415fbbbfd8b1afae00b Mon Sep 17 00:00:00 2001 From: Arkxv Date: Mon, 4 Sep 2023 10:58:30 +0000 Subject: [PATCH 22/44] Translated using Weblate (Japanese) Currently translated at 78.3% (290 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ja/ --- .../src/main/res/values-ja-rJP/strings_sk.xml | 272 ++++++++++++++++++ 1 file changed, 272 insertions(+) diff --git a/mastodon/src/main/res/values-ja-rJP/strings_sk.xml b/mastodon/src/main/res/values-ja-rJP/strings_sk.xml index fb26d70fb..befa74f5a 100644 --- a/mastodon/src/main/res/values-ja-rJP/strings_sk.xml +++ b/mastodon/src/main/res/values-ja-rJP/strings_sk.xml @@ -19,4 +19,276 @@ すべての返信 音声のオーバーレイ 既に再生されているメディアを停止することなく、新たなメディアを再生できるようにします + 7日 + 3日 + 1日 + 6時間 + 1時間 + 30分 + 5分 + 無期限 + 絵文字で反応 + 期間 + 絵文字リアクションを有効にする + 投稿 + ホーム + 翻訳 + オリジナルを表示 + 複数回答を許可 + 最近使用した言語を消去 + ブーストを表示 + Megalodon + ようこそ! + サメはあなたに敬意を表します! まずは、あなたの所属するインスタンスのドメイン名を以下に入力してください。 + フォローリクエスト + 連合タイムラインを表示 + 他のアカウントでブックマークを追加 + %s でブックマークを追加しました + 開いた投稿のみ翻訳 + ブックマークを追加済みです + 本当に最近使用した言語を消去しますか? + %1$s (%2$s) + プロフィールを設定 + フィルター設定 + セキュリティ設定 + ルール + アプリについて + 寄付 + 投稿設定 + システム + ピンク + パープル + グリーン + カラーパレット + ブルー + ブラウン + 通知を削除 + 通知を削除 + 本当にこの通知を削除しますか? + %s は翻訳機能をサポートしていません。 + すべての通知をクリア + すべて削除 + 本当にすべての通知をクリアしますか? + Fediverse で調べる + ブーストを取り消す + ブーストの公開範囲 + 引用して投稿 + %s で調べる + 他のアカウントで開く + リソースが見つかりません + 下書きを保存しますか? + 変更を保存しますか? + 下書きとしてマーク + 予約投稿 + 予約しない + 下書きに保存しない + ベッド + ごみ箱 + 認証済み + 医者 + ビーカー + ダイヤモンド + + タイムラインを追加 + ハッシュタグを含む投稿… + アニメーションの動きを減らす + バブル + お知らせ + 既読にする + インスタンスについて + 通知を1つのみ表示 + 作成 + リストを作成 + リストの名前 + 入力して検索を開始 + 削除 + フォロワーの削除に成功しました + 変更履歴 + 代替テキストがありません + %s をリストに追加/削除 + + 画鋲 + ALT + 編集済み + 編集済みの投稿 + タイムラインを編集 + 検索しています… + “新しい投稿を見る” ボタン + タイトルバーのテキストスクロールを有効にする + 投稿通知 + タブ間のスワイプを無効にする + 通知の削除を有効にする + GIF + この下書きの変更を保存しますか? または今すぐ公開しますか? + 代替テキストなし + 自分への返信 + %s を引用 + + 投稿 + + 新しい投稿を自動で読み込む + インタラクション数を表示 + Megalodon v%1$s (%2$d) + メディアを閲覧注意としてマーク + %s からの投稿通知をオフにしました + 連合 + Megalodon %s をダウンロードできます。 + Megalodon %s がダウンロードされ、インストールできます。 + アップデートを確認 + アップデートはありません + フォローリクエストを承認 + コンテンツ警告を常に展開 + レッド + %s を使用して翻訳されました + 言語: %s + フォロー中のハッシュタグ + %s でお気に入りに登録しました + お気に入りに登録済みです + 他のアカウントでブースト + 本当にこの予約済みの投稿を削除しますか? + 下書きまたは予約 + 投稿は下書きとして保存されます。 + 予約日時 + 下書きを保存しました + 投稿を予約しました + 投稿は10分以上後の予約である必要があります。 + UnifiedPush を使用 + ディストリビューターを選択 + フォローされたユーザー + リストを削除 + 本当にリスト “%s” を削除しますか? + リストを編集 + あなたのリスト + ローカル + 連合 + 代替テキストを追加するためのリマインダーを無効にする + タイムライン + 投稿 + 追加 + タイムライン + リスト + ハッシュタグ + タイムラインを固定 + ホームへの固定が解除されました + 削除 + アイコン + ハート + + + + 風船 + ボット + 言語 + 画像 + 場所 + メガホン + マイク + 顕微鏡 + キーボード + コーヒー + ニュース + 角帽 + タグ + 聴診器 + 天気 + ゲーム + コード + 電球 + 電車 + カチンコ + + スポーツ + …そしてこれらすべて + …しかしいずれもない + ハッシュタグを入力… + ハッシュタグを入力… + パイ + レンズ + 検索結果なし + 下書きを保存しますか? + ローカルのみ + · + ローカルインスタンスのみ + 高度な設定を表示 + ホーム + スレッドに代名詞を表示 + タイムラインに代名詞を表示 + 真っ黒なダークテーマ + インスタンス + タイムライン切替 + 代名詞 + ナビゲーションバーにタブラベルを表示 + プロフィール + 通知 + これらはあなたが所属するインスタンスの管理者によってキュレーションされたネットワークからの最新の投稿です。 + Megalodon に貢献する + すべての通知でアイコンを統一 + %s に転送 + 未送信の投稿 + 下書き + 公開ボタンのテキスト + 公開ボタンのテキストをカスタマイズ + 投稿のリンクをコピー + ブースト済みです + 下書きを削除 + 予約 + 予約済みの投稿を削除 + イエロー + 使用可能な言語 + example.social + 他のアカウントで返信 + チャット + + + 自転車 + 地図 + 数式 + リュックサック + ブリーフケース + + + ピザ + 小槌 + ヘッドフォン + 人間 + 地球儀 + タイムラインを編集 + 計器 + ファイルを添付 + 音楽 + 人々 + 健康 + 重要 + Fediverse を検索 + %s からの投稿通知をオンにしました + これらはあなたが所属するインスタンス内のユーザーによる最新の投稿です。 + リスト + %s は翻訳機能をサポートしています! + 他のアカウントでお気に入りに登録 + …またはこれらのいずれか + フォロワーを削除 + タイムラインの固定を解除 + カラーパレット + フォローリクエストを却下 + %s をブロックしてすぐにブロックを解除して、フォロワーを削除しますか? + ホームに固定されました + + %s でブーストしました + + 本当にこの下書きの投稿を削除しますか? + 笑い + ローカルの投稿のみを表示しますか? + ブーストした投稿の編集 + 予約日時が早すぎます + 予約または下書き + ディストリビューターが見つかりません + プレリリースを有効にする + 検索 + メンションされたユーザーのみ + ユーザーリストに代名詞を表示 + UnifiedPush による通知を動作させるにはディストリビューターをインストールする必要があります。詳しくは https://unifiedpush.org/ をご覧ください + リストのメンバー + サーバーはローカルのみの投稿をサポートしています + コンテンツを表示 + 高度な設定を非表示にする \ No newline at end of file From 20f41ce7c941fb9b9b5f9847c44b0598be6f2d02 Mon Sep 17 00:00:00 2001 From: butterflyoffire Date: Thu, 7 Sep 2023 09:55:26 +0000 Subject: [PATCH 23/44] Translated using Weblate (Kabyle) Currently translated at 0.5% (2 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/kab/ --- mastodon/src/main/res/values-kab/strings_sk.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mastodon/src/main/res/values-kab/strings_sk.xml b/mastodon/src/main/res/values-kab/strings_sk.xml index 045e125f3..e9e123052 100644 --- a/mastodon/src/main/res/values-kab/strings_sk.xml +++ b/mastodon/src/main/res/values-kab/strings_sk.xml @@ -1,3 +1,4 @@ - + Megalodon + \ No newline at end of file From 4ddfa483d4a7828ed3aa8fbee0cff86ea3d1a666 Mon Sep 17 00:00:00 2001 From: ppnplus Date: Mon, 4 Sep 2023 08:30:19 +0000 Subject: [PATCH 24/44] Translated using Weblate (Thai) Currently translated at 23.5% (87 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/th/ --- mastodon/src/main/res/values-th-rTH/strings_sk.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mastodon/src/main/res/values-th-rTH/strings_sk.xml b/mastodon/src/main/res/values-th-rTH/strings_sk.xml index 1d940f50b..efae29384 100644 --- a/mastodon/src/main/res/values-th-rTH/strings_sk.xml +++ b/mastodon/src/main/res/values-th-rTH/strings_sk.xml @@ -75,4 +75,15 @@ ปิดใช้การปัดระหว่างแท็บ Megalodon รุ่น %s ดาวน์โหลดเสร็จและพร้อมให้ติดตั้งแล้ว ล้างการแจ้งเตือนทั้งหมด + %s รองรับการแปล! + ดูเหมือนว่า %s ไม่รองรับการแปล + กำลังค้นหาบนเฟดิเวิร์ส + เลิกดันโพสต์ + ดันด้วยการมองเห็น + โพสต์เกี่ยวกับสิ่งนี้ + คัดลอกลิงก์ไปยังโพสต์ + แฮชแท็กที่คุณติดตาม + กำลังค้นหาบน %s + เปิดด้วยบัญชีอื่น + ไม่พบทรัพยากร \ No newline at end of file From e4f13c900b01199b761347c65ca841433d88f699 Mon Sep 17 00:00:00 2001 From: butterflyoffire Date: Thu, 7 Sep 2023 11:22:42 +0000 Subject: [PATCH 25/44] Translated using Weblate (Arabic) Currently translated at 67.5% (250 of 370 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/ar/ --- .../src/main/res/values-ar/strings_sk.xml | 204 ++++++++++++++++++ 1 file changed, 204 insertions(+) diff --git a/mastodon/src/main/res/values-ar/strings_sk.xml b/mastodon/src/main/res/values-ar/strings_sk.xml index 3c0c1cd11..fbf6a6e3d 100644 --- a/mastodon/src/main/res/values-ar/strings_sk.xml +++ b/mastodon/src/main/res/values-ar/strings_sk.xml @@ -45,4 +45,208 @@ الرئيسي 30 دقيقة الرئيسي + المنشورات التي تحتوي على الوسم … + عُدِّل + المنشورات المُعدَّلة + نص زر النشر + حذف الإشعار + إنَّ %s يدعم خدمة الترجمة! + رُدّ بواسطة حساب آخَر + أتريد حفظ التعديلات؟ + لا أحد + تم فك التثبيت مِن الرئيسي + إخفاء أزرار التفاعلات + جعلُ القائمة حصرية + أضفه إلى المفضلة بحساب آخَر + فقاعة + حساب آلي + لوحة المفاتيح الموسيقية + الخادم المحلي فقط + تعطيل تذكيري لإضافة نص بديل + المعلومات البُعدية غير متوفرة + إظهار الميزات المتقدمة + نوع المحتوى + Megalodon + القائمة + تعديل الخيوط الزمنية + موجز اخباري + GIF + المحلي فقط + مدى ظهور الردود + إظهار عدد التفاعلات + Megalodon نسخة %1$s (%2$d) + تعيين الوسائط كحساسة + ميگالودون %s متوفّر للتنزيل. + القِرش يحييك! للبداية ، رجاءً قم بإدخال اسم نطاق خادمك الخاص هنا. + النظام + وردي + أرجواني + أخضر + أزرق + قهوي + أحمر + أصفر + السماح بخيارات متعددة + ترجمة + إظهار الأصلي + تُرجِم بواسطة %s + اللغة: %s + اللغات المتوفرة + مسح آخر اللغات المستخدَمة + مرحبًا! + example.social + إعداد الملف التعريفي + تفضيلات النشر + ضبط عوامل التصفية + إعدادات الأمان + القواعد + عن التطبيق + التبرع + حذف الإشعار + حذف كافة الإشعارات + حذف الكل + تخصيص نص زر النشر + ترجمة المنشورات المفتوحة فقط + البحث عنه في الفديفرس + البحث في %s + أنشُر حول الموضوع + الوسوم التي تتبعها + انسخ رابط المنشور + افتحه بواسطة حساب آخَر + المنشورات غير المُرسَلَة + المسودة + برمجة + احذف المسودّة + تم حفظ المسودّة + أتريد حفظ المسودّة؟ + لا يبدو أنّ %s يدعم الترجمة. + أضفه إلى الفواصل المرجعية بحساب آخَر + إعادة التوجيه إلى %s + سيُحفَظ المنشور كمسودّة. + تعيينه كمسودّة + برمَجة المنشور + تعديل القائمة + قوائمك + الإعلانات + تعيينه كمقروء + عن مثيل الخادم + إنشاء + إنشاء قائمة + اسم القائمة + أعضاء القائمة + المستخدِمون المتابَعون + احذف القائمة + الفديرالية + إظهار إشعار واحد فقط + استخدم UnifiedPush + اختر مُزوِّدًا + أمُتأكد مِن أنك تُريد حذف قائمة \"%s\"؟ + أكتب شيئا ما لمواصلة البحث + سِجِلّ التغييرات + ينقصه نص بديل + أنشُره على أي حال + الخيوط الزمنية + المنشورات + إضافة + تنحية من بين متابعيك + مثبَّت على الرئيسي + … أو أي من هذه + أدخِل الوسم … + أدخِل الوسوم … + الخيط الزمني + الوسم + تثبيت الخيط الزمني + فكّ تثبيت الخيط الزمني + حذف + أيقونة + قلب + نجمة + مدينة + قط + كلب + أرنب + سلحفاة + سرير + سلة مهملات + طبيب + إضافة خيط زمني + كرة + صورة + اللغة + المكان + المايكروفون + مجهر + قهوة + ضحك + أخبار + سمّاعة + الطقس + ألعاب + ألماس + مطرية + أتريد إظهار المنشورات المحلية فقط؟ + ALT + أرفِق ملفًا + البحث… + لا نص بديل متوفر + · + ميزات مثيل الخادم + تم الإبلاغ عنه + إصدار الخادم: %s + توسيع + متابعته بواسطة حساب آخَر + النوع المبدئي للمحتوى + افتحه بواسطة التطبيق + قائمة حصرية + إخفاء الميزات المتقدمة + إظهار المحتوى + الضمائر + لا نتائج + أتريد حفظ المسودّة؟ + غير محدد + شاركه عبر حساب + ردود مِن نفس الناشر + مثيل الخادم + الوضع الأسود الداكن + إظهار الضمائر على الخيوط الزمنية + إظهار الضمائر على خيوط المحادثات + البحث + الملف التعريفي + التأكيد قبل إعادة النشر + %1$s (%2$s) + إلغاء إعادة النشر + أعد النشر بمدى الظهور التالي + أعد النشر بحساب آخَر + تمت إعادة النشر كـ %s + إظهار خيط المحادثة + إبلاغات جديدة + اطوي + الكشف عن تحذيرات المحتوى دائما + المنشورات + تم تنزيل ميگالودون %s وهو جاهز للتنصيب. + تعديل الخيط الزمني + دبوس + أوراق شجر + رياضة + موسيقى + ناس + صحة + مهم + دردشة + إنسان + كرة أرضية + مصباح + قطار + درع + كتاب + دراجة هوائية + خريطة + نار + حشرة + بيتزا + مطرقة + سمّاعات + نتيجة استطلاع الرأي + تمت تصفيته: %s + البحث في الفديفرس \ No newline at end of file From 2314871246acd0aa8da0de6216a5833ff0860696 Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 17:36:17 +0200 Subject: [PATCH 26/44] temporary fix for pre-release users --- .../org/joinmastodon/android/api/PushSubscriptionManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java index 046c55531..44cbeac9f 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java +++ b/mastodon/src/main/java/org/joinmastodon/android/api/PushSubscriptionManager.java @@ -97,7 +97,7 @@ public class PushSubscriptionManager{ deviceToken=getPrefs().getString("deviceToken", null); int tokenVersion=getPrefs().getInt("version", 0); if(!TextUtils.isEmpty(deviceToken) && tokenVersion==BuildConfig.VERSION_CODE){ - registerAllAccountsForPush(false); + registerAllAccountsForPush(true); // TODO: revert this before release return; } Log.i(TAG, "tryRegisterFCM: no token found or app was updated. Trying to get push token..."); From 90f1f464dcff3e7a40620a19a22c427f135298d3 Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 17:41:30 +0200 Subject: [PATCH 27/44] reset strings.xml to upstream --- mastodon/src/main/res/values-de-rDE/strings.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/mastodon/src/main/res/values-de-rDE/strings.xml b/mastodon/src/main/res/values-de-rDE/strings.xml index d203dfe0f..c0a48dd37 100644 --- a/mastodon/src/main/res/values-de-rDE/strings.xml +++ b/mastodon/src/main/res/values-de-rDE/strings.xml @@ -43,8 +43,8 @@ %s sperren %s entsperren %s melden - %s blockieren - %s nicht mehr blockieren + %s sperren + %s nicht mehr sperren %,d Beitrag %,d Beiträge @@ -98,12 +98,12 @@ Nicht mehr stummschalten Konto sperren Domain sperren - Bestätigen, um %s zu blockieren + Bestätigen, um %s zu sperren Sperren Konto nicht mehr sperren Domain nicht mehr blockieren - Bestätigen, um %s nicht mehr zu blockieren - Nicht mehr blockieren + Bestätigen, um Sperre von %s aufzuheben + Sperre aufheben Blockiert Abstimmen Löschen @@ -387,6 +387,7 @@ Willkommen auf Mastodon Mastodon ist ein dezentrales, soziales Netzwerk. Das bedeutet, dass es nicht von einem einzigen Unternehmen kontrolliert wird. Das Netzwerk besteht aus unabhängig voneinander betriebenen Servern, die miteinander verbunden sind. Was sind Server? + Link wird geöffnet… Dieser Link wird in der App nicht unterstützt Von allen Konten abmelden From de5165434d2420398fe5d4df862193559b8e8cc5 Mon Sep 17 00:00:00 2001 From: butterflyoffire Date: Fri, 8 Sep 2023 05:10:49 +0000 Subject: [PATCH 28/44] Translated using Weblate (Arabic) Currently translated at 16.6% (3 of 18 strings) Translation: Megalodon/metadata Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/ar/ --- metadata/ar/short_description.txt | 2 +- metadata/ar/title.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 metadata/ar/title.txt diff --git a/metadata/ar/short_description.txt b/metadata/ar/short_description.txt index d259a8c4e..69c3b02a5 100644 --- a/metadata/ar/short_description.txt +++ b/metadata/ar/short_description.txt @@ -1 +1 @@ -Mastodon for Android but it's pink and has more features \ No newline at end of file +Mastodon for Android but it's pink and has more features diff --git a/metadata/ar/title.txt b/metadata/ar/title.txt new file mode 100644 index 000000000..cf946e02c --- /dev/null +++ b/metadata/ar/title.txt @@ -0,0 +1 @@ +Megalodon From efa003a9a5a03e08d12d2ba2c1f9111b6e632825 Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 21:16:42 +0200 Subject: [PATCH 29/44] implement bidirectional missing posts gap --- .../android/GlobalUserPreferences.java | 15 ---- .../fragments/BaseStatusListFragment.java | 2 +- .../fragments/HomeTimelineFragment.java | 15 +--- .../fragments/StatusEditHistoryFragment.java | 2 +- .../settings/SettingsBehaviorFragment.java | 24 +---- .../displayitems/FooterStatusDisplayItem.java | 18 +--- .../ui/displayitems/GapStatusDisplayItem.java | 59 +++++++++--- .../ReblogOrReplyLineStatusDisplayItem.java | 9 +- .../ui/displayitems/StatusDisplayItem.java | 8 +- .../ui/drawables/SawtoothTearDrawable.java | 6 +- .../android/ui/utils/UiUtils.java | 37 ++++++-- .../src/main/res/drawable/bg_timeline_gap.xml | 3 +- .../res/drawable/bg_timeline_gap_border.xml | 9 ++ ...c_fluent_chevron_double_down_20_filled.xml | 3 + .../ic_fluent_chevron_double_up_20_filled.xml | 3 + .../src/main/res/layout/display_item_gap.xml | 89 +++++++++++++++---- mastodon/src/main/res/values/strings_sk.xml | 6 ++ 17 files changed, 191 insertions(+), 117 deletions(-) create mode 100644 mastodon/src/main/res/drawable/bg_timeline_gap_border.xml create mode 100644 mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml create mode 100644 mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml diff --git a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java index ca36903ac..4524c8cef 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java +++ b/mastodon/src/main/java/org/joinmastodon/android/GlobalUserPreferences.java @@ -34,7 +34,6 @@ public class GlobalUserPreferences{ public static boolean useCustomTabs; public static boolean altTextReminders, confirmUnfollow, confirmBoost, confirmDeletePost; public static ThemePreference theme; - public static LoadMissingPostsPreference loadMissingPosts; // MEGALODON public static boolean trueBlackTheme; @@ -124,7 +123,6 @@ public class GlobalUserPreferences{ displayPronounsInUserListings=prefs.getBoolean("displayPronounsInUserListings", true); overlayMedia=prefs.getBoolean("overlayMedia", false); showSuicideHelp=prefs.getBoolean("showSuicideHelp", true); - loadMissingPosts=LoadMissingPostsPreference.values()[prefs.getInt("loadMissingItems", 0)]; if (prefs.contains("prefixRepliesWithRe")) { prefixReplies = prefs.getBoolean("prefixRepliesWithRe", false) @@ -184,7 +182,6 @@ public class GlobalUserPreferences{ .putBoolean("displayPronounsInUserListings", displayPronounsInUserListings) .putBoolean("overlayMedia", overlayMedia) .putBoolean("showSuicideHelp", showSuicideHelp) - .putInt("loadMissingItems", loadMissingPosts.ordinal()) .apply(); } @@ -279,16 +276,4 @@ public class GlobalUserPreferences{ ALWAYS, TO_OTHERS } - - public enum LoadMissingPostsPreference{ - NEWEST_FIRST(R.string.sk_load_missing_posts_newest_first), // Downwards, default - OLDEST_FIRST(R.string.sk_load_missing_posts_oldest_first); // Upwards - - @StringRes - public int labelRes; - - LoadMissingPostsPreference(@StringRes int labelRes){ - this.labelRes=labelRes; - } - } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java index 0cb77d37d..da2f43242 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/BaseStatusListFragment.java @@ -617,7 +617,7 @@ public abstract class BaseStatusListFragment exten } } - public void onGapClick(GapStatusDisplayItem.Holder item){} + public void onGapClick(GapStatusDisplayItem.Holder item, boolean downwards){} public void onWarningClick(WarningFilteredStatusDisplayItem.Holder warning){ int startPos = warning.getAbsoluteAdapterPosition(); diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java index 9a70f75e4..92d0bb076 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/HomeTimelineFragment.java @@ -8,23 +8,18 @@ import android.view.View; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; -import org.joinmastodon.android.E; import org.joinmastodon.android.GlobalUserPreferences; -import org.joinmastodon.android.R; import org.joinmastodon.android.api.requests.markers.SaveMarkers; import org.joinmastodon.android.api.requests.timelines.GetHomeTimeline; import org.joinmastodon.android.api.session.AccountLocalPreferences; import org.joinmastodon.android.api.session.AccountSessionManager; -import org.joinmastodon.android.events.StatusCreatedEvent; import org.joinmastodon.android.model.CacheablePaginatedResponse; import org.joinmastodon.android.model.FilterContext; import org.joinmastodon.android.model.Status; import org.joinmastodon.android.model.TimelineMarkers; import org.joinmastodon.android.ui.displayitems.GapStatusDisplayItem; import org.joinmastodon.android.ui.displayitems.StatusDisplayItem; -import org.joinmastodon.android.utils.StatusFilterPredicate; -import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -36,7 +31,6 @@ import java.util.stream.Collectors; import me.grishka.appkit.api.Callback; import me.grishka.appkit.api.ErrorResponse; import me.grishka.appkit.api.SimpleCallback; -import me.grishka.appkit.utils.V; public class HomeTimelineFragment extends StatusListFragment { private HomeTabFragment parent; @@ -181,19 +175,16 @@ public class HomeTimelineFragment extends StatusListFragment { } @Override - public void onGapClick(GapStatusDisplayItem.Holder item){ + public void onGapClick(GapStatusDisplayItem.Holder item, boolean downwards){ if(dataLoading) return; GapStatusDisplayItem gap=item.getItem(); gap.loading=true; - V.setVisibilityAnimated(item.progress, View.VISIBLE); - V.setVisibilityAnimated(item.text, View.GONE); dataLoading=true; - GlobalUserPreferences.LoadMissingPostsPreference preference = GlobalUserPreferences.loadMissingPosts; String maxID = null; String minID = null; - if (preference==GlobalUserPreferences.LoadMissingPostsPreference.NEWEST_FIRST) { + if (downwards) { maxID = item.getItemID(); } else { int gapPos=displayItems.indexOf(gap); @@ -220,7 +211,7 @@ public class HomeTimelineFragment extends StatusListFragment { AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomeTimeline(Collections.singletonList(gapStatus), false); } }else{ - if(preference==GlobalUserPreferences.LoadMissingPostsPreference.NEWEST_FIRST) { + if(downwards) { Set idsBelowGap=new HashSet<>(); boolean belowGap=false; int gapPostIndex=0; diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java index f3e7b3d49..aa52dda9a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/StatusEditHistoryFragment.java @@ -144,7 +144,7 @@ public class StatusEditHistoryFragment extends StatusListFragment{ } } String sep = getString(R.string.sk_separator); - items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" "+sep+" "+date, Collections.emptyList(), 0, null, null)); + items.add(0, new ReblogOrReplyLineStatusDisplayItem(s.id, this, action+" "+sep+" "+date, Collections.emptyList(), 0, null, null, s)); items.add(1, new DummyStatusDisplayItem(s.id, this)); } return items; diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java index 2c28bd37c..e947519aa 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/settings/SettingsBehaviorFragment.java @@ -23,7 +23,7 @@ import java.util.stream.IntStream; import java.util.stream.Stream; public class SettingsBehaviorFragment extends BaseSettingsFragment implements HasAccountID{ - private ListItem languageItem, loadMissingPostsItem; + private ListItem languageItem; private CheckableListItem altTextItem, playGifsItem, customTabsItem, confirmUnfollowItem, confirmBoostItem, confirmDeleteItem; private MastodonLanguage postLanguage; private ComposeLanguageAlertViewController.SelectedOption newPostLanguage; @@ -46,7 +46,6 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment impleme List> items = new ArrayList<>(List.of( languageItem=new ListItem<>(getString(R.string.default_post_language), postLanguage!=null ? postLanguage.getDisplayName(getContext()) : null, R.drawable.ic_fluent_local_language_24_regular, this::onDefaultLanguageClick), - loadMissingPostsItem=new ListItem<>(R.string.sk_settings_load_missing_posts, GlobalUserPreferences.loadMissingPosts.labelRes, R.drawable.ic_fluent_arrow_maximize_vertical_24_regular, this::onLoadMissingPostsClick), altTextItem=new CheckableListItem<>(R.string.settings_alt_text_reminders, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.altTextReminders, R.drawable.ic_fluent_image_alt_text_24_regular, ()->toggleCheckableItem(altTextItem)), playGifsItem=new CheckableListItem<>(R.string.settings_gif, 0, CheckableListItem.Style.SWITCH, GlobalUserPreferences.playGifs, R.drawable.ic_fluent_gif_24_regular, ()->toggleCheckableItem(playGifsItem)), overlayMediaItem=new CheckableListItem<>(R.string.sk_settings_continues_playback, R.string.sk_settings_continues_playback_summary, CheckableListItem.Style.SWITCH, GlobalUserPreferences.overlayMedia, R.drawable.ic_fluent_play_circle_hint_24_regular, ()->toggleCheckableItem(overlayMediaItem)), @@ -129,27 +128,6 @@ public class SettingsBehaviorFragment extends BaseSettingsFragment impleme .show(); } - private void onLoadMissingPostsClick(){ - GlobalUserPreferences.LoadMissingPostsPreference[] values=GlobalUserPreferences.LoadMissingPostsPreference.values(); - int selected=GlobalUserPreferences.loadMissingPosts.ordinal(); - int[] newSelected={selected}; - new M3AlertDialogBuilder(getActivity()) - .setTitle(R.string.sk_settings_load_missing_posts) - .setSingleChoiceItems(Stream.of(values).map(pref->getString(pref.labelRes)).toArray(String[]::new), - selected, (dlg, item)->newSelected[0]=item) - .setPositiveButton(R.string.ok, (dlg, item)->{ - GlobalUserPreferences.LoadMissingPostsPreference pref=values[newSelected[0]]; - if(pref!=GlobalUserPreferences.loadMissingPosts){ - GlobalUserPreferences.loadMissingPosts=pref; - GlobalUserPreferences.save(); - loadMissingPostsItem.subtitleRes=pref.labelRes; - rebindItem(loadMissingPostsItem); - } - }) - .setNegativeButton(R.string.cancel, null) - .show(); - } - private void onReplyVisibilityClick(){ AccountLocalPreferences lp=getLocalPrefs(); int selected=lp.timelineReplyVisibility==null ? 2 : switch(lp.timelineReplyVisibility){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java index b4196d622..378728911 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/FooterStatusDisplayItem.java @@ -1,5 +1,8 @@ package org.joinmastodon.android.ui.displayitems; +import static org.joinmastodon.android.ui.utils.UiUtils.opacityIn; +import static org.joinmastodon.android.ui.utils.UiUtils.opacityOut; + import android.app.Activity; import android.app.Dialog; import android.content.Context; @@ -12,8 +15,6 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; -import android.view.animation.AlphaAnimation; -import android.view.animation.Animation; import android.widget.Button; import android.widget.FrameLayout; import android.widget.TextView; @@ -56,7 +57,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ public static class Holder extends StatusDisplayItem.Holder{ private final TextView replies, boosts, favorites; private final View reply, boost, favorite, share, bookmark; - private static final Animation opacityOut, opacityIn; private View touchingView = null; private boolean longClickPerformed = false; @@ -77,18 +77,6 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{ } }; - private static final float ALPHA_PRESSED=0.55f; - - static { - opacityOut = new AlphaAnimation(1, ALPHA_PRESSED); - opacityOut.setDuration(300); - opacityOut.setInterpolator(CubicBezierInterpolator.DEFAULT); - opacityOut.setFillAfter(true); - opacityIn = new AlphaAnimation(ALPHA_PRESSED, 1); - opacityIn.setDuration(400); - opacityIn.setInterpolator(CubicBezierInterpolator.DEFAULT); - } - public Holder(Activity activity, ViewGroup parent){ super(activity, R.layout.display_item_footer, parent); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java index 7c325f658..1009bb148 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/GapStatusDisplayItem.java @@ -8,14 +8,21 @@ import android.widget.TextView; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.BaseStatusListFragment; +import org.joinmastodon.android.model.Status; import org.joinmastodon.android.ui.drawables.SawtoothTearDrawable; +import org.joinmastodon.android.ui.utils.UiUtils; + +import java.time.Instant; + +import me.grishka.appkit.utils.V; -// Mind the gap! public class GapStatusDisplayItem extends StatusDisplayItem{ public boolean loading; + private Status status; - public GapStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment){ + public GapStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, Status status){ super(parentID, parentFragment); + this.status=status; } @Override @@ -24,25 +31,53 @@ public class GapStatusDisplayItem extends StatusDisplayItem{ } public static class Holder extends StatusDisplayItem.Holder{ - public final ProgressBar progress; - public final TextView text; + public final ProgressBar progressTop, progressBottom; + public final TextView textTop, gap, textBottom; + public final View top, bottom; public Holder(Context context, ViewGroup parent){ super(context, R.layout.display_item_gap, parent); - progress=findViewById(R.id.progress); - text=findViewById(R.id.text); - itemView.setForeground(new SawtoothTearDrawable(context)); + progressTop=findViewById(R.id.progress_top); + progressBottom=findViewById(R.id.progress_bottom); + textTop=findViewById(R.id.text_top); + textBottom=findViewById(R.id.text_bottom); + top=findViewById(R.id.top); + top.setOnClickListener(this::onViewClick); + bottom=findViewById(R.id.bottom); + bottom.setOnClickListener(this::onViewClick); + gap=findViewById(R.id.gap); + gap.setForeground(new SawtoothTearDrawable(context)); } @Override public void onBind(GapStatusDisplayItem item){ - text.setVisibility(item.loading ? View.GONE : View.VISIBLE); - progress.setVisibility(item.loading ? View.VISIBLE : View.GONE); + if(!item.loading){ + progressBottom.setVisibility(View.GONE); + progressTop.setVisibility(View.GONE); + } + top.setClickable(!item.loading); + bottom.setClickable(!item.loading); + StatusDisplayItem next=getNextVisibleDisplayItem().orElse(null); + Instant dateBelow=next instanceof HeaderStatusDisplayItem h ? h.status.createdAt + : next instanceof ReblogOrReplyLineStatusDisplayItem l ? l.status.createdAt + : null; + String text=dateBelow!=null && item.status.createdAt!=null && dateBelow.isBefore(item.status.createdAt) + ? UiUtils.formatPeriodBetween(item.parentFragment.getContext(), dateBelow, item.status.createdAt) + : null; + gap.setText(text); + int p=text==null ? V.dp(6) : V.dp(20); + gap.setPadding(p, p, p, p); + } + + private void onViewClick(View v){ + if(item.loading) return; + boolean isTop=v==top; + (isTop ? textTop : textBottom).startAnimation(UiUtils.opacityOut); + V.setVisibilityAnimated((isTop ? progressTop : progressBottom), View.VISIBLE); + item.parentFragment.onGapClick(this, isTop); } @Override - public void onClick(){ - item.parentFragment.onGapClick(this); - } + public void onClick(){} } } diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java index 0e87b656d..097aae9f0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/ReblogOrReplyLineStatusDisplayItem.java @@ -17,6 +17,7 @@ import org.joinmastodon.android.GlobalUserPreferences; import org.joinmastodon.android.R; import org.joinmastodon.android.fragments.BaseStatusListFragment; import org.joinmastodon.android.model.Emoji; +import org.joinmastodon.android.model.Status; import org.joinmastodon.android.model.StatusPrivacy; import org.joinmastodon.android.ui.text.HtmlParser; import org.joinmastodon.android.ui.utils.CustomEmojiHelper; @@ -43,18 +44,20 @@ public class ReblogOrReplyLineStatusDisplayItem extends StatusDisplayItem{ public boolean needBottomPadding; ReblogOrReplyLineStatusDisplayItem extra; CharSequence fullText; + Status status; - public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick) { - this(parentID, parentFragment, text, emojis, icon, visibility, handleClick, text); + public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick, Status status) { + this(parentID, parentFragment, text, emojis, icon, visibility, handleClick, text, status); } - public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick, CharSequence fullText) { + public ReblogOrReplyLineStatusDisplayItem(String parentID, BaseStatusListFragment parentFragment, CharSequence text, List emojis, @DrawableRes int icon, StatusPrivacy visibility, @Nullable View.OnClickListener handleClick, CharSequence fullText, Status status) { super(parentID, parentFragment); SpannableStringBuilder ssb=new SpannableStringBuilder(text); HtmlParser.parseCustomEmoji(ssb, emojis); this.text=ssb; emojiHelper.setText(ssb); this.icon=icon; + this.status=status; this.handleClick=handleClick; TypedValue outValue = new TypedValue(); context.getTheme().resolveAttribute(android.R.attr.selectableItemBackground, outValue, true); diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index e17b1f49a..cdc663c6a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -135,7 +135,7 @@ public abstract class StatusDisplayItem{ : fragment.getString(R.string.in_reply_to, account.displayName); return new ReblogOrReplyLineStatusDisplayItem( parentID, fragment, text, account == null ? List.of() : account.emojis, - R.drawable.ic_fluent_arrow_reply_20sp_filled, null, null, fullText + R.drawable.ic_fluent_arrow_reply_20sp_filled, null, null, fullText, status ); } @@ -167,7 +167,7 @@ public abstract class StatusDisplayItem{ items.add(new ReblogOrReplyLineStatusDisplayItem(parentID, fragment, text, status.account.emojis, R.drawable.ic_fluent_arrow_repeat_all_20sp_filled, isOwnPost ? status.visibility : null, i->{ args.putParcelable("profileAccount", Parcels.wrap(status.account)); Nav.go(fragment.getActivity(), ProfileFragment.class, args); - }, fullText)); + }, fullText, status)); } else if (!(status.tags.isEmpty() || fragment instanceof HashtagTimelineFragment || fragment instanceof ListTimelineFragment @@ -183,7 +183,7 @@ public abstract class StatusDisplayItem{ i -> { args.putString("hashtag", hashtag.name); Nav.go(fragment.getActivity(), HashtagTimelineFragment.class, args); - } + }, status ))); } @@ -294,7 +294,7 @@ public abstract class StatusDisplayItem{ footer.hideCounts=hideCounts; items.add(footer); if(status.hasGapAfter && !(fragment instanceof ThreadFragment)) - items.add(new GapStatusDisplayItem(parentID, fragment)); + items.add(new GapStatusDisplayItem(parentID, fragment, status)); } int i=1; boolean inset=(flags & FLAG_INSET)!=0; diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java b/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java index 1100fd950..a461646dc 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/drawables/SawtoothTearDrawable.java @@ -23,9 +23,9 @@ import me.grishka.appkit.utils.V; public class SawtoothTearDrawable extends Drawable{ private final Paint topPaint, bottomPaint; - private static final int TOP_SAWTOOTH_HEIGHT=5; - private static final int BOTTOM_SAWTOOTH_HEIGHT=3; - private static final int STROKE_WIDTH=2; + private static final int TOP_SAWTOOTH_HEIGHT=4; + private static final int BOTTOM_SAWTOOTH_HEIGHT=4; + private static final int STROKE_WIDTH=1; private static final int SAWTOOTH_PERIOD=14; public SawtoothTearDrawable(Context context){ diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java index eae6682ef..673df5b0b 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/UiUtils.java @@ -54,6 +54,8 @@ import android.view.SubMenu; import android.view.View; import android.view.ViewGroup; import android.view.WindowInsets; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; import android.webkit.MimeTypeMap; import android.widget.Button; import android.widget.ImageView; @@ -96,7 +98,6 @@ import org.joinmastodon.android.fragments.ComposeFragment; import org.joinmastodon.android.fragments.HashtagTimelineFragment; import org.joinmastodon.android.fragments.ProfileFragment; import org.joinmastodon.android.fragments.ThreadFragment; -import org.joinmastodon.android.fragments.settings.SettingsServerAboutFragment; import org.joinmastodon.android.fragments.settings.SettingsServerFragment; import org.joinmastodon.android.model.Account; import org.joinmastodon.android.model.AccountField; @@ -173,6 +174,19 @@ public class UiUtils { private static final DateTimeFormatter TIME_FORMATTER=DateTimeFormatter.ofLocalizedTime(FormatStyle.SHORT); public static int MAX_WIDTH, SCROLL_TO_TOP_DELTA; + public static final float ALPHA_PRESSED=0.55f; + public static final Animation opacityOut, opacityIn; + + static { + opacityOut = new AlphaAnimation(1, ALPHA_PRESSED); + opacityOut.setDuration(300); + opacityOut.setInterpolator(CubicBezierInterpolator.DEFAULT); + opacityOut.setFillAfter(true); + opacityIn = new AlphaAnimation(ALPHA_PRESSED, 1); + opacityIn.setDuration(400); + opacityIn.setInterpolator(CubicBezierInterpolator.DEFAULT); + } + private UiUtils() { } @@ -192,28 +206,33 @@ public class UiUtils { } public static String formatRelativeTimestamp(Context context, Instant instant) { - long t = instant.toEpochMilli(); - long now = System.currentTimeMillis(); + return formatPeriodBetween(context, instant, null); + } + + public static String formatPeriodBetween(Context context, Instant since, Instant until) { + boolean ago = until == null; + long t = since.toEpochMilli(); + long now = ago ? System.currentTimeMillis() : until.toEpochMilli(); long diff = now - t; if(diff<1000L){ return context.getString(R.string.time_now); }else if(diff<60_000L){ - return context.getString(R.string.time_seconds_ago_short, diff/1000L); + return context.getString(ago ? R.string.time_seconds_ago_short : R.string.sk_time_seconds, diff/1000L); }else if(diff<3600_000L){ - return context.getString(R.string.time_minutes_ago_short, diff/60_000L); + return context.getString(ago ? R.string.time_minutes_ago_short : R.string.sk_time_minutes, diff/60_000L); }else if(diff<3600_000L*24L){ - return context.getString(R.string.time_hours_ago_short, diff/3600_000L); + return context.getString(ago ? R.string.time_hours_ago_short : R.string.sk_time_hours, diff/3600_000L); } else { int days = (int) (diff / (3600_000L * 24L)); - if (days > 30) { - ZonedDateTime dt = instant.atZone(ZoneId.systemDefault()); + if (ago && days > 30) { + ZonedDateTime dt = since.atZone(ZoneId.systemDefault()); if (dt.getYear() == ZonedDateTime.now().getYear()) { return DATE_FORMATTER_SHORT.format(dt); } else { return DATE_FORMATTER_SHORT_WITH_YEAR.format(dt); } } - return context.getString(R.string.time_days_ago_short, days); + return context.getString(ago ? R.string.time_days_ago_short : R.string.sk_time_days, days); } } diff --git a/mastodon/src/main/res/drawable/bg_timeline_gap.xml b/mastodon/src/main/res/drawable/bg_timeline_gap.xml index 1536ca15d..c14028dc5 100644 --- a/mastodon/src/main/res/drawable/bg_timeline_gap.xml +++ b/mastodon/src/main/res/drawable/bg_timeline_gap.xml @@ -1,7 +1,6 @@ - + - \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/bg_timeline_gap_border.xml b/mastodon/src/main/res/drawable/bg_timeline_gap_border.xml new file mode 100644 index 000000000..d782ee72a --- /dev/null +++ b/mastodon/src/main/res/drawable/bg_timeline_gap_border.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml new file mode 100644 index 000000000..832130b0d --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_down_20_filled.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml new file mode 100644 index 000000000..cb1915942 --- /dev/null +++ b/mastodon/src/main/res/drawable/ic_fluent_chevron_double_up_20_filled.xml @@ -0,0 +1,3 @@ + + + diff --git a/mastodon/src/main/res/layout/display_item_gap.xml b/mastodon/src/main/res/layout/display_item_gap.xml index cbc06a8b7..a2e904154 100644 --- a/mastodon/src/main/res/layout/display_item_gap.xml +++ b/mastodon/src/main/res/layout/display_item_gap.xml @@ -1,24 +1,79 @@ - + android:layout_height="wrap_content" + android:orientation="vertical" + android:background="@drawable/bg_timeline_gap_border"> - + android:layout_marginBottom="4dp" + android:background="?android:selectableItemBackground"> - + - \ No newline at end of file + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index 08260a7a3..45c966eca 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -388,4 +388,10 @@ Load missing posts behavior Newest first (downwards) Oldest first (upwards) + Load newer posts + Load older posts + %d seconds + %d minutes + %d hours + %d days \ No newline at end of file From e74ac5da5624b8d1835b2e740408596263fa01d7 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Fri, 8 Sep 2023 16:00:00 +0000 Subject: [PATCH 30/44] Translated using Weblate (Spanish) Currently translated at 99.4% (380 of 382 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/es/ --- mastodon/src/main/res/values-es-rES/strings_sk.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/mastodon/src/main/res/values-es-rES/strings_sk.xml b/mastodon/src/main/res/values-es-rES/strings_sk.xml index d1944fe7e..631916b67 100644 --- a/mastodon/src/main/res/values-es-rES/strings_sk.xml +++ b/mastodon/src/main/res/values-es-rES/strings_sk.xml @@ -378,4 +378,16 @@ temas temas + Ocultar emoji vacíos + Sólo cuando se abre un tema + Mostrar siempre el botón de añadir + Encontrar un teléfono de ayuda + No mostrar de nuevo + El tema contiene medios + El más antiguo primero (hacia arriba) + Mostrar los emoji en las líneas de tiempo + En caso de que estés en apuros… + https://findahelpline.com + Cargar los mensajes que faltan + Lo más nuevo primero (hacia abajo) \ No newline at end of file From c8af800b88ef39c639d0d9ce6e2daf52a47247c4 Mon Sep 17 00:00:00 2001 From: Choukajohn Date: Fri, 8 Sep 2023 16:13:00 +0000 Subject: [PATCH 31/44] Translated using Weblate (French) Currently translated at 100.0% (382 of 382 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/fr/ --- mastodon/src/main/res/values-fr-rFR/strings_sk.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mastodon/src/main/res/values-fr-rFR/strings_sk.xml b/mastodon/src/main/res/values-fr-rFR/strings_sk.xml index da84044b4..9f1a8ee55 100644 --- a/mastodon/src/main/res/values-fr-rFR/strings_sk.xml +++ b/mastodon/src/main/res/values-fr-rFR/strings_sk.xml @@ -379,4 +379,18 @@ messages messages + Uniquement lorsque le message est ouvert + Toujours afficher le bouton Ajouter + Trouver un numéro d\'assistance + Ne plus afficher + https://findahelpline.com/fr + Le message contient des médias + Le plus récent en premier (descendant) + Le plus ancien en premier (ascendant) + Comportement lors du chargement des messages manquants + Afficher les réactions emoji dans les fils + Masquer les réactions emoji vides + Suicide + Dans le cas où vous seriez en détresse… + Si vous cherchez un signe pour ne pas vous suicider, le voici. Si vous êtes en détresse et/ou avez des pensées suicidaires, si vous voulez aider une personne en souffrance, vous pouvez contacter une ligne d\'assistance de prévention du suicide. \ No newline at end of file From ec73687e9bd62347c1cfe165bad58b82f4402ad3 Mon Sep 17 00:00:00 2001 From: ihor_ck Date: Fri, 8 Sep 2023 16:20:45 +0000 Subject: [PATCH 32/44] Translated using Weblate (Ukrainian) Currently translated at 100.0% (382 of 382 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/uk/ --- mastodon/src/main/res/values-uk-rUA/strings_sk.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mastodon/src/main/res/values-uk-rUA/strings_sk.xml b/mastodon/src/main/res/values-uk-rUA/strings_sk.xml index 2512b98a5..3c846372c 100644 --- a/mastodon/src/main/res/values-uk-rUA/strings_sk.xml +++ b/mastodon/src/main/res/values-uk-rUA/strings_sk.xml @@ -380,4 +380,18 @@ дописів дописів + Лише коли допис відкрито + Знайти гарячу лінію + Не показувати знову + https://findahelpline.com + Допис містить медіа + Поведінка завантаження пропущених дописів + Спочатку найдавніші (за зростанням) + Показувати реакції емоджі у стрічках + Сховати реакції без емоджі + Завжди показувати кнопку Додати + Самогубство + Якщо ви потрапили в біду… + Якщо ви шукаєте знак, щоб не накладати на себе руки, то це він. Якщо ви перебуваєте у скрутному становищі, зверніться на місцеву гарячу лінію з питань самогубств. + Спочатку найновіші (за спаданням) \ No newline at end of file From 9d7af3964bb5589baa4cafd4009e5bfff0be5551 Mon Sep 17 00:00:00 2001 From: sk22 Date: Fri, 8 Sep 2023 19:23:19 +0000 Subject: [PATCH 33/44] Translated using Weblate (English) Currently translated at 100.0% (388 of 388 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/en/ --- mastodon/src/main/res/values/strings_sk.xml | 118 ++++++++++---------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index 45c966eca..b393d6eb7 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -16,8 +16,8 @@ Image description Unlisted Show replies - Audio overlay - Allow already playing media to continue playing, overlaying the new playback + Audio overlay + Allow already playing media to continue playing, overlaying the new playback Quoting %s Reply visibility All replies @@ -137,11 +137,11 @@ Mark as read About instance Only show one notification - Use UnifiedPush - Choose a distributor - No distributor found - You need to install a distributor for UnifiedPush notifications to work. For more information, visit https://unifiedpush.org/ - Create + Use UnifiedPush + Choose a distributor + No distributor found + You need to install a distributor for UnifiedPush notifications to work. For more information, visit https://unifiedpush.org/ + Create Create list List name Show replies to @@ -336,62 +336,62 @@ Show advanced options Hide advanced options Show content - Pronouns - Switch timeline - Instance - Disable pill-shaped active tab indicator - Pitch black mode - Search the Fediverse - Display pronouns in timelines - Display pronouns in threads - Display pronouns in user listings - Home - Search - Notifications - Profile - Show tab labels in the navigation bar + Pronouns + Switch timeline + Instance + Disable pill-shaped active tab indicator + Pitch black mode + Search the Fediverse + Display pronouns in timelines + Display pronouns in threads + Display pronouns in user listings + Home + Search + Notifications + Profile + Show tab labels in the navigation bar Enable emoji reactions - Displays emoji reactions to posts and lets you interact with them. Some modified versions of Mastodon support this, but Mastodon doesn\'t. + Displays emoji reactions to posts and lets you add yours. Various Fediverse servers support this, but Mastodon doesn’t. Show emoji reactions in timelines - Hide empty emoji reactions - Only when post is opened - Always show add button - - One user reacted with %2$s - %1$,d users reacted with %2$s - + Hide empty emoji reactions + Only when post is opened + Always show add button + + One user reacted with %2$s + %1$,d users reacted with %2$s + React with emoji Tap again for System Keyboard - You need to type an emoji - Type to react with an emoji - Duration - Indefinite - 5 minutes - 30 minutes - 1 hour - 6 hours - 1 day - 3 days - 7 days - You were mentioned by %s - Suicide + Please type an emoji + Type to react with an emoji + Duration + Indefinite + 5 minutes + 30 minutes + 1 hour + 6 hours + 1 day + 3 days + 7 days + You were mentioned by %s + Suicide In case you’re in distress… - If you’re looking for a sign not to commit suicide, this is it. Please consider reaching out to a local suicide hotline if you’re in distress. - Find a helpline - Don’t show again - https://findahelpline.com - - post - posts - - Post contains media + If you’re looking for a sign not to commit suicide, this is it. Please consider reaching out to a local suicide hotline if you’re in distress. + Find a helpline + Don’t show again + https://findahelpline.com + + post + posts + + Post contains media Load missing posts behavior - Newest first (downwards) - Oldest first (upwards) - Load newer posts - Load older posts - %d seconds - %d minutes - %d hours - %d days + Newest first (downwards) + Oldest first (upwards) + Load newer posts + Load older posts + %d seconds + %d minutes + %d hours + %d days \ No newline at end of file From 66921e3b5af0b9996ca5a30b8f86f1ebd7028c98 Mon Sep 17 00:00:00 2001 From: sk22 Date: Fri, 8 Sep 2023 19:27:09 +0000 Subject: [PATCH 34/44] Translated using Weblate (German) Currently translated at 97.1% (377 of 388 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/de/ --- .../src/main/res/values-de-rDE/strings_sk.xml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/mastodon/src/main/res/values-de-rDE/strings_sk.xml b/mastodon/src/main/res/values-de-rDE/strings_sk.xml index a237f83b5..a4d5adfb1 100644 --- a/mastodon/src/main/res/values-de-rDE/strings_sk.xml +++ b/mastodon/src/main/res/values-de-rDE/strings_sk.xml @@ -348,4 +348,38 @@ Suche Benachrichtigungen Profil + Bitte geben Sie ein Emoji ein + Emoji-Reaktionen einschalten + Zeigt Emoji-Reaktionen zu Beiträgen an und lässt dich eigene hinzufügen. Einige Fediverse-Server unterstützen das, Mastodon jedoch nicht. + Mit Emoji reagieren + Dauer + Emoji-Reaktionen in Timelines anzeigen + Nur wenn der Beitrag geöffnet ist + 3 Tage + Wenn du auf ein Zeichen wartest, keinen Suizid zu begehen – das hier ist es. Bitte ziehe in Erwägung, eine Suizid-Hotline zu kontaktieren, wenn du Hilfe brauchst. + Leere Emoji-Reaktionen verbergen + Hinzufügen-Button immer anzeigen + Emoji zum Reagieren eintippen + Unbestimmt + 5 Minuten + 30 Minuten + 1 Stunde + 6 Stunden + 1 Tag + 7 Tage + Du wurdest von %s erwähnt + Suizid + Falls es dir schlecht geht… + Hotline finden + Nicht mehr anzeigen + Beitrag enthält Medien + + Ein User hat mit %2$s reagiert + %1$,d User haben mit %2$s reagiert + + + Beitrag + Beiträge + + Tab-Bezeichnungen in der Navigationsleiste anzeigen \ No newline at end of file From 54b53a266e33b52eaea954a3ae4cf0c0c4e1c1e6 Mon Sep 17 00:00:00 2001 From: edxkl Date: Fri, 8 Sep 2023 19:38:26 +0000 Subject: [PATCH 35/44] Translated using Weblate (Portuguese (Brazil)) Currently translated at 93.2% (362 of 388 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/pt_BR/ --- mastodon/src/main/res/values-pt-rBR/strings_sk.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mastodon/src/main/res/values-pt-rBR/strings_sk.xml b/mastodon/src/main/res/values-pt-rBR/strings_sk.xml index 3ac89e0a0..fc2cbaf1f 100644 --- a/mastodon/src/main/res/values-pt-rBR/strings_sk.xml +++ b/mastodon/src/main/res/values-pt-rBR/strings_sk.xml @@ -370,4 +370,9 @@ Revelar automaticamente Avisos de Conteúdo nas respostas Lixeira de reciclagem Pesquisar + %d minutos + %d horas + Suicídio + %d segundos + %d dias \ No newline at end of file From 8bd8f90d58a97156dd9cc3b2aa7a5346d45df0fc Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 21:19:15 +0200 Subject: [PATCH 36/44] remove unused strings --- mastodon/src/main/res/values/strings_sk.xml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index b393d6eb7..3f6251a0f 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -361,7 +361,6 @@ %1$,d users reacted with %2$s React with emoji - Tap again for System Keyboard Please type an emoji Type to react with an emoji Duration @@ -385,9 +384,6 @@ posts Post contains media - Load missing posts behavior - Newest first (downwards) - Oldest first (upwards) Load newer posts Load older posts %d seconds From 70680e39c615adb32f0887d1d72f620a7cd19a87 Mon Sep 17 00:00:00 2001 From: sk22 Date: Fri, 8 Sep 2023 19:45:55 +0000 Subject: [PATCH 37/44] Translated using Weblate (German) Currently translated at 100.0% (384 of 384 strings) Translation: Megalodon/values Translate-URL: https://translate.codeberg.org/projects/megalodon/values/de/ --- mastodon/src/main/res/values-de-rDE/strings_sk.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mastodon/src/main/res/values-de-rDE/strings_sk.xml b/mastodon/src/main/res/values-de-rDE/strings_sk.xml index a4d5adfb1..8c7cb5da9 100644 --- a/mastodon/src/main/res/values-de-rDE/strings_sk.xml +++ b/mastodon/src/main/res/values-de-rDE/strings_sk.xml @@ -382,4 +382,11 @@ Beiträge Tab-Bezeichnungen in der Navigationsleiste anzeigen + %d Sekunden + %d Minuten + %d Stunden + %d Tage + https://findahelpline.com + Ältere Beiträge laden + Neuere Beiträge laden \ No newline at end of file From 12eaa8d5f199bbfb5b39217e473249919aae8628 Mon Sep 17 00:00:00 2001 From: LucasGGamerM Date: Tue, 5 Sep 2023 08:21:06 -0300 Subject: [PATCH 38/44] fix: fix window insets on ScheduledStatusListFragment cc: @sk22 --- .../ScheduledStatusListFragment.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ScheduledStatusListFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ScheduledStatusListFragment.java index 864dec49e..00d4e5112 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ScheduledStatusListFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ScheduledStatusListFragment.java @@ -2,8 +2,11 @@ package org.joinmastodon.android.fragments; import android.app.Activity; import android.net.Uri; +import android.os.Build; import android.os.Bundle; import android.view.View; +import android.view.ViewGroup; +import android.view.WindowInsets; import android.widget.ImageButton; import com.squareup.otto.Subscribe; @@ -26,6 +29,7 @@ import java.util.List; import me.grishka.appkit.Nav; import me.grishka.appkit.api.SimpleCallback; +import me.grishka.appkit.utils.V; public class ScheduledStatusListFragment extends BaseStatusListFragment { private String nextMaxID; @@ -186,6 +190,21 @@ public class ScheduledStatusListFragment extends BaseStatusListFragment=29 && insets.getTappableElementInsets().bottom==0){ + int insetBottom=insets.getSystemWindowInsetBottom(); + ((ViewGroup.MarginLayoutParams) list.getLayoutParams()).bottomMargin=insetBottom; + ((ViewGroup.MarginLayoutParams) fab.getLayoutParams()).bottomMargin=V.dp(16)+insetBottom; + insets=insets.inset(0, 0, 0, insetBottom); + }else{ + ((ViewGroup.MarginLayoutParams) fab.getLayoutParams()).bottomMargin=V.dp(16); + } + } + super.onApplyWindowInsets(insets); + } + @Override public Uri getWebUri(Uri.Builder base) { // TODO: adapt when frontends finally implement a scheduled posts list From cc699a3f5ed66068b67762687e9d7e71b3409bad Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 21:58:08 +0200 Subject: [PATCH 39/44] fix spacing stuff in report fragment --- .../report/ReportReasonChoiceFragment.java | 29 +------------------ 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java index 32b2edec6..7834867d0 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java +++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/report/ReportReasonChoiceFragment.java @@ -83,7 +83,7 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ reportStatus=Parcels.unwrap(getArguments().getParcelable("status")); if(reportStatus!=null){ Status hiddenStatus=reportStatus.clone(); - hiddenStatus.spoilerText=getString(R.string.post_hidden); + if(hiddenStatus.spoilerText==null) hiddenStatus.spoilerText=getString(R.string.post_hidden); onDataLoaded(Collections.singletonList(hiddenStatus)); setTitle(R.string.report_title_post); }else{ @@ -168,17 +168,6 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ ((UsableRecyclerView)list).setIncludeMarginsInItemHitbox(false); if(reportStatus!=null){ - list.addItemDecoration(new RecyclerView.ItemDecoration(){ - @Override - public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state){ - RecyclerView.ViewHolder holder=parent.getChildViewHolder(view); - if(holder instanceof LinkCardStatusDisplayItem.Holder || holder instanceof MediaGridStatusDisplayItem.Holder){ - outRect.left=V.dp(16); - outRect.right=V.dp(16); - } - } - }); - list.addItemDecoration(new RecyclerView.ItemDecoration(){ private Paint paint=new Paint(Paint.ANTI_ALIAS_FLAG); { @@ -222,10 +211,6 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ if(holder instanceof StatusDisplayItem.Holder){ outRect.left=outRect.right=V.dp(16); } - int index=holder.getAbsoluteAdapterPosition()-mergeAdapter.getPositionForAdapter(adapter); - if(index==displayItems.size()){ - outRect.top=V.dp(32); - } } }); } @@ -251,18 +236,6 @@ public class ReportReasonChoiceFragment extends StatusListFragment{ return null; } - @Override - protected void onModifyItemViewHolder(BindableViewHolder holder){ - if((Object)holder instanceof MediaGridStatusDisplayItem.Holder h){ - View layout=h.getLayout(); - layout.setOutlineProvider(OutlineProviders.roundedRect(8)); - layout.setClipToOutline(true); - View overlay=h.getSensitiveOverlay(); - overlay.setOutlineProvider(OutlineProviders.roundedRect(8)); - overlay.setClipToOutline(true); - } - } - @Override public void putRelationship(String id, Relationship rel){ super.putRelationship(id, rel); From fdf0414698c50222e5cbd47e501a617c178d36a9 Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 22:05:06 +0200 Subject: [PATCH 40/44] fix missing banner icons and wrong strings closes sk22#805 --- .../android/ui/utils/DiscoverInfoBannerHelper.java | 9 ++++++--- mastodon/src/main/res/values/strings_sk.xml | 4 +++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java index 7b4bc4e5d..44c7bd234 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java @@ -10,6 +10,7 @@ import android.widget.TextView; import org.joinmastodon.android.MastodonApp; import org.joinmastodon.android.R; import org.joinmastodon.android.api.session.AccountSessionManager; +import org.joinmastodon.android.model.TimelineDefinition; import java.util.EnumSet; @@ -44,7 +45,7 @@ public class DiscoverInfoBannerHelper{ banner=((Activity)list.getContext()).getLayoutInflater().inflate(R.layout.discover_info_banner, list, false); TextView text=banner.findViewById(R.id.banner_text); text.setText(switch(type){ - case TRENDING_POSTS -> list.getResources().getString(R.string.trending_posts_info_banner); + case TRENDING_POSTS -> list.getResources().getString(R.string.sk_trending_posts_info_banner); case TRENDING_LINKS -> list.getResources().getString(R.string.trending_links_info_banner); case FEDERATED_TIMELINE -> list.getResources().getString(R.string.sk_federated_timeline_info_banner); case POST_NOTIFICATIONS -> list.getResources().getString(R.string.sk_notify_posts_info_banner); @@ -57,8 +58,10 @@ public class DiscoverInfoBannerHelper{ case TRENDING_POSTS -> R.drawable.ic_fluent_arrow_trending_24_regular; case TRENDING_LINKS -> R.drawable.ic_fluent_news_24_regular; case ACCOUNTS -> R.drawable.ic_fluent_people_add_24_regular; - // no icon because those are displayed as timelines - with icon in top left - case LOCAL_TIMELINE, FEDERATED_TIMELINE, BUBBLE_TIMELINE, POST_NOTIFICATIONS -> 0; + case LOCAL_TIMELINE -> TimelineDefinition.LOCAL_TIMELINE.getDefaultIcon().iconRes; + case FEDERATED_TIMELINE -> TimelineDefinition.FEDERATED_TIMELINE.getDefaultIcon().iconRes; + case BUBBLE_TIMELINE -> TimelineDefinition.BUBBLE_TIMELINE.getDefaultIcon().iconRes; + case POST_NOTIFICATIONS -> TimelineDefinition.POSTS_TIMELINE.getDefaultIcon().iconRes; }); adapter.addAdapter(new SingleViewRecyclerAdapter(banner)); } diff --git a/mastodon/src/main/res/values/strings_sk.xml b/mastodon/src/main/res/values/strings_sk.xml index 3f6251a0f..17f7c76c8 100644 --- a/mastodon/src/main/res/values/strings_sk.xml +++ b/mastodon/src/main/res/values/strings_sk.xml @@ -33,7 +33,9 @@ Federation These are the most recent posts by the people in your federation. These are the most recent posts from the network curated by your instance admins. - Megalodon %s is ready to download. + These are the posts gaining traction on your server. + These are the news stories getting talked about on your server. + Megalodon %s is ready to download. Megalodon %s is downloaded and ready to install. Check for update No update available From 646f83ff0aa799aa03466e9e86b6137e35ec8d87 Mon Sep 17 00:00:00 2001 From: sk Date: Fri, 8 Sep 2023 22:19:41 +0200 Subject: [PATCH 41/44] boop verison --- mastodon/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mastodon/build.gradle b/mastodon/build.gradle index e29ee1d23..9caa6dea2 100644 --- a/mastodon/build.gradle +++ b/mastodon/build.gradle @@ -15,8 +15,8 @@ android { applicationId "org.joinmastodon.android.sk" minSdk 23 targetSdk 33 - versionCode 98 - versionName "2.0.3+fork.98" + versionCode 99 + versionName "2.0.3+fork.99" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" resourceConfigurations += ['ar-rSA', 'ar-rDZ', 'be-rBY', 'bn-rBD', 'bs-rBA', 'ca-rES', 'cs-rCZ', 'da-rDK', 'de-rDE', 'el-rGR', 'es-rES', 'eu-rES', 'fa-rIR', 'fi-rFI', 'fil-rPH', 'fr-rFR', 'ga-rIE', 'gd-rGB', 'gl-rES', 'hi-rIN', 'hr-rHR', 'hu-rHU', 'hy-rAM', 'ig-rNG', 'in-rID', 'is-rIS', 'it-rIT', 'iw-rIL', 'ja-rJP', 'kab', 'ko-rKR', 'my-rMM', 'nl-rNL', 'no-rNO', 'oc-rFR', 'pl-rPL', 'pt-rBR', 'pt-rPT', 'ro-rRO', 'ru-rRU', 'si-rLK', 'sl-rSI', 'sv-rSE', 'th-rTH', 'tr-rTR', 'uk-rUA', 'ur-rIN', 'vi-rVN', 'zh-rCN', 'zh-rTW'] } From 77dee59b9c91febfd9621e4de777f7025b917a34 Mon Sep 17 00:00:00 2001 From: sk Date: Sat, 9 Sep 2023 01:24:36 +0200 Subject: [PATCH 42/44] fix string and tweak banner margin closes sk22#812 --- .../android/ui/utils/DiscoverInfoBannerHelper.java | 2 +- mastodon/src/main/res/layout/discover_info_banner.xml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java index 44c7bd234..fbee5dc6a 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/DiscoverInfoBannerHelper.java @@ -46,7 +46,7 @@ public class DiscoverInfoBannerHelper{ TextView text=banner.findViewById(R.id.banner_text); text.setText(switch(type){ case TRENDING_POSTS -> list.getResources().getString(R.string.sk_trending_posts_info_banner); - case TRENDING_LINKS -> list.getResources().getString(R.string.trending_links_info_banner); + case TRENDING_LINKS -> list.getResources().getString(R.string.sk_trending_links_info_banner); case FEDERATED_TIMELINE -> list.getResources().getString(R.string.sk_federated_timeline_info_banner); case POST_NOTIFICATIONS -> list.getResources().getString(R.string.sk_notify_posts_info_banner); case BUBBLE_TIMELINE -> list.getResources().getString(R.string.sk_bubble_timeline_info_banner); diff --git a/mastodon/src/main/res/layout/discover_info_banner.xml b/mastodon/src/main/res/layout/discover_info_banner.xml index 5def8563c..d1387260c 100644 --- a/mastodon/src/main/res/layout/discover_info_banner.xml +++ b/mastodon/src/main/res/layout/discover_info_banner.xml @@ -5,7 +5,9 @@ android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_margin="16dp" + android:layout_marginHorizontal="16dp" + android:layout_marginTop="16dp" + android:layout_marginBottom="8dp" android:padding="16dp" android:background="@drawable/rect_12dp" android:backgroundTint="?colorM3SurfaceVariant"> From 58f0c073575c005602ed29d01b413a124ecf9e66 Mon Sep 17 00:00:00 2001 From: sk Date: Sat, 9 Sep 2023 01:27:32 +0200 Subject: [PATCH 43/44] determine next display item using items list closes sk22#815 --- .../android/ui/displayitems/StatusDisplayItem.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index cdc663c6a..0dd08c548 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -397,10 +397,11 @@ public abstract class StatusDisplayItem{ } public Optional getDisplayItemOffset(int offset){ - int nextPos=getAbsoluteAdapterPosition() + offset; List displayItems=item.parentFragment.getDisplayItems(); - return displayItems.size() > nextPos - ? Optional.of(displayItems.get(nextPos)) + int thisPos=displayItems.indexOf(item); + int offsetPos=thisPos + offset; + return displayItems.size() > offsetPos && thisPos >= 0 && offsetPos >= 0 + ? Optional.of(displayItems.get(offsetPos)) : Optional.empty(); } From 380e4ff77e8e37db34591c7c689851b6dc27a22b Mon Sep 17 00:00:00 2001 From: sk Date: Sat, 9 Sep 2023 01:47:46 +0200 Subject: [PATCH 44/44] remove unused member --- .../ui/displayitems/StatusDisplayItem.java | 2 +- .../ui/utils/InsetStatusItemDecoration.java | 21 +++++++------------ 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java index 0dd08c548..fb630fdcb 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/displayitems/StatusDisplayItem.java @@ -54,7 +54,7 @@ import me.grishka.appkit.views.UsableRecyclerView; public abstract class StatusDisplayItem{ public final String parentID; public final BaseStatusListFragment parentFragment; - public boolean inset, insetPadding=true; + public boolean inset; public int index; public boolean hasDescendantNeighbor = false, diff --git a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java index 1c1e77ae6..d64b1d0f3 100644 --- a/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java +++ b/mastodon/src/main/java/org/joinmastodon/android/ui/utils/InsetStatusItemDecoration.java @@ -74,24 +74,19 @@ public class InsetStatusItemDecoration extends RecyclerView.ItemDecoration{ @Override public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, @NonNull RecyclerView parent, @NonNull RecyclerView.State state){ - List displayItems=listFragment.getDisplayItems(); +// List displayItems=listFragment.getDisplayItems(); RecyclerView.ViewHolder holder=parent.getChildViewHolder(view); if(holder instanceof StatusDisplayItem.Holder sdi){ boolean inset=sdi.getItem().inset; - int pos=holder.getAbsoluteAdapterPosition(); +// int pos=holder.getAbsoluteAdapterPosition(); if(inset){ - boolean topSiblingInset=pos>0 && displayItems.get(pos-1).inset; - boolean bottomSiblingInset=pos0 && displayItems.get(pos-1).inset; +// boolean bottomSiblingInset=pos) holder).getItem().insetPadding; - if(insetPadding) - outRect.left=pad; - if(insetPadding) - outRect.right=pad; + int pad=V.dp(16); +// else pad=V.dp(12); + outRect.left=pad; + outRect.right=pad; // had to comment this out because animations with offsets aren't handled properly. // can be worked around by manually applying top margins to items