Compare commits

...

33 Commits

Author SHA1 Message Date
LucasGGamerM
e7cd1cfda2 docs: update screenshot for play store 2023-02-27 21:31:39 -03:00
LucasGGamerM
17afa8e6f5 docs: changelog 98 2023-02-27 20:36:32 -03:00
LucasGGamerM
8385fb9586 chore: wiping duplicate stuff 2023-02-27 20:35:36 -03:00
LucasGGamerM
ba44aa57d7 build: bump version number 2023-02-27 20:34:43 -03:00
LucasGGamerM
a70647da44 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/pt_BR/
2023-02-27 23:33:29 +00:00
LucasGGamerM
f97aafe374 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/pt_BR/
2023-02-27 23:28:58 +00:00
LucasGGamerM
f836361644 fix: NPE in HeaderStatusDisplayItem when clicking on a "User followed you" avatar header in notifications fragment 2023-02-25 20:58:10 -03:00
LucasGGamerM
529c1e2b07 Merge remote-tracking branch 'weblate/master' 2023-02-25 15:49:24 -03:00
LucasGGamerM
f2e04e6769 Merge remote-tracking branch 'megalodon_weblate/main'
# Conflicts:
#	metadata/it-IT/full_description.txt
2023-02-25 15:49:07 -03:00
LucasGGamerM
f1a7603bdf Adding 97 changelog 2023-02-25 15:48:22 -03:00
LucasGGamerM
280434b01f Bump version number 2023-02-25 15:46:46 -03:00
LucasGGamerM
023a6c3a49 fix(custom-local-timelines): Loading threads on custom local timelines now works! 2023-02-25 15:39:56 -03:00
LucasGGamerM
ed301cafe0 fix(custom-local-timelines): Profile lookup now is more robust and doesn't call the the user's instance unless a click happens 2023-02-25 14:27:21 -03:00
LucasGGamerM
5e97adcd3b fix(custom-local-timelines): Removing the get account by handle function for each status, and interactions now are fully working. 2023-02-25 14:18:27 -03:00
ewm
487deae044 Translated using Weblate (Polish)
Currently translated at 13.3% (4 of 30 strings)

Translation: Moshidon/metadata
Translate-URL: https://translate.codeberg.org/projects/moshidon/metadata/pl/
2023-02-25 16:08:21 +00:00
ewm
a28daa3d75 Translated using Weblate (Polish)
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/pl/
2023-02-25 16:08:21 +00:00
LucasGGamerM
75f311b8a7 Merge pull request #100 from FineFindus/feat/custom-welcome-inputtype
feat(custom-welcome): use URI InputType
2023-02-25 11:17:26 -03:00
LucasGGamerM
5d11bee59d refactor(perf): initial optimizations for concurrent requests. Profile now loads faster 2023-02-24 15:55:49 -03:00
FineFindus
cd027f1220 feat(custom-welcome): use URI InputType 2023-02-24 08:43:20 +00:00
LucasGGamerM
1d55354be2 fix(custom-local-timelines): interactions now work! 2023-02-23 20:14:52 -03:00
nitrogenez47ab3e44720c4675
3143f28e04 Translated using Weblate (Ukrainian)
Currently translated at 13.3% (4 of 30 strings)

Translation: Moshidon/metadata
Translate-URL: https://translate.codeberg.org/projects/moshidon/metadata/uk/
2023-02-23 04:08:21 +00:00
poesty
d381205bbf Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/zh_Hans/
2023-02-23 04:08:21 +00:00
nitrogenez47ab3e44720c4675
6b6852e134 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/uk/
2023-02-23 04:08:21 +00:00
Andrewblasco
f7a41906e4 Translated using Weblate (Spanish)
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/es/
2023-02-23 04:08:21 +00:00
dontobi
70ddea2e81 Translated using Weblate (German)
Currently translated at 100.0% (25 of 25 strings)

Translation: Moshidon/values
Translate-URL: https://translate.codeberg.org/projects/moshidon/values/de/
2023-02-23 04:08:21 +00:00
dontobi
92a806462d Translated using Weblate (German)
Currently translated at 100.0% (30 of 30 strings)

Translation: Moshidon/metadata
Translate-URL: https://translate.codeberg.org/projects/moshidon/metadata/de/
2023-02-23 04:08:20 +00:00
LucasGGamerM
8111ea04b9 fix: Profile lookups on custom local timelines now work 2023-02-22 17:21:33 -03:00
Espasant3
371f97fa5a Translated using Weblate (Galician)
Currently translated at 100.0% (16 of 16 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/gl/
2023-02-22 15:08:21 +00:00
gicorada
f7def3ab01 Translated using Weblate (Italian)
Currently translated at 100.0% (16 of 16 strings)

Translation: Megalodon/metadata
Translate-URL: https://translate.codeberg.org/projects/megalodon/metadata/it/
2023-02-22 15:08:20 +00:00
gicorada
1cefc8aaf2 Translated using Weblate (Italian)
Currently translated at 100.0% (262 of 262 strings)

Translation: Megalodon/values
Translate-URL: https://translate.codeberg.org/projects/megalodon/values/it/
2023-02-22 15:08:20 +00:00
LucasGGamerM
a72849bae1 Merge pull request #96 from FineFindus/feat/custom-timelines-input-type
feat(custom-timelines): use URI InputType
2023-02-20 18:29:14 -03:00
FineFindus
5e6b56a738 feat(custom-timelines): use URI InputType 2023-02-20 22:11:39 +01:00
LucasGGamerM
58c754ea2d Fixing typo 2023-02-20 17:21:20 -03:00
34 changed files with 229 additions and 58 deletions

View File

@@ -9,8 +9,8 @@ android {
applicationId "org.joinmastodon.android.moshinda"
minSdk 23
targetSdk 33
versionCode 96
versionName "1.2.0+fork.96.moshinda"
versionCode 98
versionName "1.2.0+fork.98.moshinda"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resConfigs "ar-rSA", "be-rBY", "bn-rBD", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES", "eu-rES", "fi-rFI", "fil-rPH", "fr-rFR", "ga-rIE", "gd-rGB", "gl-rES", "hi-rIN", "hr-rHR", "hu-rHU", "hy-rAM", "in-rID", "is-rIS", "it-rIT", "iw-rIL", "ja-rJP", "kab", "ko-rKR", "nl-rNL", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "vi-rVN", "zh-rCN", "zh-rTW"
}

View File

@@ -0,0 +1,11 @@
package org.joinmastodon.android.api.requests.accounts;
import org.joinmastodon.android.api.MastodonAPIRequest;
import org.joinmastodon.android.model.Account;
public class GetAccountByHandle extends MastodonAPIRequest<Account>{
public GetAccountByHandle(String acct){
super(HttpMethod.GET, "/accounts/lookup", Account.class);
addQueryParameter("acct", acct);
}
}

View File

@@ -5,8 +5,14 @@ import android.view.Menu;
import android.view.MenuInflater;
import org.joinmastodon.android.R;
import org.joinmastodon.android.api.requests.accounts.GetAccountByHandle;
import org.joinmastodon.android.api.requests.accounts.GetAccountByID;
import org.joinmastodon.android.api.requests.search.GetSearchResults;
import org.joinmastodon.android.api.requests.statuses.GetStatusByID;
import org.joinmastodon.android.api.requests.timelines.GetPublicTimeline;
import org.joinmastodon.android.model.Account;
import org.joinmastodon.android.model.Filter;
import org.joinmastodon.android.model.SearchResults;
import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.model.TimelineDefinition;
import org.joinmastodon.android.utils.StatusFilterPredicate;
@@ -14,9 +20,11 @@ import org.joinmastodon.android.utils.StatusFilterPredicate;
import java.util.List;
import java.util.stream.Collectors;
import me.grishka.appkit.api.Callback;
import me.grishka.appkit.api.ErrorResponse;
import me.grishka.appkit.api.SimpleCallback;
public class CustomLocalTimelineFragment extends PinnableStatusListFragment {
public class CustomLocalTimelineFragment extends StatusListFragment {
// private String name;
private String domain;
@@ -40,11 +48,6 @@ public class CustomLocalTimelineFragment extends PinnableStatusListFragment {
setTitle(this.domain);
}
@Override
protected TimelineDefinition makeTimelineDefinition() {
return TimelineDefinition.ofCustomLocalTimeline(domain);
}
@Override
protected void doLoadData(int offset, int count){
currentRequest=new GetPublicTimeline(true, false, refreshing ? null : maxID, count)
@@ -55,6 +58,11 @@ public class CustomLocalTimelineFragment extends PinnableStatusListFragment {
maxID=result.get(result.size()-1).id;
if (getActivity() == null) return;
result=result.stream().filter(new StatusFilterPredicate(accountID, Filter.FilterContext.PUBLIC)).collect(Collectors.toList());
result.stream().forEach(status -> {
status.account.acct += "@"+domain;
status.reloadWhenClicked = true;
});
onDataLoaded(result, !result.isEmpty());
}
})

View File

@@ -7,6 +7,7 @@ import static org.joinmastodon.android.ui.utils.UiUtils.makeBackItem;
import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Bundle;
import android.text.InputType;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -150,6 +151,7 @@ public class EditTimelinesFragment extends BaseRecyclerFragment<TimelineDefiniti
FrameLayout inputWrap = new FrameLayout(getContext());
EditText input = new EditText(getContext());
input.setHint(R.string.sk_example_domain);
input.setInputType(InputType.TYPE_TEXT_VARIATION_URI);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.setMargins(V.dp(16), V.dp(4), V.dp(16), V.dp(16));
input.setLayoutParams(params);

View File

@@ -18,6 +18,7 @@ import org.joinmastodon.android.model.Status;
import org.joinmastodon.android.ui.displayitems.ExtendedFooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.FooterStatusDisplayItem;
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
import org.joinmastodon.android.ui.utils.UiUtils;
import org.parceler.Parcels;
import java.util.ArrayList;
@@ -60,6 +61,18 @@ public abstract class StatusListFragment extends BaseStatusListFragment<Status>{
Status status=getContentStatusByID(id);
if(status==null)
return;
if(status.reloadWhenClicked){
UiUtils.lookupStatus(getContext(), status, accountID, null, status1 -> {
status1.filterRevealed = true;
Bundle args=new Bundle();
args.putString("account", accountID);
args.putParcelable("status", Parcels.wrap(status1));
if(status1.inReplyToAccountId!=null && knownAccounts.containsKey(status1.inReplyToAccountId))
args.putParcelable("inReplyToAccount", Parcels.wrap(knownAccounts.get(status1.inReplyToAccountId)));
Nav.go(getActivity(), ThreadFragment.class, args);
});
return;
}
status.filterRevealed = true;
Bundle args=new Bundle();
args.putString("account", accountID);

View File

@@ -62,6 +62,7 @@ public class Status extends BaseModel implements DisplayItemsParent, Searchable{
public transient boolean spoilerRevealed;
public transient boolean textExpanded, textExpandable;
public transient boolean hasGapAfter;
public boolean reloadWhenClicked;
private transient String strippedText;
@Override

View File

@@ -191,6 +191,19 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
}
private void onReplyClick(View v){
if(item.status.reloadWhenClicked){
UiUtils.lookupStatus(v.getContext(),
item.status, item.accountID, null,
status -> {
v.startAnimation(opacityIn);
Bundle args=new Bundle();
args.putString("account", item.accountID);
args.putParcelable("replyTo", Parcels.wrap(status));
Nav.go(item.parentFragment.getActivity(), ComposeFragment.class, args);
}
);
return;
}
v.startAnimation(opacityIn);
Bundle args=new Bundle();
args.putString("account", item.accountID);
@@ -214,6 +227,16 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
}
private void onBoostClick(View v){
if(item.status.reloadWhenClicked){
UiUtils.lookupStatus(v.getContext(),
item.status, item.accountID, null,
status -> {
boost.setSelected(!status.reblogged);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(status, !status.reblogged, null, r->boostConsumer(v, r));
}
);
return;
}
boost.setSelected(!item.status.reblogged);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setReblogged(item.status, !item.status.reblogged, null, r->boostConsumer(v, r));
}
@@ -310,6 +333,23 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
}
private void onFavoriteClick(View v){
if(item.status.reloadWhenClicked){
UiUtils.lookupStatus(v.getContext(),
item.status, item.accountID, null,
status -> {
favorite.setSelected(!status.favourited);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(status, !status.favourited, r->{
if (status.favourited) {
v.startAnimation(GlobalUserPreferences.reduceMotion ? opacityIn : animSet);
} else {
v.startAnimation(opacityIn);
}
bindButton(favorite, r.favouritesCount);
});
}
);
return;
}
favorite.setSelected(!item.status.favourited);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setFavorited(item.status, !item.status.favourited, r->{
if (item.status.favourited) {
@@ -336,6 +376,18 @@ public class FooterStatusDisplayItem extends StatusDisplayItem{
}
private void onBookmarkClick(View v){
if(item.status.reloadWhenClicked){
UiUtils.lookupStatus(v.getContext(),
item.status, item.accountID, null,
status -> {
bookmark.setSelected(!status.bookmarked);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(status, !status.bookmarked, r->{
v.startAnimation(opacityIn);
});
}
);
return;
}
bookmark.setSelected(!item.status.bookmarked);
AccountSessionManager.getInstance().getAccount(item.accountID).getStatusInteractionController().setBookmarked(item.status, !item.status.bookmarked, r->{
v.startAnimation(opacityIn);

View File

@@ -441,6 +441,14 @@ public class HeaderStatusDisplayItem extends StatusDisplayItem{
return;
}
Bundle args=new Bundle();
if(item.status != null && item.status.reloadWhenClicked){
UiUtils.lookupAccount(v.getContext(), item.status.account, item.accountID, null, account -> {
args.putString("account", item.accountID);
args.putParcelable("profileAccount", Parcels.wrap(account));
Nav.go(item.parentFragment.getActivity(), ProfileFragment.class, args);
});
return;
}
args.putString("account", item.accountID);
args.putParcelable("profileAccount", Parcels.wrap(item.user));
Nav.go(item.parentFragment.getActivity(), ProfileFragment.class, args);

View File

@@ -36,7 +36,7 @@
android:layout_marginTop="16dp"
android:layout_marginBottom="8dp"
android:layout_marginHorizontal="16dp"
android:inputType="textFilter|textNoSuggestions"
android:inputType="textFilter|textNoSuggestions|textUri"
android:singleLine="true"
android:imeOptions="actionGo"
android:drawableStart="@drawable/ic_fluent_globe_20_regular"

View File

@@ -26,4 +26,5 @@
<string name="mo_sending_error">Fehler beim Veröffentlichen</string>
<string name="mo_filtered">Gefiltert: %s</string>
<string name="mo_disable_reminder_to_add_alt_text">Erinnerung zum Hinzufügen einer Bildbeschreibung deaktivieren</string>
<string name="mo_add_custom_server_local_timeline">Füge eine lokale Timeline eines benutzerdefinierten Servers hinzu</string>
</resources>

View File

@@ -20,4 +20,6 @@
<string name="mo_settings_contribute">Contribuir en Moshidon</string>
<string name="mo_no_image_desc">Las imágenes incluidas no tienen descripción. Por favor, piénsate añadir una para permitir a las personas con discapacidad participar.</string>
<string name="mo_filtered">Filtrado: %s</string>
<string name="mo_disable_reminder_to_add_alt_text">Desactivar recordatorio para añadir descripción</string>
<string name="mo_add_custom_server_local_timeline">Añadir una cronología de un servidor</string>
</resources>

View File

@@ -53,58 +53,58 @@
<string name="sk_post_language">Lingua: %s</string>
<string name="sk_language_name">%s (%s)</string>
<string name="sk_confirm_clear_recent_languages">Sei sicuro di voler cancellare le lingue usate di recente\?</string>
<string name="sk_clear_recent_languages">Cancella lingue usate di recente</string>
<string name="sk_clear_recent_languages">Cancella le lingue usate di recente</string>
<string name="sk_welcome_title">Benvenuto!</string>
<string name="sk_example_domain">example.social</string>
<string name="sk_poll_allow_multiple">Consenti scelte multiple</string>
<string name="sk_available_languages">Lingue disponibili</string>
<string name="sk_welcome_text">Lo squalo ti saluta! Per iniziare inserisci il dominio dell\'istanza a cui sei iscritto.</string>
<string name="sk_welcome_text">Lo squalo ti saluta! Per iniziare inserisci qui sotto l\'indirizzo dell\'istanza a cui sei iscritto.</string>
<string name="sk_color_palette_material3">Sistema</string>
<string name="sk_timeline_local">Locale</string>
<string name="sk_timeline_federated">Federata</string>
<string name="sk_bookmark_as">Salva con un altro account</string>
<string name="sk_bookmark_as">Aggiungi ai segnalibri con un altro account</string>
<string name="sk_bookmarked_as">Salvato come %s</string>
<string name="sk_favorite_as">Inserisci tra i preferiti con un altro account</string>
<string name="sk_favorite_as">Aggiungi ai preferiti con un altro account</string>
<string name="sk_favorited_as">Inserito tra i preferiti come %s</string>
<string name="sk_already_favorited">Già tra i preferiti</string>
<string name="sk_already_favorited">Già aggiunto ai preferiti</string>
<string name="sk_reblog_as">Condividi con un altro account</string>
<string name="sk_already_reblogged">Condivisione già eseguita</string>
<string name="sk_settings_profile">Imposta il profilo</string>
<string name="sk_settings_posting">Preferenze dei post</string>
<string name="sk_settings_filters">Configura filtri</string>
<string name="sk_already_reblogged">Già condiviso</string>
<string name="sk_settings_profile">Impostazioni del profilo</string>
<string name="sk_settings_posting">Preferenze di pubblicazione</string>
<string name="sk_settings_filters">Configura i filtri</string>
<string name="sk_settings_rules">Regole</string>
<string name="sk_settings_about">Riguardo all\'app</string>
<string name="sk_settings_about">Informazioni sull\'app</string>
<string name="sk_settings_donate">Dona</string>
<string name="sk_delete_notification_confirm_action">Elimina notifica</string>
<string name="sk_enable_delete_notifications">Abilita l\'eliminazione delle notifiche</string>
<string name="sk_delete_notification_confirm_action">Elimina la notifica</string>
<string name="sk_enable_delete_notifications">Abilita la cancellazione delle notifiche</string>
<string name="sk_settings_publish_button_text">Testo del pulsante Pubblica</string>
<string name="sk_settings_publish_button_text_title">Personalizza il testo del pulsante Pubblica</string>
<string name="sk_settings_translation_availability_note_available">%s supporta la traduzione!</string>
<string name="sk_settings_translation_availability_note_unavailable">Sembra che %s non supporti la traduzione.</string>
<string name="sk_clear_all_notifications">Elimina tutte le notifiche</string>
<string name="sk_clear_all_notifications_confirm_action">Elimina tutto</string>
<string name="sk_clear_all_notifications_confirm">Sei sicuro di volere eliminare tutte le notifiche\?</string>
<string name="sk_settings_translation_availability_note_unavailable">%s non sembra supportare la traduzione.</string>
<string name="sk_clear_all_notifications">Cancella tutte le notifiche</string>
<string name="sk_clear_all_notifications_confirm_action">Cancella tutto</string>
<string name="sk_clear_all_notifications_confirm">Sei sicuro di voler eliminare tutte le notifiche\?</string>
<string name="sk_loading_fediverse_resource_title">Cercando nel Fediverso</string>
<string name="sk_quote_post">Crea un post riguardo a questo</string>
<string name="sk_undo_reblog">Annulla la condivisione</string>
<string name="sk_reblog_with_visibility">Condividi con visibilità</string>
<string name="sk_copy_link_to_post">Copia il link del post</string>
<string name="sk_reblog_with_visibility">Reblog con visibilità</string>
<string name="sk_copy_link_to_post">Copia il link al post</string>
<string name="sk_open_with_account">Apri con un altro account</string>
<string name="sk_resource_not_found">La risorsa non può essere trovata</string>
<string name="sk_resource_not_found">Non è stato possibile trovare la risorsa</string>
<string name="sk_draft">Bozza</string>
<string name="sk_schedule">Programma</string>
<string name="sk_confirm_delete_draft_title">Elimina bozza</string>
<string name="sk_draft_or_schedule">Bozza o programma</string>
<string name="sk_draft_or_schedule">Salva nelle bozze o programma</string>
<string name="sk_compose_scheduled">Programmato per</string>
<string name="sk_draft_saved">Bozza salvata</string>
<string name="sk_forward_report_to">Inoltra a %s</string>
<string name="sk_confirm_delete_scheduled_post_title">Elimina post programmato</string>
<string name="sk_confirm_delete_scheduled_post">Sei sicuro di volere eliminare questo post programmato\?</string>
<string name="sk_confirm_delete_scheduled_post">Sei sicuro di voler eliminare questo post programmato\?</string>
<string name="sk_compose_draft">Il post verrà salvato come bozza.</string>
<string name="sk_post_scheduled">Post programmato</string>
<string name="sk_scheduled_too_soon_title">L\'orario programmato è troppo presto</string>
<string name="sk_mark_as_draft">Segna come bozza</string>
<string name="sk_schedule_post">Programma post</string>
<string name="sk_schedule_post">Programma il post</string>
<string name="sk_compose_no_schedule">Non programmare</string>
<string name="sk_compose_no_draft">Non tenere in bozza</string>
<string name="sk_announcements">Annunci</string>
@@ -123,25 +123,25 @@
<string name="sk_reply_as">Rispondi con un altro account</string>
<string name="sk_settings_uniform_icon_for_notifications">Icona uniforme per tutte le notifiche</string>
<string name="sk_color_palette_red">Rosso</string>
<string name="sk_tabs_disable_swipe">Disabilita lo scorrimento tra schede</string>
<string name="sk_settings_auth">Impostazioni della sicurezza</string>
<string name="sk_delete_notification">Elimina notifica</string>
<string name="sk_delete_notification_confirm">Sei sicuro di volere eliminare questa notifica\?</string>
<string name="sk_settings_translate_only_opened">Traduci solamente i post aperti</string>
<string name="sk_loading_resource_on_instance_title">Cercando in %s</string>
<string name="sk_hashtags_you_follow">Hashtags che segui</string>
<string name="sk_already_bookmarked">Già salvato</string>
<string name="sk_tabs_disable_swipe">Disabilita lo scorrimento tra le schede</string>
<string name="sk_settings_auth">Impostazioni di sicurezza</string>
<string name="sk_delete_notification">Elimina la notifica</string>
<string name="sk_delete_notification_confirm">Sei sicuro di voler eliminare questa notifica\?</string>
<string name="sk_settings_translate_only_opened">Traduci solo i post aperti</string>
<string name="sk_loading_resource_on_instance_title">Cercando su %s</string>
<string name="sk_hashtags_you_follow">Hashtag che segui</string>
<string name="sk_already_bookmarked">Già aggiunto ai segnalibri</string>
<string name="sk_reblogged_as">Condivisione eseguita come %s</string>
<string name="sk_unsent_posts">Post annullati</string>
<string name="sk_confirm_save_draft">Salva bozza\?</string>
<string name="sk_confirm_save_changes">Salva le modifiche\?</string>
<string name="sk_unsent_posts">Post non pubblicati</string>
<string name="sk_confirm_save_draft">Salvare la bozza\?</string>
<string name="sk_confirm_save_changes">Salvare le modifiche\?</string>
<string name="sk_schedule_or_draft">Programma o bozza</string>
<string name="sk_settings_reduce_motion">Riduci il movimento delle animazioni</string>
<string name="sk_settings_about_instance">Riguardo all\'istanza</string>
<string name="sk_delete_list_confirm">Sei sicuro di volere eliminare la lista \"%s\"\?</string>
<string name="sk_timeline_home">Home</string>
<string name="sk_confirm_delete_draft">Sei sicuro di volere eliminare questo post in bozza\?</string>
<string name="sk_scheduled_too_soon">I post devono essere programmati almeno tra 10 minuti.</string>
<string name="sk_confirm_delete_draft">Sei sicuro di voler cancellare questa bozza\?</string>
<string name="sk_scheduled_too_soon">Il post deve essere programmato almeno 10 minuti prima.</string>
<string name="sk_recent_searches_placeholder">Scrivi per iniziare a cercare</string>
<string name="sk_remove_follower">Rimuovi come follower</string>
<string name="sk_remove_follower_confirm">Rimuovi %s come follower bloccandolo e sboccandolo immediatamente\?</string>
@@ -250,4 +250,15 @@
<string name="sk_settings_see_new_posts_button">Pulsante \"Mostra nuovi post\"</string>
<string name="sk_settings_server_version">Versione server:%s</string>
<string name="sk_notify_poll_results">Risultati del sondaggio</string>
<string name="sk_settings_prefix_reply_cw_with_re">Aggiungi \"re:\" prima dei CW</string>
<string name="sk_filtered">Filtrato: %s</string>
<string name="sk_expand">Espandi</string>
<string name="sk_collapse">Chiudi</string>
<string name="sk_settings_collapse_long_posts">Comprimi post molto lunghi</string>
<string name="sk_unfinished_attachments">Correggi gli allegati\?</string>
<string name="sk_unfinished_attachments_message">Alcuni allegati non hanno finito l\'upload.</string>
<string name="sk_settings_hide_interaction">Nascondi i pulsanti di interazione</string>
<string name="sk_follow_as">Segui con un altro account</string>
<string name="sk_followed_as">Seguito con %s</string>
<string name="sk_settings_hide_fab">Nascondi automaticamente il pulsante Pubblica</string>
</resources>

View File

@@ -21,4 +21,5 @@
<string name="mo_disable_relocate_publish_button_to_enable_customization">Wyłącz opcję Przenoszenia przycisku publikacji aby umożliwić dostosowywanie</string>
<string name="mo_filtered">Wyfiltrowano: %s</string>
<string name="mo_disable_reminder_to_add_alt_text">Wyłącz przypomnienie o dodaniu opisu</string>
<string name="mo_add_custom_server_local_timeline">Dodaj lokalną oś czasu innej instancji</string>
</resources>

View File

@@ -21,4 +21,5 @@
<string name="mo_poll_option_add">Adicionar nova opção de enquete</string>
<string name="mo_filtered">Filtrado: %s</string>
<string name="mo_disable_reminder_to_add_alt_text">Desabilitar lembrete de adicionar textos descritivos</string>
<string name="mo_add_custom_server_local_timeline">Adicionar a linha local de um servidor customizado</string>
</resources>

View File

@@ -1,4 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
</resources>
<string name="mo_welcome_text">Щоб розпочати, будь ласка, введіть адресу вашого екземпляру нижче.</string>
<string name="mo_no_image_desc">Зображення не мають опису. Ви можете додати його, щоб люди із вадами зору могли зрозуміти, яке забарвлення в котика.</string>
<string name="mo_disable_relocate_publish_button_to_enable_customization">Вимкніть переміщення кнопки \"Опублікувати\" для кастомізації</string>
<string name="mo_color_palette_nord">Nord</string>
<string name="mo_disable_dividers">Вимкнути роздільники публікацій</string>
<string name="mo_relocate_publish_button">Перемістити кнопку \"Опублікувати\"</string>
<string name="mo_hide_compose_button_while_scrolling_setting">Сховати кнопку \"Нова публікація\" під час прокручування</string>
<string name="mo_personal_note">Додати нотатку до цього профілю</string>
<string name="mo_personal_note_confirm">Підтвердити зміни</string>
<string name="mo_personal_note_update_failed">Не вдалося зберегти нотатку</string>
<string name="mo_settings_contribute">Допомогти у розробці Moshidon</string>
<string name="mo_update_available">Moshidon %s готовий до завантаження.</string>
<string name="mo_update_ready">Moshidon %s готовий до встановлення.</string>
<string name="mo_no_image_desc_title">Немає опису зображення</string>
<string name="mo_emoji_recent">Нещодавні</string>
<string name="mo_clear_recent_emoji">Очистити нещодавні емоджи</string>
<string name="mo_disable_reminder_to_add_alt_text">Вимкнути повідомлення про додавання опису зображення</string>
<string name="mo_poll_option_add">Опція \"додати нове опитування\"</string>
<string name="mo_fab_compose">Новий допис</string>
<string name="mo_sending_error">Помилка при публікації</string>
<string name="mo_filtered">Відфільтровано: %s</string>
<string name="mo_add_custom_server_local_timeline">Додати місцеву стрічку іншого серверу</string>
</resources>

View File

@@ -21,4 +21,5 @@
<string name="mo_sending_error">发布帖文时出错</string>
<string name="mo_filtered">已过滤:%s</string>
<string name="mo_disable_reminder_to_add_alt_text">禁用添加ALT文本的提醒</string>
<string name="mo_add_custom_server_local_timeline">添加自定义实例的本地时间线</string>
</resources>

View File

@@ -0,0 +1,5 @@
Neue Dinge für 94:
- Verbesserungen am Verhalten des Fabs
- Geringfügige Änderungen am Launchersymbol
- Verbesserungen des Benachrichtigungsverhaltens
- Kleinere Fehlerbehebungen und Verbesserungen

View File

@@ -0,0 +1,3 @@
Neue Dinge für 95:
- Hinzufügen der Möglichkeit, die lokalen Timelines anderer Server in den Timelines anzuzeigen
- Kleinere Korrekturen und Verbesserungen

View File

@@ -0,0 +1,3 @@
Neue Dinge für 96:
- Verbesserung der Möglichkeit, die lokalen Timelines anderer Server in den Timelines anzuzeigen
- Kleinere Korrekturen und Verbesserungen

View File

@@ -1,3 +1,3 @@
New things for 95:
New things for 96:
- Improving the ability to have other server's local timelines in the timelines
- Minor fixes and improvements

View File

@@ -0,0 +1,3 @@
Release 97 adds:
- New Custom Local Timelines feature. It can be accessed on the add timelines menu
- Minor fixes and improvements

View File

@@ -0,0 +1 @@
Initial play store release

Binary file not shown.

Before

Width:  |  Height:  |  Size: 167 KiB

After

Width:  |  Height:  |  Size: 170 KiB

View File

@@ -1,6 +0,0 @@
- Filtros mejorados, incluida la compatibilidad con la opción "Ocultar con advertencia"
- Página de perfil rediseñada con los metadatos directamente debajo de la biografía.
- Función de contraer/expandir para mensajes muy largos.
- Opción de anteponer automáticamente el prefijo "re:" a los mensajes de respuesta.
- Opción de ocultar los botones de interacción en la línea de tiempo
- Varias correcciones de errores, ajustes y mejoras

View File

@@ -1,4 +0,0 @@
- Mantenga presionado el botón de seguimiento para seguir los perfiles de otra cuenta
- Opción para abrir perfiles en otra cuenta
- Ocultar automáticamente el botón de redacción al desplazarse hacia abajo en la línea de tiempo
- Solucione el bloqueo al abrir los perfiles de administrador del servidor

View File

@@ -1,4 +1,4 @@
- Manter pulsado o botón de seguir para seguir perfís de outra conta
- Opción de abrir perfís de outra conta
- Auto-ocultar o botón de redacción cando deslizas cara abaixo na cronoloxía
- Arranxados
- Arranxado o bloqueo ao abrir os perfís dos administradores do servidor

View File

@@ -0,0 +1,10 @@
- Nuova home con timeline pubbliche
- Mostra annunci del server
- Testo scalato in base alle impostazioni di sistema
- Filtro migliorato (no, "Nascondi con avvertimento" non funziona ancora) da @thiagojedi
- Funzionalità di gestione delle liste
- Rimozione di follower con blocco morbido
- Respinte le connessioni con fascisti
- Risolto il non caricamento delle immagini se connessi all'istanza di Akkoma
- Risoluzioni di bug e miglioramenti UI
- Aggiunto il registro delle modiifche da @LucasGGamerM

View File

@@ -0,0 +1,9 @@
- Le timelines possono essere fissate e riorganizzate
- Supporto per post solo locali
- Aggiunti indicatori per testi alternativi mancanti
- Migliorato l'editor del testo alternativo
- Aggiunta intestazione nella home per gli hashtag seguiti
- Più categorie di notifiche
- Aggiunta nuovamente la possibilità di aprire file
- Aggiunto avviso quando si salvano le bozze
- Aggiunta opzione per disabilitare il tasto "Visualizza nuovi post"

View File

@@ -0,0 +1,6 @@
- Migliorati i filtri, compresa la compatibilità con "Nascondi con avvertimento"
- Ripensata la pagina del profilo con metadati sotto la bio
- Funzione mostra/nascondi per post molto lunghi
- Possibilità di iniziare le risposte a dei Content Warning con "re:"
- Possiblità di nascondere i pulsanti di interazione nello scorrimento della timeline
- Numerose correzioni di bug e miglioramenti

View File

@@ -0,0 +1,4 @@
- Possibilità di seguire con un altro account con tocco prolungato
- Possibilità di aprire profili con un altro account
- Aggiunta la possibilità di nascondere il pulsante per pubblicare quando si scorre nella timeline
- Corretti crash nell'apertura di profili degli amministratori del server

View File

@@ -0,0 +1 @@
Mastodon na Android ale ma motyw Material You i ma więcej funkcji

1
metadata/pl/title.txt Normal file
View File

@@ -0,0 +1 @@
Moshidon

View File

@@ -0,0 +1 @@
Mastodon для Android, але має більше функцій й дизайн Material You

1
metadata/uk/title.txt Normal file
View File

@@ -0,0 +1 @@
Moshidon