Compare commits
41 Commits
feature/di
...
feature/ma
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eec547618f | ||
|
|
a3ee174d66 | ||
|
|
45832355a3 | ||
|
|
51d4fd63db | ||
|
|
ececa7aa2f | ||
|
|
6cf8793efe | ||
|
|
57251d58cb | ||
|
|
cf1f8e8d1a | ||
|
|
c77cb14602 | ||
|
|
de864edb33 | ||
|
|
699925ac9b | ||
|
|
e367b7711f | ||
|
|
b0e4f707aa | ||
|
|
2749ffb6f2 | ||
|
|
47f57bab17 | ||
|
|
f1b0f828ac | ||
|
|
5b1188ce97 | ||
|
|
c11863388d | ||
|
|
476b462e86 | ||
|
|
f69b308936 | ||
|
|
bdcafd2564 | ||
|
|
3455aab3ba | ||
|
|
aac4f412bd | ||
|
|
26831c3375 | ||
|
|
d7004824fb | ||
|
|
53d93764b0 | ||
|
|
6a84462b79 | ||
|
|
739d30c887 | ||
|
|
aa3aa8a5f9 | ||
|
|
be48719f52 | ||
|
|
8e60d107fe | ||
|
|
c618feabe9 | ||
|
|
87164dc469 | ||
|
|
4ab1c61262 | ||
|
|
fe519f10a1 | ||
|
|
901c7c3806 | ||
|
|
211e6cdee2 | ||
|
|
394699c072 | ||
|
|
c9766defff | ||
|
|
737aa95bf5 | ||
|
|
38e035d792 |
@@ -15,7 +15,7 @@
|
||||
<application
|
||||
android:name=".MastodonApp"
|
||||
android:allowBackup="true"
|
||||
android:label="@string/app_name"
|
||||
android:label="@string/mo_app_name"
|
||||
android:supportsRtl="true"
|
||||
android:localeConfig="@xml/locales_config"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
|
||||
@@ -33,6 +33,7 @@ public class GlobalUserPreferences{
|
||||
public static boolean relocatePublishButton;
|
||||
public static boolean reduceMotion;
|
||||
public static boolean keepOnlyLatestNotification;
|
||||
public static boolean enableFabAutoHide;
|
||||
public static String publishButtonText;
|
||||
public static ThemePreference theme;
|
||||
public static ColorPreference color;
|
||||
@@ -72,6 +73,7 @@ public class GlobalUserPreferences{
|
||||
enableDeleteNotifications=prefs.getBoolean("enableDeleteNotifications", true);
|
||||
reduceMotion=prefs.getBoolean("reduceMotion", false);
|
||||
keepOnlyLatestNotification=prefs.getBoolean("keepOnlyLatestNotification", false);
|
||||
enableFabAutoHide =prefs.getBoolean("enableFabAutoHide", true);
|
||||
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
|
||||
recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>());
|
||||
recentEmojis=fromJson(prefs.getString("recentEmojis", "{}"), recentEmojisType, new HashMap<>());
|
||||
@@ -108,6 +110,7 @@ public class GlobalUserPreferences{
|
||||
.putBoolean("enableDeleteNotifications", enableDeleteNotifications)
|
||||
.putBoolean("reduceMotion", reduceMotion)
|
||||
.putBoolean("keepOnlyLatestNotification", keepOnlyLatestNotification)
|
||||
.putBoolean("enableFabAutoHide", enableFabAutoHide)
|
||||
.putString("publishButtonText", publishButtonText)
|
||||
.putInt("theme", theme.ordinal())
|
||||
.putString("color", color.name())
|
||||
|
||||
@@ -40,12 +40,13 @@ public class MainActivity extends FragmentStackActivity{
|
||||
AccountSession session;
|
||||
Bundle args=new Bundle();
|
||||
Intent intent=getIntent();
|
||||
if(intent.getBooleanExtra("fromNotification", false)){
|
||||
boolean fromNotification = intent.getBooleanExtra("fromNotification", false);
|
||||
boolean hasNotification = intent.hasExtra("notification");
|
||||
if(fromNotification){
|
||||
String accountID=intent.getStringExtra("accountID");
|
||||
try{
|
||||
session=AccountSessionManager.getInstance().getAccount(accountID);
|
||||
if(!intent.hasExtra("notification"))
|
||||
args.putString("tab", "notifications");
|
||||
if(!hasNotification) args.putString("tab", "notifications");
|
||||
}catch(IllegalStateException x){
|
||||
session=AccountSessionManager.getInstance().getLastActiveAccount();
|
||||
}
|
||||
@@ -55,13 +56,13 @@ public class MainActivity extends FragmentStackActivity{
|
||||
args.putString("account", session.getID());
|
||||
Fragment fragment=session.activated ? new HomeFragment() : new AccountActivationFragment();
|
||||
fragment.setArguments(args);
|
||||
showFragmentClearingBackStack(fragment);
|
||||
if(intent.getBooleanExtra("fromNotification", false) && intent.hasExtra("notification")){
|
||||
if(fromNotification && hasNotification){
|
||||
Notification notification=Parcels.unwrap(intent.getParcelableExtra("notification"));
|
||||
showFragmentForNotification(notification, session.getID());
|
||||
}else if(intent.getBooleanExtra("compose", false)){
|
||||
} else if (intent.getBooleanExtra("compose", false)){
|
||||
showCompose();
|
||||
}else{
|
||||
} else {
|
||||
showFragmentClearingBackStack(fragment);
|
||||
maybeRequestNotificationsPermission();
|
||||
}
|
||||
}
|
||||
@@ -140,4 +141,30 @@ public class MainActivity extends FragmentStackActivity{
|
||||
requestPermissions(new String[]{Manifest.permission.POST_NOTIFICATIONS}, 100);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* when opening app through a notification: if (thread) fragment "can go back", clear back stack
|
||||
* and show home fragment. upstream's implementation doesn't require this as it opens home first
|
||||
* and then immediately switches to the notification's ThreadFragment. this causes a black
|
||||
* screen in megalodon, for some reason, so i'm working around this that way.
|
||||
*/
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
Fragment currentFragment = getFragmentManager().findFragmentById(
|
||||
(fragmentContainers.get(fragmentContainers.size() - 1)).getId()
|
||||
);
|
||||
Bundle currentArgs = currentFragment.getArguments();
|
||||
if (this.fragmentContainers.size() == 1
|
||||
&& currentArgs.getBoolean("_can_go_back", false)
|
||||
&& currentArgs.containsKey("account")) {
|
||||
Bundle args = new Bundle();
|
||||
args.putString("account", currentArgs.getString("account"));
|
||||
args.putString("tab", "notifications");
|
||||
Fragment fragment=new HomeFragment();
|
||||
fragment.setArguments(args);
|
||||
showFragmentClearingBackStack(fragment);
|
||||
} else {
|
||||
super.onBackPressed();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ public class RegisterForPushNotifications extends MastodonAPIRequest<PushSubscri
|
||||
Request r=new Request();
|
||||
r.subscription.endpoint="https://app.joinmastodon.org/relay-to/fcm/"+deviceToken+"/"+accountID;
|
||||
r.data.alerts=alerts;
|
||||
r.data.policy=policy;
|
||||
r.policy=policy;
|
||||
r.subscription.keys.p256dh=encryptionKey;
|
||||
r.subscription.keys.auth=authKey;
|
||||
setRequestBody(r);
|
||||
@@ -18,6 +18,7 @@ public class RegisterForPushNotifications extends MastodonAPIRequest<PushSubscri
|
||||
private static class Request{
|
||||
public Subscription subscription=new Subscription();
|
||||
public Data data=new Data();
|
||||
public PushSubscription.Policy policy;
|
||||
|
||||
private static class Keys{
|
||||
public String p256dh;
|
||||
@@ -31,7 +32,6 @@ public class RegisterForPushNotifications extends MastodonAPIRequest<PushSubscri
|
||||
|
||||
private static class Data{
|
||||
public PushSubscription.Alerts alerts;
|
||||
public PushSubscription.Policy policy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,23 +3,36 @@ package org.joinmastodon.android.api.requests.notifications;
|
||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
import org.joinmastodon.android.model.PushSubscription;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import okhttp3.Response;
|
||||
|
||||
public class UpdatePushSettings extends MastodonAPIRequest<PushSubscription>{
|
||||
private final PushSubscription.Policy policy;
|
||||
|
||||
public UpdatePushSettings(PushSubscription.Alerts alerts, PushSubscription.Policy policy){
|
||||
super(HttpMethod.PUT, "/push/subscription", PushSubscription.class);
|
||||
setRequestBody(new Request(alerts, policy));
|
||||
this.policy=policy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void validateAndPostprocessResponse(PushSubscription respObj, Response httpResponse) throws IOException{
|
||||
super.validateAndPostprocessResponse(respObj, httpResponse);
|
||||
respObj.policy=policy;
|
||||
}
|
||||
|
||||
private static class Request{
|
||||
public Data data=new Data();
|
||||
public PushSubscription.Policy policy;
|
||||
|
||||
public Request(PushSubscription.Alerts alerts, PushSubscription.Policy policy){
|
||||
this.data.alerts=alerts;
|
||||
this.data.policy=policy;
|
||||
this.policy=policy;
|
||||
}
|
||||
|
||||
private static class Data{
|
||||
public PushSubscription.Alerts alerts;
|
||||
public PushSubscription.Policy policy;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
package org.joinmastodon.android.api.requests.timelines;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import org.joinmastodon.android.api.MastodonAPIRequest;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class GetConversationsTimeline extends MastodonAPIRequest<List<Status>>{
|
||||
public GetConversationsTimeline(String maxID, String minID, int limit, String sinceID){
|
||||
super(HttpMethod.GET, "/conversations", new TypeToken<>(){});
|
||||
if(maxID!=null)
|
||||
addQueryParameter("max_id", maxID);
|
||||
if(minID!=null)
|
||||
addQueryParameter("min_id", minID);
|
||||
if(sinceID!=null)
|
||||
addQueryParameter("since_id", sinceID);
|
||||
if(limit>0)
|
||||
addQueryParameter("limit", ""+limit);
|
||||
}
|
||||
}
|
||||
@@ -13,7 +13,6 @@ import android.text.Layout;
|
||||
import android.text.StaticLayout;
|
||||
import android.text.TextPaint;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.WindowInsets;
|
||||
@@ -75,7 +74,7 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
protected String accountID;
|
||||
protected PhotoViewer currentPhotoViewer;
|
||||
protected ImageButton fab;
|
||||
protected boolean isScrollingUp = false;
|
||||
protected int scrollDiff = 0;
|
||||
protected HashMap<String, Account> knownAccounts=new HashMap<>();
|
||||
protected HashMap<String, Relationship> relationships=new HashMap<>();
|
||||
protected Rect tmpRect=new Rect();
|
||||
@@ -279,28 +278,30 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
fab=view.findViewById(R.id.fab);
|
||||
|
||||
list.addOnScrollListener(new RecyclerView.OnScrollListener(){
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy){
|
||||
if(currentPhotoViewer!=null)
|
||||
currentPhotoViewer.offsetView(-dx, -dy);
|
||||
|
||||
if (fab!=null) {
|
||||
if (dy >= 0 ) {
|
||||
if (isScrollingUp) {
|
||||
fab.setVisibility(View.INVISIBLE);
|
||||
TranslateAnimation animate = new TranslateAnimation(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
fab.getHeight() * 2);
|
||||
animate.setDuration(300);
|
||||
animate.setFillAfter(true);
|
||||
fab.startAnimation(animate);
|
||||
isScrollingUp = false;
|
||||
}
|
||||
} else {
|
||||
if (!isScrollingUp) {
|
||||
if (fab!=null && GlobalUserPreferences.enableFabAutoHide) {
|
||||
if(dy > 0){
|
||||
scrollDiff = 0;
|
||||
}
|
||||
if (dy > 0 && fab.getVisibility() == View.VISIBLE) {
|
||||
TranslateAnimation animate = new TranslateAnimation(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
fab.getHeight() * 2);
|
||||
animate.setDuration(300);
|
||||
animate.setFillAfter(true);
|
||||
fab.startAnimation(animate);
|
||||
fab.setVisibility(View.INVISIBLE);
|
||||
scrollDiff = 0;
|
||||
} else if (dy < 0 && fab.getVisibility() != View.VISIBLE) {
|
||||
if (scrollDiff > 800) {
|
||||
fab.setVisibility(View.VISIBLE);
|
||||
TranslateAnimation animate = new TranslateAnimation(
|
||||
0,
|
||||
@@ -310,7 +311,9 @@ public abstract class BaseStatusListFragment<T extends DisplayItemsParent> exten
|
||||
animate.setDuration(300);
|
||||
animate.setFillAfter(true);
|
||||
fab.startAnimation(animate);
|
||||
isScrollingUp = true;
|
||||
scrollDiff = 0;
|
||||
} else {
|
||||
scrollDiff += Math.abs(dy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -948,8 +948,8 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
||||
&& statusVisibility != StatusPrivacy.DIRECT
|
||||
&& !attachments.stream().allMatch(attachment -> attachment.description != null && !attachment.description.isBlank())) {
|
||||
new M3AlertDialogBuilder(getActivity())
|
||||
.setTitle(R.string.sk_no_image_desc_title)
|
||||
.setMessage(R.string.sk_no_image_desc)
|
||||
.setTitle(R.string.mo_no_image_desc_title)
|
||||
.setMessage(R.string.mo_no_image_desc)
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.setPositiveButton(R.string.publish, (dialog, i)-> publish())
|
||||
.show();
|
||||
|
||||
@@ -1,253 +0,0 @@
|
||||
package org.joinmastodon.android.fragments;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.joinmastodon.android.GlobalUserPreferences;
|
||||
import org.joinmastodon.android.api.requests.timelines.GetConversationsTimeline;
|
||||
import org.joinmastodon.android.api.requests.timelines.GetHomeTimeline;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.events.StatusCreatedEvent;
|
||||
import org.joinmastodon.android.model.CacheablePaginatedResponse;
|
||||
import org.joinmastodon.android.model.Filter;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.model.StatusPrivacy;
|
||||
import org.joinmastodon.android.ui.displayitems.GapStatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
|
||||
import org.joinmastodon.android.utils.StatusFilterPredicate;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
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 ConversationsTimelineFragment extends FabStatusListFragment {
|
||||
private HomeTabFragment parent;
|
||||
private String maxID;
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity){
|
||||
super.onAttach(activity);
|
||||
if (getParentFragment() instanceof HomeTabFragment home) parent = home;
|
||||
loadData();
|
||||
}
|
||||
|
||||
private List<Status> filterPosts(List<Status> items) {
|
||||
// Disabling this for DMs, because there are no boosts on DMs, and most of them are replies
|
||||
return items.stream().filter(i ->
|
||||
(i.visibility == StatusPrivacy.DIRECT)
|
||||
).collect(Collectors.toList());
|
||||
// return items;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doLoadData(int offset, int count){
|
||||
AccountSessionManager.getInstance()
|
||||
.getAccount(accountID).getCacheController()
|
||||
.getHomeTimeline(offset>0 ? maxID : null, count, refreshing, new SimpleCallback<>(this){
|
||||
@Override
|
||||
public void onSuccess(CacheablePaginatedResponse<List<Status>> result){
|
||||
if(getActivity()==null)
|
||||
return;
|
||||
List<Status> filteredItems = filterPosts(result.items);
|
||||
onDataLoaded(filteredItems, !result.items.isEmpty());
|
||||
maxID=result.maxID;
|
||||
if(result.isFromCache())
|
||||
loadNewPosts();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
|
||||
list.addOnScrollListener(new RecyclerView.OnScrollListener(){
|
||||
@Override
|
||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy){
|
||||
if(parent != null && parent.isNewPostsBtnShown() && list.getChildAdapterPosition(list.getChildAt(0))<=getMainAdapterOffset()){
|
||||
parent.hideNewPostsButton();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onShown(){
|
||||
super.onShown();
|
||||
if(!getArguments().getBoolean("noAutoLoad")){
|
||||
if(!loaded && !dataLoading){
|
||||
loadData();
|
||||
}else if(!dataLoading){
|
||||
loadNewPosts();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void onStatusCreated(StatusCreatedEvent ev){
|
||||
prependItems(Collections.singletonList(ev.status), true);
|
||||
}
|
||||
|
||||
private void loadNewPosts(){
|
||||
if (!GlobalUserPreferences.loadNewPosts) return;
|
||||
dataLoading=true;
|
||||
// The idea here is that we request the timeline such that if there are fewer than `limit` posts,
|
||||
// we'll get the currently topmost post as last in the response. This way we know there's no gap
|
||||
// between the existing and newly loaded parts of the timeline.
|
||||
String sinceID=data.size()>1 ? data.get(1).id : "1";
|
||||
currentRequest=new GetConversationsTimeline(null, null, 20, sinceID)
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(List<Status> result){
|
||||
currentRequest=null;
|
||||
dataLoading=false;
|
||||
result = filterPosts(result);
|
||||
if(result.isEmpty() || getActivity()==null)
|
||||
return;
|
||||
Status last=result.get(result.size()-1);
|
||||
List<Status> toAdd;
|
||||
if(!data.isEmpty() && last.id.equals(data.get(0).id)){ // This part intersects with the existing one
|
||||
toAdd=result.subList(0, result.size()-1); // Remove the already known last post
|
||||
}else{
|
||||
result.get(result.size()-1).hasGapAfter=true;
|
||||
toAdd=result;
|
||||
}
|
||||
StatusFilterPredicate filterPredicate=new StatusFilterPredicate(accountID, Filter.FilterContext.HOME);
|
||||
toAdd=toAdd.stream().filter(filterPredicate).collect(Collectors.toList());
|
||||
if(!toAdd.isEmpty()){
|
||||
prependItems(toAdd, true);
|
||||
if (parent != null) parent.showNewPostsButton();
|
||||
// AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putHomTimeline(toAdd, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
currentRequest=null;
|
||||
dataLoading=false;
|
||||
}
|
||||
})
|
||||
.exec(accountID);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onGapClick(GapStatusDisplayItem.Holder item){
|
||||
if(dataLoading)
|
||||
return;
|
||||
item.getItem().loading=true;
|
||||
V.setVisibilityAnimated(item.progress, View.VISIBLE);
|
||||
V.setVisibilityAnimated(item.text, View.GONE);
|
||||
GapStatusDisplayItem gap=item.getItem();
|
||||
dataLoading=true;
|
||||
currentRequest=new GetConversationsTimeline(item.getItemID(), null, 20, null)
|
||||
.setCallback(new Callback<>(){
|
||||
@Override
|
||||
public void onSuccess(List<Status> result){
|
||||
currentRequest=null;
|
||||
dataLoading=false;
|
||||
if(getActivity()==null)
|
||||
return;
|
||||
int gapPos=displayItems.indexOf(gap);
|
||||
if(gapPos==-1)
|
||||
return;
|
||||
if(result.isEmpty()){
|
||||
displayItems.remove(gapPos);
|
||||
adapter.notifyItemRemoved(getMainAdapterOffset()+gapPos);
|
||||
Status gapStatus=getStatusByID(gap.parentID);
|
||||
if(gapStatus!=null){
|
||||
gapStatus.hasGapAfter=false;
|
||||
// AccountSessionManager.getInstance().getAccount(accountID).getCacheController().putConversationsTimeline(Collections.singletonList(gapStatus), false);
|
||||
}
|
||||
}else{
|
||||
Set<String> 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().putConversationsTimeline(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<StatusDisplayItem> targetList=displayItems.subList(gapPos, gapPos+1);
|
||||
targetList.clear();
|
||||
List<Status> insertedPosts=data.subList(gapPostIndex+1, gapPostIndex+1);
|
||||
StatusFilterPredicate filterPredicate=new StatusFilterPredicate(accountID, Filter.FilterContext.HOME);
|
||||
for(Status s:result){
|
||||
if(idsBelowGap.contains(s.id))
|
||||
break;
|
||||
if(filterPredicate.test(s)){
|
||||
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().putConversationsTimeline(insertedPosts, false);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse error){
|
||||
currentRequest=null;
|
||||
dataLoading=false;
|
||||
gap.loading=false;
|
||||
Activity a=getActivity();
|
||||
if(a!=null){
|
||||
error.showToast(a);
|
||||
int gapPos=displayItems.indexOf(gap);
|
||||
if(gapPos>=0)
|
||||
adapter.notifyItemChanged(gapPos);
|
||||
}
|
||||
}
|
||||
})
|
||||
.exec(accountID);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRefresh(){
|
||||
if(currentRequest!=null){
|
||||
currentRequest.cancel();
|
||||
currentRequest=null;
|
||||
dataLoading=false;
|
||||
}
|
||||
if (parent != null) parent.hideNewPostsButton();
|
||||
super.onRefresh();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean shouldRemoveAccountPostsWhenUnfollowing(){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -16,7 +16,6 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import org.joinmastodon.android.PushNotificationReceiver;
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.api.session.AccountSession;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
@@ -62,7 +61,7 @@ public class HomeFragment extends AppKitFragment implements OnBackPressedListene
|
||||
public void onCreate(Bundle savedInstanceState){
|
||||
super.onCreate(savedInstanceState);
|
||||
accountID=getArguments().getString("account");
|
||||
setTitle(R.string.sk_app_name);
|
||||
setTitle(R.string.mo_app_name);
|
||||
|
||||
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.N)
|
||||
setRetainInstance(true);
|
||||
|
||||
@@ -8,6 +8,9 @@ import androidx.annotation.NonNull;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.joinmastodon.android.GlobalUserPreferences;
|
||||
import org.joinmastodon.android.E;
|
||||
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.AccountSessionManager;
|
||||
import org.joinmastodon.android.events.StatusCreatedEvent;
|
||||
@@ -32,6 +35,7 @@ import me.grishka.appkit.utils.V;
|
||||
public class HomeTimelineFragment extends FabStatusListFragment {
|
||||
private HomeTabFragment parent;
|
||||
private String maxID;
|
||||
private String lastSavedMarkerID;
|
||||
|
||||
@Override
|
||||
public void onAttach(Activity activity){
|
||||
@@ -91,6 +95,29 @@ public class HomeTimelineFragment extends FabStatusListFragment {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onHidden(){
|
||||
super.onHidden();
|
||||
// if(!data.isEmpty()){
|
||||
// String topPostID=displayItems.get(list.getChildAdapterPosition(list.getChildAt(0))-getMainAdapterOffset()).parentID;
|
||||
// if(!topPostID.equals(lastSavedMarkerID)){
|
||||
// lastSavedMarkerID=topPostID;
|
||||
// new SaveMarkers(topPostID, null)
|
||||
// .setCallback(new Callback<>(){
|
||||
// @Override
|
||||
// public void onSuccess(SaveMarkers.Response result){
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// public void onError(ErrorResponse error){
|
||||
// lastSavedMarkerID=null;
|
||||
// }
|
||||
// })
|
||||
// .exec(accountID);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
public void onStatusCreated(StatusCreatedEvent ev){
|
||||
prependItems(Collections.singletonList(ev.status), true);
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
||||
private FrameLayout[] tabViews;
|
||||
private TabLayoutMediator tabLayoutMediator;
|
||||
|
||||
private NotificationsListFragment allNotificationsFragment, mentionsFragment, conversationsFragment;
|
||||
private NotificationsListFragment allNotificationsFragment, mentionsFragment, postsFragment;
|
||||
|
||||
private String accountID;
|
||||
|
||||
@@ -151,14 +151,14 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
||||
mentionsFragment.setArguments(args);
|
||||
|
||||
args=new Bundle(args);
|
||||
args.putBoolean("onlyConversations", true);
|
||||
conversationsFragment =new NotificationsListFragment();
|
||||
conversationsFragment.setArguments(args);
|
||||
args.putBoolean("onlyPosts", true);
|
||||
postsFragment=new NotificationsListFragment();
|
||||
postsFragment.setArguments(args);
|
||||
|
||||
getChildFragmentManager().beginTransaction()
|
||||
.add(R.id.notifications_all, allNotificationsFragment)
|
||||
.add(R.id.notifications_mentions, mentionsFragment)
|
||||
.add(R.id.notifications_posts, conversationsFragment)
|
||||
.add(R.id.notifications_posts, postsFragment)
|
||||
.commit();
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
||||
tab.setText(switch(position){
|
||||
case 0 -> R.string.all_notifications;
|
||||
case 1 -> R.string.mentions;
|
||||
case 2 -> R.string.sk_conversations;
|
||||
case 2 -> R.string.posts;
|
||||
default -> throw new IllegalStateException("Unexpected value: "+position);
|
||||
});
|
||||
tab.view.textView.setAllCaps(true);
|
||||
@@ -217,7 +217,7 @@ public class NotificationsFragment extends MastodonToolbarFragment implements Sc
|
||||
return switch(page){
|
||||
case 0 -> allNotificationsFragment;
|
||||
case 1 -> mentionsFragment;
|
||||
case 2 -> conversationsFragment;
|
||||
case 2 -> postsFragment;
|
||||
default -> throw new IllegalStateException("Unexpected value: "+page);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,21 +11,17 @@ import com.squareup.otto.Subscribe;
|
||||
import org.joinmastodon.android.E;
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.api.requests.markers.SaveMarkers;
|
||||
import org.joinmastodon.android.api.requests.timelines.GetConversationsTimeline;
|
||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
||||
import org.joinmastodon.android.events.PollUpdatedEvent;
|
||||
import org.joinmastodon.android.events.RemoveAccountPostsEvent;
|
||||
import org.joinmastodon.android.model.CacheablePaginatedResponse;
|
||||
import org.joinmastodon.android.model.Notification;
|
||||
import org.joinmastodon.android.model.PaginatedResponse;
|
||||
import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.model.StatusPrivacy;
|
||||
import org.joinmastodon.android.ui.displayitems.AccountCardStatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.displayitems.HeaderStatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.displayitems.ImageStatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
|
||||
import org.joinmastodon.android.ui.utils.InsetStatusItemDecoration;
|
||||
import org.joinmastodon.android.utils.StatusFilterPredicate;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -38,16 +34,12 @@ import java.util.stream.Stream;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import me.grishka.appkit.Nav;
|
||||
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 NotificationsListFragment extends BaseStatusListFragment<Notification>{
|
||||
private boolean onlyMentions;
|
||||
private boolean onlyPosts;
|
||||
|
||||
private boolean onlyConversations;
|
||||
private String maxID;
|
||||
|
||||
@Override
|
||||
@@ -67,7 +59,6 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
||||
super.onAttach(activity);
|
||||
onlyMentions=getArguments().getBoolean("onlyMentions", false);
|
||||
onlyPosts=getArguments().getBoolean("onlyPosts", false);
|
||||
onlyConversations=getArguments().getBoolean("onlyConversations", false);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -119,29 +110,28 @@ public class NotificationsListFragment extends BaseStatusListFragment<Notificati
|
||||
|
||||
@Override
|
||||
protected void doLoadData(int offset, int count){
|
||||
AccountSessionManager.getInstance()
|
||||
.getAccount(accountID).getCacheController()
|
||||
.getNotifications(offset > 0 ? maxID : null, count, onlyMentions, onlyPosts || onlyConversations, refreshing, new SimpleCallback<>(this) {
|
||||
@Override
|
||||
public void onSuccess(PaginatedResponse<List<Notification>> result) {
|
||||
if (getActivity() == null)
|
||||
return;
|
||||
if (refreshing)
|
||||
relationships.clear();
|
||||
onDataLoaded(result.items.stream().filter(n -> n.type != null || (onlyConversations &&)).collect(Collectors.toList()), !result.items.isEmpty());
|
||||
Set<String> needRelationships = result.items.stream()
|
||||
.filter(ntf -> ntf.status == null && !relationships.containsKey(ntf.account.id))
|
||||
.map(ntf -> ntf.account.id)
|
||||
.collect(Collectors.toSet());
|
||||
loadRelationships(needRelationships);
|
||||
maxID = result.maxID;
|
||||
AccountSessionManager.getInstance()
|
||||
.getAccount(accountID).getCacheController()
|
||||
.getNotifications(offset>0 ? maxID : null, count, onlyMentions, onlyPosts, refreshing, new SimpleCallback<>(this){
|
||||
@Override
|
||||
public void onSuccess(PaginatedResponse<List<Notification>> result){
|
||||
if(getActivity()==null)
|
||||
return;
|
||||
if(refreshing)
|
||||
relationships.clear();
|
||||
onDataLoaded(result.items.stream().filter(n->n.type!=null).collect(Collectors.toList()), !result.items.isEmpty());
|
||||
Set<String> needRelationships=result.items.stream()
|
||||
.filter(ntf->ntf.status==null && !relationships.containsKey(ntf.account.id))
|
||||
.map(ntf->ntf.account.id)
|
||||
.collect(Collectors.toSet());
|
||||
loadRelationships(needRelationships);
|
||||
maxID=result.maxID;
|
||||
|
||||
if (offset == 0 && !result.items.isEmpty()) {
|
||||
new SaveMarkers(null, result.items.get(0).id).exec(accountID);
|
||||
}
|
||||
if(offset==0 && !result.items.isEmpty()){
|
||||
new SaveMarkers(null, result.items.get(0).id).exec(accountID);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -157,7 +157,7 @@ public class ProfileAboutFragment extends Fragment implements WindowInsetsAwareF
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse result) {
|
||||
Toast.makeText(getActivity(), getString(R.string.sk_personal_note_update_failed), Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(getActivity(), getString(R.string.mo_personal_note_update_failed), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}).exec(accountID);
|
||||
}
|
||||
|
||||
@@ -17,13 +17,11 @@ import android.os.Bundle;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.ImageSpan;
|
||||
import android.util.Log;
|
||||
import android.view.Gravity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuInflater;
|
||||
import android.view.MenuItem;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewOutlineProvider;
|
||||
@@ -225,13 +223,31 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
|
||||
noteEdit.setOnFocusChangeListener((v, hasFocus) -> {
|
||||
if (hasFocus) {
|
||||
fab.setVisibility(View.GONE);
|
||||
fab.setVisibility(View.INVISIBLE);
|
||||
TranslateAnimation animate = new TranslateAnimation(
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
fab.getHeight() * 2);
|
||||
animate.setDuration(300);
|
||||
animate.setFillAfter(true);
|
||||
fab.startAnimation(animate);
|
||||
|
||||
noteEditConfirm.setVisibility(View.VISIBLE);
|
||||
noteEditConfirm.animate()
|
||||
.alpha(1.0f)
|
||||
.setDuration(700);
|
||||
} else {
|
||||
fab.setVisibility(View.VISIBLE);
|
||||
TranslateAnimation animate = new TranslateAnimation(
|
||||
0,
|
||||
0,
|
||||
fab.getHeight() * 2,
|
||||
0);
|
||||
animate.setDuration(300);
|
||||
animate.setFillAfter(true);
|
||||
fab.startAnimation(animate);
|
||||
|
||||
noteEditConfirm.animate()
|
||||
.alpha(0.0f)
|
||||
.setDuration(700);
|
||||
@@ -353,7 +369,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
|
||||
@Override
|
||||
public void onError(ErrorResponse result) {
|
||||
Toast.makeText(getActivity(), getString(R.string.sk_personal_note_update_failed), Toast.LENGTH_LONG).show();
|
||||
Toast.makeText(getActivity(), getString(R.string.mo_personal_note_update_failed), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}).exec(accountID);
|
||||
}
|
||||
@@ -386,11 +402,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
if(mediaFragment.loaded)
|
||||
mediaFragment.onRefresh();
|
||||
}
|
||||
// if(noteEdit.hasFocus()){
|
||||
// V.setVisibilityAnimated(fab, View.GONE);
|
||||
// }else{
|
||||
// V.setVisibilityAnimated(fab, View.VISIBLE);
|
||||
// }
|
||||
V.setVisibilityAnimated(fab, View.VISIBLE);
|
||||
}
|
||||
})
|
||||
.exec(accountID);
|
||||
@@ -629,7 +641,7 @@ public class ProfileFragment extends LoaderFragment implements OnBackPressedList
|
||||
return;
|
||||
inflater.inflate(isOwnProfile ? R.menu.profile_own : R.menu.profile, menu);
|
||||
if(isOwnProfile){
|
||||
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.manage_user_lists, R.id.bookmarks, R.id.followed_hashtags, R.id.favorites, R.id.scheduled, R.id.share);
|
||||
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.scheduled, R.id.bookmarks, R.id.favorites);
|
||||
}else{
|
||||
UiUtils.enableOptionsMenuIcons(getActivity(), menu, R.id.bookmarks, R.id.followed_hashtags, R.id.favorites, R.id.scheduled);
|
||||
}
|
||||
|
||||
@@ -53,7 +53,6 @@ import org.joinmastodon.android.model.PushSubscription;
|
||||
import org.joinmastodon.android.ui.M3AlertDialogBuilder;
|
||||
import org.joinmastodon.android.ui.OutlineProviders;
|
||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||
import org.joinmastodon.android.ui.views.TextInputFrameLayout;
|
||||
import org.joinmastodon.android.updater.GithubSelfUpdater;
|
||||
import org.parceler.Parcels;
|
||||
|
||||
@@ -140,14 +139,14 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
case BROWN -> R.string.sk_color_palette_brown;
|
||||
case RED -> R.string.sk_color_palette_red;
|
||||
case YELLOW -> R.string.sk_color_palette_yellow;
|
||||
case NORD -> R.string.sk_color_palette_nord;
|
||||
case NORD -> R.string.mo_color_palette_nord;
|
||||
});
|
||||
}));
|
||||
items.add(new ButtonItem(R.string.sk_settings_publish_button_text, R.drawable.ic_fluent_send_24_regular, b-> {
|
||||
updatePublishText(b);
|
||||
if (GlobalUserPreferences.relocatePublishButton) {
|
||||
b.setOnClickListener(l -> {
|
||||
Toast.makeText(getActivity(), R.string.sk_disable_relocate_publish_button_to_enable_customization,
|
||||
Toast.makeText(getActivity(), R.string.mo_disable_relocate_publish_button_to_enable_customization,
|
||||
Toast.LENGTH_LONG).show();
|
||||
});
|
||||
} else {
|
||||
@@ -206,17 +205,22 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
needAppRestart=true;
|
||||
}));
|
||||
// items.add(new SwitchItem(R.string.sk_settings_show_differentiated_notification_icons, R.drawable.ic_ntf_logo, GlobalUserPreferences.showUniformPushNoticationIcons, this::onNotificationStyleChanged));
|
||||
items.add(new SwitchItem(R.string.sk_disable_dividers, R.drawable.ic_fluent_timeline_24_regular, GlobalUserPreferences.disableDividers, i->{
|
||||
items.add(new SwitchItem(R.string.mo_disable_dividers, R.drawable.ic_fluent_timeline_24_regular, GlobalUserPreferences.disableDividers, i->{
|
||||
GlobalUserPreferences.disableDividers=i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
needAppRestart=true;
|
||||
}));
|
||||
items.add(new SwitchItem(R.string.mo_hide_compose_button_while_scrolling_setting, R.drawable.ic_fluent_edit_24_regular, GlobalUserPreferences.enableFabAutoHide, i->{
|
||||
GlobalUserPreferences.enableFabAutoHide =i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
needAppRestart=true;
|
||||
}));
|
||||
// items.add(new SwitchItem(R.string.sk_enable_delete_notifications, R.drawable.ic_fluent_delete_24_regular, GlobalUserPreferences.enableDeleteNotifications, i->{
|
||||
// GlobalUserPreferences.enableDeleteNotifications=i.checked;
|
||||
// GlobalUserPreferences.save();
|
||||
// needAppRestart=true;
|
||||
// }));
|
||||
items.add(new SwitchItem(R.string.sk_relocate_publish_button, R.drawable.ic_fluent_arrow_autofit_down_24_regular, GlobalUserPreferences.relocatePublishButton, i->{
|
||||
items.add(new SwitchItem(R.string.mo_relocate_publish_button, R.drawable.ic_fluent_arrow_autofit_down_24_regular, GlobalUserPreferences.relocatePublishButton, i->{
|
||||
GlobalUserPreferences.relocatePublishButton=i.checked;
|
||||
GlobalUserPreferences.save();
|
||||
}));
|
||||
@@ -282,7 +286,7 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
checkForUpdateItem = new TextItem(R.string.sk_check_for_update, GithubSelfUpdater.getInstance()::checkForUpdates);
|
||||
items.add(checkForUpdateItem);
|
||||
}
|
||||
items.add(new TextItem(R.string.sk_settings_contribute, ()->UiUtils.launchWebBrowser(getActivity(), "https://github.com/LucasGGamerM/moshidon"), R.drawable.ic_fluent_open_24_regular));
|
||||
items.add(new TextItem(R.string.mo_settings_contribute, ()->UiUtils.launchWebBrowser(getActivity(), "https://github.com/LucasGGamerM/moshidon"), R.drawable.ic_fluent_open_24_regular));
|
||||
items.add(new TextItem(R.string.sk_settings_donate, ()->UiUtils.launchWebBrowser(getActivity(), "https://github.com/sponsors/LucasGGamerM"), R.drawable.ic_fluent_heart_24_regular));
|
||||
// items.add(new TextItem(R.string.settings_clear_cache, this::clearImageCache));
|
||||
clearImageCacheItem = new TextItem(R.string.settings_clear_cache, UiUtils.formatFileSize(getContext(), imageCache.getDiskCache().size(), true), this::clearImageCache, 0);
|
||||
@@ -291,13 +295,13 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
GlobalUserPreferences.recentLanguages.remove(accountID);
|
||||
GlobalUserPreferences.save();
|
||||
})));
|
||||
items.add(new TextItem(R.string.sk_clear_recent_emoji, ()-> {
|
||||
items.add(new TextItem(R.string.mo_clear_recent_emoji, ()-> {
|
||||
GlobalUserPreferences.recentEmojis.clear();
|
||||
GlobalUserPreferences.save();
|
||||
}));
|
||||
// items.add(new TextItem(R.string.log_out, this::confirmLogOut));
|
||||
|
||||
items.add(new FooterItem(getString(R.string.sk_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)));
|
||||
items.add(new FooterItem(getString(R.string.mo_settings_app_version, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)));
|
||||
}
|
||||
|
||||
private void updatePublishText(Button btn) {
|
||||
@@ -1046,10 +1050,10 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
||||
if (state == GithubSelfUpdater.UpdateState.CHECKING) return;
|
||||
GithubSelfUpdater.UpdateInfo info=updater.getUpdateInfo();
|
||||
if(state!=GithubSelfUpdater.UpdateState.DOWNLOADED){
|
||||
text.setText(getString(R.string.sk_update_available, info.version));
|
||||
text.setText(getString(R.string.mo_update_available, info.version));
|
||||
button.setText(getString(R.string.download_update, UiUtils.formatFileSize(getActivity(), info.size, false)));
|
||||
}else{
|
||||
text.setText(getString(R.string.sk_update_ready, info.version));
|
||||
text.setText(getString(R.string.mo_update_ready, info.version));
|
||||
button.setText(R.string.install_update);
|
||||
}
|
||||
if(state==GithubSelfUpdater.UpdateState.DOWNLOADING){
|
||||
|
||||
@@ -38,6 +38,6 @@ public class FederatedTimelineFragment extends FabStatusListFragment {
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
bannerHelper.maybeAddBanner(contentWrap);
|
||||
// bannerHelper.maybeAddBanner(contentWrap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ import java.util.stream.Collectors;
|
||||
import me.grishka.appkit.api.SimpleCallback;
|
||||
|
||||
public class LocalTimelineFragment extends FabStatusListFragment {
|
||||
private DiscoverInfoBannerHelper bannerHelper=new DiscoverInfoBannerHelper(DiscoverInfoBannerHelper.BannerType.LOCAL_TIMELINE);
|
||||
// private DiscoverInfoBannerHelper bannerHelper=new DiscoverInfoBannerHelper(DiscoverInfoBannerHelper.BannerType.LOCAL_TIMELINE);
|
||||
private String maxID;
|
||||
|
||||
@Override
|
||||
@@ -38,6 +38,6 @@ public class LocalTimelineFragment extends FabStatusListFragment {
|
||||
@Override
|
||||
public void onViewCreated(View view, Bundle savedInstanceState){
|
||||
super.onViewCreated(view, savedInstanceState);
|
||||
bannerHelper.maybeAddBanner(contentWrap);
|
||||
// bannerHelper.maybeAddBanner(contentWrap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,8 +140,8 @@ public class CustomWelcomeFragment extends InstanceCatalogFragment {
|
||||
headerView.findViewById(R.id.separator).setVisibility(View.GONE);
|
||||
headerView.findViewById(R.id.timestamp).setVisibility(View.GONE);
|
||||
headerView.findViewById(R.id.unread_indicator).setVisibility(View.GONE);
|
||||
((TextView) headerView.findViewById(R.id.username)).setText(R.string.sk_app_username);
|
||||
((TextView) headerView.findViewById(R.id.name)).setText(R.string.sk_app_name);
|
||||
((TextView) headerView.findViewById(R.id.username)).setText(R.string.mo_app_username);
|
||||
((TextView) headerView.findViewById(R.id.name)).setText(R.string.mo_app_name);
|
||||
((ImageView) headerView.findViewById(R.id.avatar)).setImageDrawable(getActivity().getDrawable(R.mipmap.ic_launcher));
|
||||
((FragmentStackActivity) getActivity()).invalidateSystemBarColors(this);
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ public class InstanceCatalogSignupFragment extends InstanceCatalogFragment imple
|
||||
private LinearLayout filtersWrap;
|
||||
private HorizontalScrollView filtersScroll;
|
||||
private ImageButton backBtn, clearSearchBtn;
|
||||
private View focusThing;
|
||||
|
||||
private FilterChipView categoryGeneral, categorySpecialInterests;
|
||||
private List<FilterChipView> regionalFilters;
|
||||
@@ -285,7 +286,13 @@ public class InstanceCatalogSignupFragment extends InstanceCatalogFragment imple
|
||||
|
||||
FilterChipView langFilter=new FilterChipView(getActivity());
|
||||
langFilter.setDrawableEnd(R.drawable.ic_baseline_arrow_drop_down_18);
|
||||
langFilter.setText(R.string.server_filter_any_language);
|
||||
if(currentLanguage==null){
|
||||
langFilter.setText(R.string.server_filter_any_language);
|
||||
}else{
|
||||
Locale locale=Locale.forLanguageTag(currentLanguage);
|
||||
langFilter.setText(locale.getDisplayLanguage(locale));
|
||||
langFilter.setSelected(true);
|
||||
}
|
||||
langFilterMenu=new PopupMenu(getContext(), langFilter);
|
||||
langFilter.setOnTouchListener(langFilterMenu.getDragToOpenListener());
|
||||
langFilter.setOnClickListener(v->langFilterMenu.show());
|
||||
@@ -301,8 +308,12 @@ public class InstanceCatalogSignupFragment extends InstanceCatalogFragment imple
|
||||
speedFilterMenu.getMenu().add(0, 2, 0, R.string.server_filter_manual_review);
|
||||
speedFilter.setOnTouchListener(speedFilterMenu.getDragToOpenListener());
|
||||
speedFilter.setOnClickListener(v->speedFilterMenu.show());
|
||||
speedFilter.setText(R.string.server_filter_instant_signup);
|
||||
speedFilter.setSelected(true);
|
||||
speedFilter.setText(switch(currentSignupSpeedFilter){
|
||||
case ANY -> R.string.server_filter_any_signup_speed;
|
||||
case INSTANT -> R.string.server_filter_instant_signup;
|
||||
case REVIEWED -> R.string.server_filter_manual_review;
|
||||
});
|
||||
speedFilter.setSelected(currentSignupSpeedFilter!=SignupSpeedFilter.ANY);
|
||||
filtersWrap.addView(speedFilter, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
|
||||
speedFilterMenu.setOnMenuItemClickListener(item->{
|
||||
@@ -328,11 +339,13 @@ public class InstanceCatalogSignupFragment extends InstanceCatalogFragment imple
|
||||
categoryGeneral.setText(R.string.category_general);
|
||||
categoryGeneral.setTag(CategoryChoice.GENERAL);
|
||||
categoryGeneral.setOnClickListener(this::onCategoryFilterClick);
|
||||
categoryGeneral.setSelected(categoryChoice==CategoryChoice.GENERAL);
|
||||
filtersWrap.addView(categoryGeneral, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
categorySpecialInterests=new FilterChipView(getActivity());
|
||||
categorySpecialInterests.setText(R.string.category_special_interests);
|
||||
categorySpecialInterests.setTag(CategoryChoice.SPECIAL);
|
||||
categorySpecialInterests.setOnClickListener(this::onCategoryFilterClick);
|
||||
categorySpecialInterests.setSelected(categoryChoice==CategoryChoice.SPECIAL);
|
||||
filtersWrap.addView(categorySpecialInterests, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
|
||||
regionalFilters=Arrays.stream(CatalogInstance.Region.values()).map(r->{
|
||||
@@ -351,6 +364,8 @@ public class InstanceCatalogSignupFragment extends InstanceCatalogFragment imple
|
||||
filtersWrap.addView(fv, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
return fv;
|
||||
}).collect(Collectors.toList());
|
||||
focusThing=view.findViewById(R.id.focus_thing);
|
||||
focusThing.requestFocus();
|
||||
}
|
||||
|
||||
private void onRegionFilterClick(View v){
|
||||
@@ -550,7 +565,7 @@ public class InstanceCatalogSignupFragment extends InstanceCatalogFragment imple
|
||||
searchEdit.setCompoundDrawableTintList(ColorStateList.valueOf(0));
|
||||
}else{
|
||||
filtersScroll.setVisibility(View.VISIBLE);
|
||||
searchEdit.clearFocus();
|
||||
focusThing.requestFocus();
|
||||
searchEdit.setText("");
|
||||
lp.addRule(RelativeLayout.END_OF, R.id.btn_back);
|
||||
getActivity().getSystemService(InputMethodManager.class).hideSoftInputFromWindow(searchEdit.getWindowToken(), 0);
|
||||
|
||||
@@ -23,6 +23,7 @@ public class PushSubscription extends BaseModel implements Cloneable{
|
||||
", endpoint='"+endpoint+'\''+
|
||||
", alerts="+alerts+
|
||||
", serverKey='"+serverKey+'\''+
|
||||
", policy="+policy+
|
||||
'}';
|
||||
}
|
||||
|
||||
|
||||
@@ -99,7 +99,7 @@ public class CustomEmojiPopupKeyboard extends PopupKeyboard{
|
||||
Optional<Emoji> element = allAvailableEmojis.stream().filter(e -> e.shortcode.equals(emojiCode)).findFirst();
|
||||
element.ifPresent(recentEmojiList::add);
|
||||
}
|
||||
emojis.add(0, new EmojiCategory(activity.getString(R.string.sk_emoji_recent), recentEmojiList));
|
||||
emojis.add(0, new EmojiCategory(activity.getString(R.string.mo_emoji_recent), recentEmojiList));
|
||||
}
|
||||
|
||||
for(EmojiCategory category:emojis)
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
package org.joinmastodon.android.ui.displayitems;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ObjectAnimator;
|
||||
import android.app.Activity;
|
||||
import android.text.TextUtils;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ScrollView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.joinmastodon.android.R;
|
||||
import org.joinmastodon.android.fragments.BaseStatusListFragment;
|
||||
@@ -10,6 +21,7 @@ import org.joinmastodon.android.model.Status;
|
||||
import org.joinmastodon.android.ui.PhotoLayoutHelper;
|
||||
|
||||
import me.grishka.appkit.imageloader.requests.UrlImageLoaderRequest;
|
||||
import me.grishka.appkit.utils.CubicBezierInterpolator;
|
||||
|
||||
public class PhotoStatusDisplayItem extends ImageStatusDisplayItem{
|
||||
public PhotoStatusDisplayItem(String parentID, Status status, Attachment photo, BaseStatusListFragment parentFragment, int index, int totalPhotos, PhotoLayoutHelper.TiledLayoutResult tiledLayout, PhotoLayoutHelper.TiledLayoutResult.Tile thisTile){
|
||||
@@ -23,9 +35,109 @@ public class PhotoStatusDisplayItem extends ImageStatusDisplayItem{
|
||||
}
|
||||
|
||||
public static class Holder extends ImageStatusDisplayItem.Holder<PhotoStatusDisplayItem>{
|
||||
private final FrameLayout altTextWrapper;
|
||||
private final TextView altTextButton;
|
||||
private final View altTextScroller;
|
||||
private final ImageButton altTextClose;
|
||||
private final TextView altText;
|
||||
|
||||
private boolean altTextShown;
|
||||
private AnimatorSet currentAnim;
|
||||
|
||||
public Holder(Activity activity, ViewGroup parent){
|
||||
super(activity, R.layout.display_item_photo, parent);
|
||||
altTextWrapper=findViewById(R.id.alt_text_wrapper);
|
||||
altTextButton=findViewById(R.id.alt_button);
|
||||
altTextScroller=findViewById(R.id.alt_text_scroller);
|
||||
altTextClose=findViewById(R.id.alt_text_close);
|
||||
altText=findViewById(R.id.alt_text);
|
||||
|
||||
altTextButton.setOnClickListener(this::onShowHideClick);
|
||||
altTextClose.setOnClickListener(this::onShowHideClick);
|
||||
// altTextScroller.setNestedScrollingEnabled(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBind(ImageStatusDisplayItem item){
|
||||
super.onBind(item);
|
||||
altTextShown=false;
|
||||
if(currentAnim!=null)
|
||||
currentAnim.cancel();
|
||||
altTextScroller.setVisibility(View.GONE);
|
||||
altTextClose.setVisibility(View.GONE);
|
||||
altTextButton.setVisibility(View.VISIBLE);
|
||||
if(TextUtils.isEmpty(item.attachment.description)){
|
||||
altTextWrapper.setVisibility(View.GONE);
|
||||
}else{
|
||||
altTextWrapper.setVisibility(View.VISIBLE);
|
||||
altText.setText(item.attachment.description);
|
||||
}
|
||||
}
|
||||
|
||||
private void onShowHideClick(View v){
|
||||
boolean show=v.getId()==R.id.alt_button;
|
||||
|
||||
if(altTextShown==show)
|
||||
return;
|
||||
if(currentAnim!=null)
|
||||
currentAnim.cancel();
|
||||
|
||||
altTextShown=show;
|
||||
if(show){
|
||||
altTextScroller.setVisibility(View.VISIBLE);
|
||||
altTextClose.setVisibility(View.VISIBLE);
|
||||
}else{
|
||||
altTextButton.setVisibility(View.VISIBLE);
|
||||
// Hide these views temporarily so FrameLayout measures correctly
|
||||
altTextScroller.setVisibility(View.GONE);
|
||||
altTextClose.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
// This is the current size...
|
||||
int prevLeft=altTextWrapper.getLeft();
|
||||
int prevRight=altTextWrapper.getRight();
|
||||
int prevTop=altTextWrapper.getTop();
|
||||
altTextWrapper.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener(){
|
||||
@Override
|
||||
public boolean onPreDraw(){
|
||||
altTextWrapper.getViewTreeObserver().removeOnPreDrawListener(this);
|
||||
|
||||
// ...and this is after the layout pass, right now the FrameLayout has its final size, but we animate that change
|
||||
if(!show){
|
||||
// Show these views again so they're visible for the duration of the animation.
|
||||
// No one would notice they were missing during measure/layout.
|
||||
altTextScroller.setVisibility(View.VISIBLE);
|
||||
altTextClose.setVisibility(View.VISIBLE);
|
||||
}
|
||||
AnimatorSet set=new AnimatorSet();
|
||||
set.playTogether(
|
||||
ObjectAnimator.ofInt(altTextWrapper, "left", prevLeft, altTextWrapper.getLeft()),
|
||||
ObjectAnimator.ofInt(altTextWrapper, "right", prevRight, altTextWrapper.getRight()),
|
||||
ObjectAnimator.ofInt(altTextWrapper, "top", prevTop, altTextWrapper.getTop()),
|
||||
ObjectAnimator.ofFloat(altTextButton, View.ALPHA, show ? 1f : 0f, show ? 0f : 1f),
|
||||
ObjectAnimator.ofFloat(altTextScroller, View.ALPHA, show ? 0f : 1f, show ? 1f : 0f),
|
||||
ObjectAnimator.ofFloat(altTextClose, View.ALPHA, show ? 0f : 1f, show ? 1f : 0f)
|
||||
);
|
||||
set.setDuration(300);
|
||||
set.setInterpolator(CubicBezierInterpolator.DEFAULT);
|
||||
set.addListener(new AnimatorListenerAdapter(){
|
||||
@Override
|
||||
public void onAnimationEnd(Animator animation){
|
||||
if(show){
|
||||
altTextButton.setVisibility(View.GONE);
|
||||
}else{
|
||||
altTextScroller.setVisibility(View.GONE);
|
||||
altTextClose.setVisibility(View.GONE);
|
||||
}
|
||||
currentAnim=null;
|
||||
}
|
||||
});
|
||||
set.start();
|
||||
currentAnim=set;
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package org.joinmastodon.android.ui.views;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Log;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ViewConfiguration;
|
||||
import android.widget.ScrollView;
|
||||
|
||||
public class NestableScrollView extends ScrollView{
|
||||
private float downY, touchslop;
|
||||
private boolean didDisallow;
|
||||
|
||||
public NestableScrollView(Context context){
|
||||
super(context);
|
||||
init();
|
||||
}
|
||||
|
||||
public NestableScrollView(Context context, AttributeSet attrs){
|
||||
super(context, attrs);
|
||||
init();
|
||||
}
|
||||
|
||||
public NestableScrollView(Context context, AttributeSet attrs, int defStyleAttr){
|
||||
super(context, attrs, defStyleAttr);
|
||||
init();
|
||||
}
|
||||
|
||||
public NestableScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes){
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init(){
|
||||
touchslop=ViewConfiguration.get(getContext()).getScaledTouchSlop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onTouchEvent(MotionEvent ev){
|
||||
if(ev.getAction()==MotionEvent.ACTION_DOWN){
|
||||
if(canScrollVertically(-1) || canScrollVertically(1)){
|
||||
getParent().requestDisallowInterceptTouchEvent(true);
|
||||
didDisallow=true;
|
||||
}else{
|
||||
didDisallow=false;
|
||||
}
|
||||
downY=ev.getY();
|
||||
}else if(didDisallow && ev.getAction()==MotionEvent.ACTION_MOVE){
|
||||
if(Math.abs(downY-ev.getY())>=touchslop){
|
||||
if(!canScrollVertically((int)(downY-ev.getY()))){
|
||||
didDisallow=false;
|
||||
getParent().requestDisallowInterceptTouchEvent(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onTouchEvent(ev);
|
||||
}
|
||||
}
|
||||
5
mastodon/src/main/res/drawable/bg_image_alt_overlay.xml
Normal file
5
mastodon/src/main/res/drawable/bg_image_alt_overlay.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="#D9000000"/>
|
||||
<corners android:radius="4dp"/>
|
||||
</shape>
|
||||
5
mastodon/src/main/res/drawable/ic_baseline_close_24.xml
Normal file
5
mastodon/src/main/res/drawable/ic_baseline_close_24.xml
Normal file
@@ -0,0 +1,5 @@
|
||||
<vector android:height="24dp" android:tint="#000000"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="@android:color/white" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
|
||||
</vector>
|
||||
@@ -19,8 +19,8 @@
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/send_error"
|
||||
android:tooltipText="@string/sk_sending_error"
|
||||
android:contentDescription="@string/sk_sending_error"
|
||||
android:tooltipText="@string/mo_sending_error"
|
||||
android:contentDescription="@string/mo_sending_error"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
|
||||
@@ -124,6 +124,7 @@
|
||||
android:id="@+id/bot_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
android:importantForAccessibility="no"
|
||||
android:layout_marginTop="2dp"
|
||||
android:src="@drawable/ic_fluent_bot_16_filled" />
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<org.joinmastodon.android.ui.views.ImageAttachmentFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
@@ -10,4 +11,62 @@
|
||||
android:layout_gravity="center"
|
||||
android:scaleType="centerCrop"/>
|
||||
|
||||
<!-- This is hidden from screenreaders because that same alt text is set as content description on the ImageView -->
|
||||
<FrameLayout
|
||||
android:id="@+id/alt_text_wrapper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="start|bottom"
|
||||
android:layout_marginLeft="16dp"
|
||||
android:layout_marginRight="16dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:importantForAccessibility="noHideDescendants"
|
||||
android:background="@drawable/bg_image_alt_overlay">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/alt_button"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="22dp"
|
||||
android:textAppearance="@style/m3_label_large"
|
||||
android:textColor="#FFF"
|
||||
android:gravity="center"
|
||||
android:includeFontPadding="false"
|
||||
android:text="ALT"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/alt_text_close"
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="end|top"
|
||||
android:src="@drawable/ic_baseline_close_24"
|
||||
android:tint="#FFF"
|
||||
android:background="?android:selectableItemBackgroundBorderless"/>
|
||||
|
||||
<org.joinmastodon.android.ui.views.NestableScrollView
|
||||
android:id="@+id/alt_text_scroller"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="40dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/alt_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"
|
||||
android:textAppearance="@style/m3_body_medium"
|
||||
android:textColor="#FFF"
|
||||
tools:text="Alt text goes here"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</org.joinmastodon.android.ui.views.NestableScrollView>
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
</org.joinmastodon.android.ui.views.ImageAttachmentFrameLayout>
|
||||
@@ -155,7 +155,7 @@
|
||||
android:layout_marginBottom="8dp"
|
||||
android:background="@drawable/bg_poll_option_clickable"
|
||||
android:outlineProvider="background"
|
||||
android:contentDescription="@string/sk_poll_option_add"
|
||||
android:contentDescription="@string/mo_poll_option_add"
|
||||
android:elevation="2dp">
|
||||
<ImageView
|
||||
android:id="@+id/add_poll_option_icon"
|
||||
|
||||
@@ -40,6 +40,14 @@
|
||||
android:backgroundTint="?colorM3SurfaceVariant"
|
||||
android:hint="@string/search_communities"/>
|
||||
|
||||
<View
|
||||
android:id="@+id/focus_thing"
|
||||
android:layout_width="1dp"
|
||||
android:layout_height="1dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:importantForAccessibility="no"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/btn_back"
|
||||
android:layout_width="24dp"
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
android:paddingHorizontal="16dp"
|
||||
android:elevation="0dp"
|
||||
android:visibility="gone"
|
||||
android:hint="@string/sk_personal_note"/>
|
||||
android:hint="@string/mo_personal_note"/>
|
||||
|
||||
<Button
|
||||
android:id="@+id/note_edit_confirm"
|
||||
@@ -289,8 +289,8 @@
|
||||
android:visibility="invisible"
|
||||
android:backgroundTint="?colorBackgroundLightest"
|
||||
android:layout_gravity="right|center_vertical"
|
||||
android:tooltipText="@string/sk_personal_note_confirm"
|
||||
android:contentDescription="@string/sk_personal_note_confirm"
|
||||
android:tooltipText="@string/mo_personal_note_confirm"
|
||||
android:contentDescription="@string/mo_personal_note_confirm"
|
||||
android:drawableStart="@drawable/ic_fluent_checkmark_24_regular"
|
||||
/>
|
||||
</FrameLayout>
|
||||
@@ -361,8 +361,8 @@
|
||||
</org.joinmastodon.android.ui.views.NestedRecyclerScrollView>
|
||||
|
||||
<ImageButton
|
||||
android:tooltipText="@string/sk_fab_compose"
|
||||
android:contentDescription="@string/sk_fab_compose"
|
||||
android:tooltipText="@string/mo_fab_compose"
|
||||
android:contentDescription="@string/mo_fab_compose"
|
||||
android:id="@+id/fab"
|
||||
style="@style/Widget.Mastodon.Button.Compose"/>
|
||||
</FrameLayout>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
android:paddingHorizontal="16dp"
|
||||
android:elevation="0dp"
|
||||
android:visibility="gone"
|
||||
android:hint="@string/sk_personal_note"/>
|
||||
android:hint="@string/mo_personal_note"/>
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/note_edit_confirm"
|
||||
@@ -39,8 +39,8 @@
|
||||
android:visibility="invisible"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:layout_gravity="right|center_vertical"
|
||||
android:tooltipText="@string/sk_personal_note_confirm"
|
||||
android:contentDescription="@string/sk_personal_note_confirm" />
|
||||
android:tooltipText="@string/mo_personal_note_confirm"
|
||||
android:contentDescription="@string/mo_personal_note_confirm" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingHorizontal="16dp"
|
||||
android:text="@string/sk_welcome_text" />
|
||||
android:text="@string/mo_welcome_text" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
android:layout_marginBottom="16dp"
|
||||
android:layout_weight="1"
|
||||
android:textAppearance="@style/m3_body_medium"
|
||||
tools:text="@string/sk_update_available" />
|
||||
tools:text="@string/mo_update_available" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="wrap_content"
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
android:id="@+id/empty"/>
|
||||
|
||||
<ImageButton
|
||||
android:contentDescription="@string/sk_fab_compose"
|
||||
android:tooltipText="@string/sk_fab_compose"
|
||||
android:contentDescription="@string/mo_fab_compose"
|
||||
android:tooltipText="@string/mo_fab_compose"
|
||||
android:id="@+id/fab"
|
||||
style="@style/Widget.Mastodon.Button.Compose"/>
|
||||
</FrameLayout>
|
||||
|
||||
@@ -8,5 +8,5 @@
|
||||
<item android:id="@+id/brown_color" android:title="@string/sk_color_palette_brown"/>
|
||||
<item android:id="@+id/yellow_color" android:title="@string/sk_color_palette_yellow"/>
|
||||
<item android:id="@+id/red_color" android:title="@string/sk_color_palette_red"/>
|
||||
<item android:id="@+id/nord_color" android:title="@string/sk_color_palette_nord"/>
|
||||
<item android:id="@+id/nord_color" android:title="@string/mo_color_palette_nord"/>
|
||||
</menu>
|
||||
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:id="@+id/followed_hashtags" android:title="@string/sk_hashtags_you_follow" android:icon="@drawable/ic_fluent_number_symbol_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/manage_user_lists" android:title="@string/sk_your_lists" android:icon="@drawable/ic_fluent_people_list_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/followed_hashtags" android:title="@string/sk_hashtags_you_follow" android:icon="@drawable/ic_fluent_number_symbol_24_regular" />
|
||||
<item android:id="@+id/manage_user_lists" android:title="@string/sk_your_lists" android:icon="@drawable/ic_fluent_people_list_24_regular" />
|
||||
<item android:id="@+id/bookmarks" android:title="@string/bookmarks" android:icon="@drawable/ic_fluent_bookmark_multiple_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/favorites" android:title="@string/your_favorites" android:icon="@drawable/ic_fluent_star_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/scheduled" android:title="@string/sk_unsent_posts" android:icon="@drawable/ic_fluent_drafts_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/share" android:title="@string/share_user" android:icon="@drawable/ic_fluent_share_24_regular" android:showAsAction="always"/>
|
||||
<item android:id="@+id/share" android:title="@string/share_user" android:icon="@drawable/ic_fluent_share_24_regular" />
|
||||
</menu>
|
||||
4
mastodon/src/main/res/values-ar-rSA/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ar-rSA/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-be-rBY/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-be-rBY/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-bn-rBD/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-bn-rBD/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-bs-rBA/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-bs-rBA/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-ca-rES/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ca-rES/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -11,11 +11,11 @@
|
||||
<string name="sk_settings_load_new_posts">Carrega automàticament les publicacions noves</string>
|
||||
<string name="sk_federated_timeline">Federació</string>
|
||||
<string name="sk_federated_timeline_info_banner">Aquestes són les publicacions més recents de gent de la teua federació.</string>
|
||||
<string name="sk_update_ready">Moshidon %s s\'ha baixat i està preparat per a instal·lar-se.</string>
|
||||
<string name="sk_update_ready">Megalodon %s s\'ha baixat i està preparat per a instal·lar-se.</string>
|
||||
<string name="sk_accept_follow_request">Accepta la sol·licitud</string>
|
||||
<string name="sk_disable_marquee">Desactiva el desplaçament de text a les barres de títol</string>
|
||||
<string name="sk_user_post_notifications_on">Notificacions activades per a publicacions de: %s</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pin_post">Fixa al perfil</string>
|
||||
<string name="sk_confirm_pin_post_title">Fixar al perfil</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Segur que vols eliminar i tornar a escriure aquesta publicació\?</string>
|
||||
@@ -25,10 +25,10 @@
|
||||
<string name="sk_visibility_unlisted">No llistat</string>
|
||||
<string name="sk_settings_show_boosts">Mostra els impulsos</string>
|
||||
<string name="sk_settings_show_interaction_counts">Mostra el recompte d\'interaccions</string>
|
||||
<string name="sk_settings_app_version">Moshidon v. %1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v. %1$s (%2$d)</string>
|
||||
<string name="sk_user_post_notifications_off">Notificacions desactivades per a publicacions de: %s</string>
|
||||
<string name="sk_mark_media_as_sensitive">Marca el contingut com a sensible</string>
|
||||
<string name="sk_update_available">Moshidon %s està preparat per a baixar-se.</string>
|
||||
<string name="sk_update_available">Megalodon %s està preparat per a baixar-se.</string>
|
||||
<string name="sk_check_for_update">Comprova actualitzacions</string>
|
||||
<string name="sk_no_update_available">No hi ha cap actualització disponible</string>
|
||||
<string name="sk_list_timelines">Llistes</string>
|
||||
@@ -36,7 +36,7 @@
|
||||
<string name="sk_reject_follow_request">Rebutja la sol·licitud</string>
|
||||
<string name="sk_lists_with_user">Edita les llistes amb %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Mostra sempre els avisos de contingut</string>
|
||||
<string name="sk_settings_contribute">Contribueix a Moshidon</string>
|
||||
<string name="sk_settings_contribute">Contribueix a Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Mostra la línia de temps federada</string>
|
||||
<string name="sk_notification_type_status">Publicacions</string>
|
||||
<string name="sk_notify_posts">Notificacions de publicacions</string>
|
||||
|
||||
4
mastodon/src/main/res/values-cs-rCZ/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-cs-rCZ/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -18,7 +18,7 @@
|
||||
<string name="sk_confirm_delete_draft">Jste si jistý, že chcete tento navržený příspěvek smazat\?</string>
|
||||
<string name="sk_confirm_delete_scheduled_post">Určitě chcete tento naplánovaný příspěvek smazat\?</string>
|
||||
<string name="sk_delete_list_confirm">Opravdu chcete tento seznam odstranit\?</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Připnutý</string>
|
||||
<string name="sk_delete_and_redraft">vymazat a přepracovat</string>
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-cy/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-cy/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -10,7 +10,7 @@
|
||||
<string name="sk_settings_show_replies">Dangos ymatebion</string>
|
||||
<string name="sk_list_timelines">Rhestri</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Datguddio rhybuddion cynnwys bob tro</string>
|
||||
<string name="sk_settings_contribute">Cyfrannu at Moshidon</string>
|
||||
<string name="sk_settings_contribute">Cyfrannu at Megalodon</string>
|
||||
<string name="sk_notification_type_status">Negeseuon</string>
|
||||
<string name="sk_color_palette_material3">System</string>
|
||||
<string name="sk_color_palette_pink">Pinc</string>
|
||||
@@ -19,13 +19,13 @@
|
||||
<string name="sk_color_palette_blue">Glas</string>
|
||||
<string name="sk_color_palette_brown">Brown</string>
|
||||
<string name="sk_color_palette_red">Coch</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_confirm_pin_post">Hoffech chi binio\'r neges hon i\'ch proffil\?</string>
|
||||
<string name="sk_visibility_unlisted">Heb ei restru</string>
|
||||
<string name="sk_settings_load_new_posts">Llwytho negeseuon newydd yn ddiofyn</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_update_available">Mae Moshidon %s yn barod i\'w lawrlwytho.</string>
|
||||
<string name="sk_update_ready">Mae Moshidon %s wedi ei lawrlwytho ac yn barod i\'w osod.</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_update_available">Mae Megalodon %s yn barod i\'w lawrlwytho.</string>
|
||||
<string name="sk_update_ready">Mae Megalodon %s wedi ei lawrlwytho ac yn barod i\'w osod.</string>
|
||||
<string name="sk_color_palette_yellow">Melyn</string>
|
||||
<string name="sk_translate_post">Cyfieithu</string>
|
||||
<string name="sk_translate_show_original">Dangos y gwreiddiol</string>
|
||||
|
||||
27
mastodon/src/main/res/values-de-rDE/strings_mo.xml
Normal file
27
mastodon/src/main/res/values-de-rDE/strings_mo.xml
Normal file
@@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="mo_app_name" translatable="false">Moshidon</string>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_app_username" translatable="false">\@moshidon</string>
|
||||
<string name="mo_disable_dividers">Beitrags Trennung deaktivieren</string>
|
||||
<string name="mo_relocate_publish_button">Veröffentlichen-Schaltfläche verschieben</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Veröffentlichen Schaltfläche beim scrollen ausblenden</string>
|
||||
<string name="mo_welcome_text">Moshidon sagt Hi! gib den Domain-Namen deiner Heimat-Instanz unten ein.</string>
|
||||
<!-- Setting this as non-translatable as it simply doesnt change with language-->
|
||||
<string name="mo_settings_app_version" translatable="false">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="mo_personal_note">Notiz zu diesem Profil hinzufügen</string>
|
||||
<string name="mo_personal_note_confirm">Änderungen der Notiz bestätigen</string>
|
||||
<string name="mo_personal_note_update_failed">Speichern der Notiz fehlgeschlagen</string>
|
||||
<string name="mo_settings_contribute">Zu Megalodon beitragen</string>
|
||||
<string name="mo_update_available">Moshidon %s ist bereit zum herunterladen.</string>
|
||||
<string name="mo_update_ready">Moshidon %s ist heruntergeladen und bereit zur Installation.</string>
|
||||
<string name="mo_no_image_desc_title">Keine Bildbeschreibung</string>
|
||||
<string name="mo_no_image_desc">Die enthaltenen Bilder haben keine Beschreibung. Bitte füge eine Beschreibung hinzu, damit auch sehbehinderte Personen teilnehmen können.</string>
|
||||
<string name="mo_emoji_recent">Kürzlich verwendet</string>
|
||||
<string name="mo_clear_recent_emoji">Kürzlich verwendete Emojis löschen</string>
|
||||
<string name="mo_disable_relocate_publish_button_to_enable_customization">Deaktiviere die Funktion Veröffentlichen-Schaltfläche verschieben, um eine Anpassung zu ermöglichen</string>
|
||||
<!-- accessibility labels-->
|
||||
<string name="mo_poll_option_add">Neue Umfrageoption hinzufügen</string>
|
||||
<string name="mo_fab_compose">Verfassen</string>
|
||||
<string name="mo_sending_error">Fehler beim Veröffentlichen</string>
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Angeheftet</string>
|
||||
<string name="sk_delete_and_redraft">Löschen und neu erstellen</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Beitrag löschen und neu erstellen</string>
|
||||
@@ -19,30 +19,27 @@
|
||||
<string name="sk_settings_show_boosts">Geteilte Beiträge anzeigen</string>
|
||||
<string name="sk_settings_load_new_posts">Automatisch neue Beiträge laden</string>
|
||||
<string name="sk_settings_show_interaction_counts">Interaktions-Anzahlen anzeigen</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Medien als sensibel markieren</string>
|
||||
<string name="sk_user_post_notifications_on">Benachrichtigungen über Beiträge von %s aktiviert</string>
|
||||
<string name="sk_user_post_notifications_off">Benachrichtigungen über Beiträge von %s deaktiviert</string>
|
||||
<string name="sk_federated_timeline">Föderation</string>
|
||||
<string name="sk_federated_timeline_info_banner">Das sind die neuesten Beiträge von Personen, die in der Föderation deines Servers sind.</string>
|
||||
<string name="sk_update_available">Moshidon %s ist zum Herunterladen bereit.</string>
|
||||
<string name="sk_update_ready">Moshidon %s wurde heruntergeladen und kann jetzt installiert werden.</string>
|
||||
<string name="sk_changelog">Änderungsverlauf:</string>
|
||||
<string name="sk_update_available">Megalodon %s ist zum Herunterladen bereit.</string>
|
||||
<string name="sk_update_ready">Megalodon %s wurde heruntergeladen und kann jetzt installiert werden.</string>
|
||||
<string name="sk_check_for_update">Auf Update prüfen</string>
|
||||
<string name="sk_no_update_available">Kein Update verfügbar</string>
|
||||
<string name="sk_list_timelines">Listen</string>
|
||||
<string name="sk_follow_requests">Folgeanfragen</string>
|
||||
<string name="sk_accept_follow_request">Folgeanfrage akzeptieren</string>
|
||||
<string name="sk_reject_follow_request">Folgeanfrage ablehnen</string>
|
||||
<string name="sk_lists_with_user">Listen mit %s bearbeiten</string>
|
||||
<string name="sk_lists_with_user">Listen mit %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Inhaltswarnungen immer ausklappen</string>
|
||||
<string name="sk_disable_marquee">Laufschrift in Titelleisten deaktivieren</string>
|
||||
<string name="sk_disable_dividers">Beitrags Trennung deaktivieren</string>
|
||||
<string name="sk_relocate_publish_button">Veröffentlichen Schaltfläche verschieben</string>
|
||||
<string name="sk_settings_contribute">Zu Moshidon beitragen</string>
|
||||
<string name="sk_settings_contribute">Zu Megalodon beitragen</string>
|
||||
<string name="sk_settings_show_federated_timeline">Föderierte Timeline anzeigen</string>
|
||||
<string name="sk_notification_type_status">Beiträge</string>
|
||||
<string name="sk_notify_posts">Beitrags-Benachrichtigungen</string>
|
||||
<string name="sk_notify_posts">Beitrags Benachrichtigungen</string>
|
||||
<string name="sk_settings_color_palette">Farbschema</string>
|
||||
<string name="sk_color_palette_material3">System</string>
|
||||
<string name="sk_color_palette_pink">Pink</string>
|
||||
@@ -52,7 +49,6 @@
|
||||
<string name="sk_color_palette_brown">Braun</string>
|
||||
<string name="sk_color_palette_red">Rot</string>
|
||||
<string name="sk_color_palette_yellow">Gelb</string>
|
||||
<string name="sk_color_palette_nord">Nord</string>
|
||||
<string name="sk_poll_allow_multiple">Mehrfachantworten erlauben</string>
|
||||
<string name="sk_translated_using">Übersetzt mit %s</string>
|
||||
<string name="sk_translate_post">Übersetzen</string>
|
||||
@@ -63,13 +59,11 @@
|
||||
<string name="sk_clear_recent_languages">Zuletzt verwendete Sprachen leeren</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Sicher, dass du die Liste der zuletzt verwendeten Sprachen leeren willst\?</string>
|
||||
<string name="sk_welcome_title">Willkommen!</string>
|
||||
<string name="sk_welcome_text">Moshidon sagt Hi! gib den Domain-Namen deiner Heimat-Instanz unten ein.</string>
|
||||
<string name="sk_welcome_text">Der Hai sagt Hi! Um anzufangen, gib den Domain-Namen deiner Heimat-Instanz unten ein.</string>
|
||||
<string name="sk_example_domain">beispiel.social</string>
|
||||
|
||||
<string name="sk_tabs_disable_swipe">Wischen zwischen Tabs deaktivieren</string>
|
||||
<string name="sk_settings_profile">Profil einrichten</string>
|
||||
<string name="sk_personal_note">Notiz zu diesem Profil hinzufügen</string>
|
||||
<string name="sk_personal_note_confirm">Änderungen der Notiz bestätigen</string>
|
||||
<string name="sk_personal_note_update_failed">Speichern der Notiz fehlgeschlagen</string>
|
||||
<string name="sk_settings_posting">Einstellungen für Beiträge</string>
|
||||
<string name="sk_settings_filters">Filter konfigurieren</string>
|
||||
<string name="sk_settings_auth">Sicherheits-Einstellungen</string>
|
||||
@@ -95,7 +89,6 @@
|
||||
<string name="sk_quote_post">Drüberkommentieren</string>
|
||||
<string name="sk_hashtags_you_follow">Hashtags, denen du folgst</string>
|
||||
<string name="sk_copy_link_to_post">Link zum Beitrag kopieren</string>
|
||||
<string name="sk_open_in_account">In anderem Konto öffnen</string>
|
||||
<string name="sk_open_with_account">Mit anderem Konto öffnen</string>
|
||||
<string name="sk_resource_not_found">Ressource nicht gefunden</string>
|
||||
<string name="sk_bookmark_as">Lesezeichen mit anderem Konto</string>
|
||||
@@ -132,13 +125,6 @@
|
||||
<string name="sk_compose_no_schedule">Nicht planen</string>
|
||||
<string name="sk_compose_no_draft">Nicht entwerfen</string>
|
||||
<string name="sk_settings_reduce_motion">Bewegung in Animationen reduzieren</string>
|
||||
<string name="sk_bot_account">Dies ist ein Bot-Konto</string>
|
||||
<string name="sk_no_image_desc_title">Keine Bildbeschreibung</string>
|
||||
<string name="sk_no_image_desc">Die enthaltenen Bilder haben keine Beschreibung. Bitte füge eine Beschreibung hinzu, damit auch sehbehinderte Personen teilnehmen können.</string>
|
||||
<string name="sk_emoji_recent">Kürzlich verwendet</string>
|
||||
<string name="sk_clear_recent_emoji">Kürzlich verwendete Emojis löschen</string>
|
||||
<string name="sk_disable_relocate_publish_button_to_enable_customization">Deaktiviere die Funktion "Veröffentlichen Schaltfläche verschieben", um eine Anpassung zu ermöglichen.</string>
|
||||
<string name="sk_keep_only_latest_notification">Nur neueste Benachrichtigung behalten</string>
|
||||
<string name="sk_announcements">Ankündigungen</string>
|
||||
<string name="sk_mark_as_read">Als gelesen markieren</string>
|
||||
<string name="sk_settings_about_instance">Über die Instanz</string>
|
||||
@@ -162,9 +148,90 @@
|
||||
<string name="sk_remove_follower_confirm">%s als Follower_in entfernen\? Die Person wird dabei blockiert und gleich wieder freigegeben.</string>
|
||||
<string name="sk_do_remove_follower">Entfernen</string>
|
||||
<string name="sk_remove_follower_success">Follower_in erfolgreich entfernt</string>
|
||||
|
||||
<!-- accessibility labels-->
|
||||
<string name="sk_poll_option_add">Neue Umfrageoption hinzufügen</string>
|
||||
<string name="sk_fab_compose">Verfassen</string>
|
||||
<string name="sk_sending_error">Fehler beim Veröffentlichen</string>
|
||||
<string name="sk_changelog">Änderungsverlauf</string>
|
||||
<string name="sk_alt_text_missing_title">Fehlende Bildbeschreibung</string>
|
||||
<string name="sk_alt_text_missing">Mindestens ein Anhang hat keine Beschreibung.</string>
|
||||
<string name="sk_publish_anyway">Trotzdem publizieren</string>
|
||||
<string name="sk_settings_disable_alt_text_reminder">Bildbeschreibungs-Erinnerung deaktivieren</string>
|
||||
<string name="sk_notify_posts_info_banner">Wenn du Beitrags Benachrichtigungen für jemanden aktiviert hast, erscheinen seine neuen Beiträge hier.</string>
|
||||
<string name="sk_timelines">Timelines</string>
|
||||
<string name="sk_timeline_posts">Beiträge</string>
|
||||
<string name="sk_timelines_add">Hinzufügen</string>
|
||||
<string name="sk_timeline">Timeline</string>
|
||||
<string name="sk_list">Liste</string>
|
||||
<string name="sk_hashtag">Hashtag</string>
|
||||
<string name="sk_pin_timeline">Timeline anpinnen</string>
|
||||
<string name="sk_unpin_timeline">Timeline lösen</string>
|
||||
<string name="sk_pinned_timeline">An Start anpinnen</string>
|
||||
<string name="sk_unpinned_timeline">Von Start lösen</string>
|
||||
<string name="sk_remove">Entfernen</string>
|
||||
<string name="sk_timeline_icon">Icon</string>
|
||||
<string name="sk_icon_heart">Herz</string>
|
||||
<string name="sk_icon_star">Stern</string>
|
||||
<string name="sk_icon_city">Stadt</string>
|
||||
<string name="sk_icon_cat">Katze</string>
|
||||
<string name="sk_icon_dog">Hund</string>
|
||||
<string name="sk_icon_rabbit">Hase</string>
|
||||
<string name="sk_icon_turtle">Schildkröte</string>
|
||||
<string name="sk_icon_balloon">Ballon</string>
|
||||
<string name="sk_icon_image">Bild</string>
|
||||
<string name="sk_icon_bot">Bot</string>
|
||||
<string name="sk_icon_language">Sprache</string>
|
||||
<string name="sk_icon_location">Standort</string>
|
||||
<string name="sk_icon_megaphone">Megaphon</string>
|
||||
<string name="sk_icon_microphone">Mikrophon</string>
|
||||
<string name="sk_icon_microscope">Mikroskop</string>
|
||||
<string name="sk_icon_keyboard">Tastatur</string>
|
||||
<string name="sk_icon_coffee">Kaffee</string>
|
||||
<string name="sk_icon_laugh">Lachen</string>
|
||||
<string name="sk_icon_news">Nachrichten</string>
|
||||
<string name="sk_icon_pi">Pi</string>
|
||||
<string name="sk_icon_color_palette">Farbpalette</string>
|
||||
<string name="sk_icon_academic_cap">Doktorhut</string>
|
||||
<string name="sk_icon_tag">Etikett</string>
|
||||
<string name="sk_icon_stethoscope">Stethoskop</string>
|
||||
<string name="sk_icon_weather">Wetter</string>
|
||||
<string name="sk_icon_games">Spiele</string>
|
||||
<string name="sk_icon_code">Code</string>
|
||||
<string name="sk_icon_light_bulb">Leuchtmittel</string>
|
||||
<string name="sk_icon_train">Zug</string>
|
||||
<string name="sk_icon_clapper_board">Filmklappe</string>
|
||||
<string name="sk_icon_leaves">Blätter</string>
|
||||
<string name="sk_icon_sport">Sport</string>
|
||||
<string name="sk_icon_aperture">Blende</string>
|
||||
<string name="sk_icon_music">Musik</string>
|
||||
<string name="sk_icon_people">Personen</string>
|
||||
<string name="sk_icon_health">Gesundheit</string>
|
||||
<string name="sk_icon_important">Wichtig</string>
|
||||
<string name="sk_icon_chat">Unterhaltung</string>
|
||||
<string name="sk_icon_shield">Schild</string>
|
||||
<string name="sk_icon_book">Buch</string>
|
||||
<string name="sk_icon_bicycle">Fahrrad</string>
|
||||
<string name="sk_icon_map">Karte</string>
|
||||
<string name="sk_icon_math_formula">Formel</string>
|
||||
<string name="sk_icon_backpack">Rucksack</string>
|
||||
<string name="sk_icon_briefcase">Aktenkoffer</string>
|
||||
<string name="sk_icon_fire">Feuer</string>
|
||||
<string name="sk_icon_bug">Käfer</string>
|
||||
<string name="sk_icon_pizza">Pizza</string>
|
||||
<string name="sk_icon_gavel">Hammer</string>
|
||||
<string name="sk_icon_gauge">Gage</string>
|
||||
<string name="sk_icon_headphones">Kopfhörer</string>
|
||||
<string name="sk_icon_human">Mensch</string>
|
||||
<string name="sk_icon_globe">Globus</string>
|
||||
<string name="sk_icon_pin">Pin</string>
|
||||
<string name="sk_edit_timeline">Timeline bearbeiten</string>
|
||||
<string name="sk_edit_timelines">Timelines bearbeiten</string>
|
||||
<string name="sk_alt_button">ALT</string>
|
||||
<string name="sk_post_edited">bearbeitet</string>
|
||||
<string name="sk_notification_type_update">Bearbeitete Beiträge</string>
|
||||
<string name="sk_notify_update">Bearbeitet einen geteilten Beitrag</string>
|
||||
<string name="sk_attach_file">Datein anhängen</string>
|
||||
<string name="sk_searching">Suche…</string>
|
||||
<string name="sk_no_results">Keine Ergebnisse</string>
|
||||
<string name="sk_save_draft">Entwurf speichern\?</string>
|
||||
<string name="sk_save_draft_message">Möchtest du die Änderungen an diesem Entwurf speichern oder jetzt veröffentlichen\?</string>
|
||||
<string name="sk_no_alt_text">Kein Bildbeschreibung verfügbar</string>
|
||||
<string name="sk_settings_show_alt_indicator">Indikator für Bildbeschreibungen</string>
|
||||
<string name="sk_settings_show_no_alt_indicator">Indikator für fehlende Bildbeschreibungen</string>
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-el-rGR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-el-rGR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
22
mastodon/src/main/res/values-es-rES/strings_mo.xml
Normal file
22
mastodon/src/main/res/values-es-rES/strings_mo.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_disable_dividers">Desactivar divisores de publicaciones</string>
|
||||
<string name="mo_relocate_publish_button">Recolocar botón de publicación</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Esconder botón de escritura al deslizar</string>
|
||||
<string name="mo_welcome_text">Para empezar introduce el nombre del dominio de tu instancia debajo, por favor.</string>
|
||||
<string name="mo_personal_note">Añade una nota sobre este perfil</string>
|
||||
<string name="mo_personal_note_confirm">Confirmar cambios en la nota</string>
|
||||
<string name="mo_personal_note_update_failed">Fallo al guardar la nota</string>
|
||||
<string name="mo_update_available">Moshidon %s se puede descargar.</string>
|
||||
<string name="mo_update_ready">Moshidon %s se ha descargado y se puede instalar.</string>
|
||||
<string name="mo_no_image_desc_title">Sin descripción de imagen</string>
|
||||
<string name="mo_emoji_recent">Usados recientemente</string>
|
||||
<string name="mo_clear_recent_emoji">Borrar emojis usados recientemente</string>
|
||||
<string name="mo_disable_relocate_publish_button_to_enable_customization">Desactiva \"Recolocar botón de publicación\" para poder personalizar</string>
|
||||
<string name="mo_poll_option_add">Añadir nueva opción en la encuesta</string>
|
||||
<string name="mo_fab_compose">Componer</string>
|
||||
<string name="mo_sending_error">Error al publicar</string>
|
||||
<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>
|
||||
</resources>
|
||||
@@ -11,7 +11,7 @@
|
||||
<string name="sk_unpin_post">Desanclar del perfil</string>
|
||||
<string name="sk_confirm_unpin_post_title">Desanclar publicación del perfil</string>
|
||||
<string name="sk_confirm_unpin_post">¿Confirma que quiere desanclar esta publicación\?</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_unpinning">Desanclando publicación…</string>
|
||||
<string name="sk_image_description">Descripción de la imagen</string>
|
||||
<string name="sk_visibility_unlisted">Descatalogada</string>
|
||||
@@ -24,8 +24,8 @@
|
||||
<string name="sk_user_post_notifications_off">Desactivadas las notificaciones de posts para %s</string>
|
||||
<string name="sk_federated_timeline">Federación</string>
|
||||
<string name="sk_federated_timeline_info_banner">Estas son las publicaciones más recientes de las personas de su federación.</string>
|
||||
<string name="sk_update_available">Moshidon %s está listo para descargar.</string>
|
||||
<string name="sk_update_ready">Moshidon %s se ha descargado y está listo para instalarse.</string>
|
||||
<string name="sk_update_available">Megalodon %s está listo para descargar.</string>
|
||||
<string name="sk_update_ready">Megalodon %s se ha descargado y está listo para instalarse.</string>
|
||||
<string name="sk_check_for_update">Buscar actualizaciones</string>
|
||||
<string name="sk_no_update_available">No hay actualizaciones disponibles</string>
|
||||
<string name="sk_list_timelines">Listas</string>
|
||||
@@ -35,9 +35,9 @@
|
||||
<string name="sk_lists_with_user">Editar listas con %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Mostrar siempre advertencias de contenido</string>
|
||||
<string name="sk_disable_marquee">Desactivar desplazamiento de texto en barras del título</string>
|
||||
<string name="sk_settings_contribute">Contribuir a Moshidon</string>
|
||||
<string name="sk_settings_contribute">Contribuir a Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Mostrar cronología federada</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_notification_type_status">Publicaciones</string>
|
||||
<string name="sk_notify_posts">Publicar notificaciones</string>
|
||||
<string name="sk_settings_color_palette">Colores para los temas</string>
|
||||
|
||||
4
mastodon/src/main/res/values-eu-rES/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-eu-rES/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_delete_and_redraft">Ezabatu eta editatu</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Argitalpena ezabatu eta editatu</string>
|
||||
<string name="sk_pin_post">Profilean finkatu</string>
|
||||
@@ -15,12 +15,12 @@
|
||||
<string name="sk_settings_show_replies">Erakutsi erantzunak</string>
|
||||
<string name="sk_settings_show_boosts">Erakutsi bultzadak</string>
|
||||
<string name="sk_settings_show_interaction_counts">Erakutsi interakzio zenbaketak</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Markatu multimedia sentikor gisa</string>
|
||||
<string name="sk_user_post_notifications_on">Gaitu %s-en argitalpen jakinarazpenak</string>
|
||||
<string name="sk_federated_timeline">Federatua</string>
|
||||
<string name="sk_federated_timeline_info_banner">Hauek dira zure federazioko pertsonen argitalpen berrienak.</string>
|
||||
<string name="sk_update_available">Moshidon %s deskargatzeko prest dago.</string>
|
||||
<string name="sk_update_available">Megalodon %s deskargatzeko prest dago.</string>
|
||||
<string name="sk_check_for_update">Eguneraketak egiaztatu</string>
|
||||
<string name="sk_no_update_available">Ez dago eguneraketarik eskuragarri</string>
|
||||
<string name="sk_list_timelines">Zerrendak</string>
|
||||
@@ -32,7 +32,7 @@
|
||||
<string name="sk_lists_with_user">%s-ekin zerrendatu</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Erakutsi beti edukiaren abisua</string>
|
||||
<string name="sk_disable_marquee">Desgaitu izenburu-barretako testuaren desplazamendua</string>
|
||||
<string name="sk_settings_contribute">Lagundu Moshidon</string>
|
||||
<string name="sk_settings_contribute">Lagundu Megalodon</string>
|
||||
<string name="sk_translated_using">%s-ekin itzulia</string>
|
||||
<string name="sk_post_language">Hizkuntza: %s</string>
|
||||
<string name="sk_language_name">%s (%s)</string>
|
||||
@@ -88,7 +88,7 @@
|
||||
<string name="sk_confirm_unpin_post_title">Argitalpen finkatua kendu profiletik</string>
|
||||
<string name="sk_settings_load_new_posts">Kargatu automatikoki argitalpen berriak</string>
|
||||
<string name="sk_user_post_notifications_off">Desgaitu %s-en argitalpen jakinarazpenak</string>
|
||||
<string name="sk_update_ready">Moshidon %s deskargatuta eta instalatzeko prest dago.</string>
|
||||
<string name="sk_update_ready">Megalodon %s deskargatuta eta instalatzeko prest dago.</string>
|
||||
<string name="sk_accept_follow_request">Onartu jarraitzeko eskaerak</string>
|
||||
<string name="sk_reject_follow_request">Alboratu jarraitzeko eskaerak</string>
|
||||
<string name="sk_settings_show_federated_timeline">Erakutsi federatutako denbora-lerroa</string>
|
||||
|
||||
4
mastodon/src/main/res/values-fi-rFI/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-fi-rFI/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-fil-rPH/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-fil-rPH/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-fr-rFR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-fr-rFR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -13,12 +13,12 @@
|
||||
<string name="sk_settings_show_replies">Afficher les réponses</string>
|
||||
<string name="sk_settings_show_boosts">Afficher les boosts</string>
|
||||
<string name="sk_settings_load_new_posts">Charger automatiquement les nouveaux messages</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Marquer le média comme sensible</string>
|
||||
<string name="sk_user_post_notifications_on">Notifications de message activées pour %s</string>
|
||||
<string name="sk_user_post_notifications_off">Désactivation des notifications de message pour %s</string>
|
||||
<string name="sk_update_available">Moshidon %s est prête à être téléchargée.</string>
|
||||
<string name="sk_update_ready">Moshidon %s est téléchargée et prête à être installée.</string>
|
||||
<string name="sk_update_available">Megalodon %s est prête à être téléchargée.</string>
|
||||
<string name="sk_update_ready">Megalodon %s est téléchargée et prête à être installée.</string>
|
||||
<string name="sk_check_for_update">Vérifier les mises à jour</string>
|
||||
<string name="sk_no_update_available">Pas de mise a jour disponible</string>
|
||||
<string name="sk_list_timelines">Listes</string>
|
||||
@@ -28,9 +28,9 @@
|
||||
<string name="sk_lists_with_user">Modifier les listes avec %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Toujours afficher les avertissements de contenu</string>
|
||||
<string name="sk_disable_marquee">Désactiver le défilement du texte dans les barres de titre</string>
|
||||
<string name="sk_settings_contribute">Contribuez à Moshidon</string>
|
||||
<string name="sk_settings_contribute">Contribuez à Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Afficher la timeline fédérée</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_delete_and_redraft">Supprimer et rééditer</string>
|
||||
<string name="sk_pin_post">Épingler au profil</string>
|
||||
<string name="sk_confirm_pin_post_title">Épingler le message au profil</string>
|
||||
|
||||
4
mastodon/src/main/res/values-ga-rIE/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ga-rIE/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-gd-rGB/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-gd-rGB/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-gl-rES/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-gl-rES/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_delete_and_redraft">Eliminar e rescribir</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Tes a certeza de querere eliminar e rescribir esta publicación\?</string>
|
||||
<string name="sk_pinned_posts">Fixado</string>
|
||||
@@ -20,14 +20,14 @@
|
||||
<string name="sk_settings_show_boosts">Mostrar promocións</string>
|
||||
<string name="sk_settings_load_new_posts">Cargar automáticamente novas publicacións</string>
|
||||
<string name="sk_settings_show_interaction_counts">Mostrar contadores de interaccións</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Marcar multimedia como sensible</string>
|
||||
<string name="sk_user_post_notifications_on">Acender notificación de publicación para %s</string>
|
||||
<string name="sk_user_post_notifications_off">Apagar notificación de publicación para %s</string>
|
||||
<string name="sk_federated_timeline">Federación</string>
|
||||
<string name="sk_federated_timeline_info_banner">Estas son as publicacións máis recentes das persoas da túa federación.</string>
|
||||
<string name="sk_update_available">Moshidon %s está lista para descargar.</string>
|
||||
<string name="sk_update_ready">Moshidon %s foi descargada e está lista para instalar.</string>
|
||||
<string name="sk_update_available">Megalodon %s está lista para descargar.</string>
|
||||
<string name="sk_update_ready">Megalodon %s foi descargada e está lista para instalar.</string>
|
||||
<string name="sk_check_for_update">Comprobar actualizacións</string>
|
||||
<string name="sk_no_update_available">Non hai actualizacións</string>
|
||||
<string name="sk_list_timelines">Listas</string>
|
||||
|
||||
4
mastodon/src/main/res/values-hi-rIN/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-hi-rIN/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-hr-rHR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-hr-rHR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-hu-rHU/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-hu-rHU/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -19,14 +19,14 @@
|
||||
<string name="sk_unpinning">Unpinning poszt…</string>
|
||||
<string name="sk_settings_show_replies">Válaszok megjelenítése</string>
|
||||
<string name="sk_visibility_unlisted">Felsorolatlan</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_settings_load_new_posts">Automatikusan töltse be az új hozzászólásokat</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_user_post_notifications_on">Bekapcsoltuk a postai értesítéseket %s számára</string>
|
||||
<string name="sk_user_post_notifications_off">Kikapcsoltam a postai értesítéseket %s számára</string>
|
||||
<string name="sk_mark_media_as_sensitive">A média érzékenynek jelölése</string>
|
||||
<string name="sk_federated_timeline">Föderáció</string>
|
||||
<string name="sk_update_ready">A Moshidon %s letöltődött és telepítésre kész.</string>
|
||||
<string name="sk_update_ready">A Megalodon %s letöltődött és telepítésre kész.</string>
|
||||
<string name="sk_disable_marquee">A görgethető szöveg kikapcsolása a címsorokban</string>
|
||||
<string name="sk_check_for_update">Frissítés ellenőrzése</string>
|
||||
<string name="sk_no_update_available">Nincs frissítés elérhető</string>
|
||||
@@ -35,7 +35,7 @@
|
||||
<string name="sk_accept_follow_request">Követési kérés elfogadása</string>
|
||||
<string name="sk_lists_with_user">%s-t tartalmazó listák</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Mindig fedje fel a tartalmi figyelmeztetéseket</string>
|
||||
<string name="sk_settings_contribute">Hozzájárulni Moshidon</string>
|
||||
<string name="sk_settings_contribute">Hozzájárulni Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Összevont idővonal megjelenítése</string>
|
||||
<string name="sk_confirm_clear_recent_languages">Biztos, hogy törölni szeretné a nemrég használt nyelveket\?</string>
|
||||
<string name="sk_available_languages">Elérhető nyelvek</string>
|
||||
@@ -115,7 +115,7 @@
|
||||
<string name="sk_welcome_text">A cápa tiszteleg előtted! A kezdéshez kérjük, adja meg az alábbiakban az otthoni domain nevét.</string>
|
||||
<string name="sk_federated_timeline_info_banner">Ezek a szövetséged tagjainak legfrissebb bejegyzései.</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Biztos, hogy törölni és újrafogalmazni akarod ezt a hozzászólást\?</string>
|
||||
<string name="sk_update_available">Moshidon %s készen áll a letöltésre.</string>
|
||||
<string name="sk_update_available">Megalodon %s készen áll a letöltésre.</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Törlés és újraszövegezés Hozzászólás</string>
|
||||
<string name="sk_image_description">Kép leírása</string>
|
||||
<string name="sk_settings_show_boosts">Show boostok</string>
|
||||
|
||||
4
mastodon/src/main/res/values-hy-rAM/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-hy-rAM/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-in-rID/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-in-rID/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -12,23 +12,23 @@
|
||||
<string name="sk_settings_show_boosts">Lihat boost</string>
|
||||
<string name="sk_settings_load_new_posts">Muat kiriman baru secara otomatis</string>
|
||||
<string name="sk_settings_show_interaction_counts">Tampilkan jumlah interaksi</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_user_post_notifications_on">Nyalakan notifikasi kiriman untuk %s</string>
|
||||
<string name="sk_user_post_notifications_off">Matikan notifikasi kiriman untuk %s</string>
|
||||
<string name="sk_federated_timeline">Federasi</string>
|
||||
<string name="sk_federated_timeline_info_banner">Kiriman terbaru dari orang-orang di federasi anda.</string>
|
||||
<string name="sk_update_available">Moshidon %s siap untuk diunduh.</string>
|
||||
<string name="sk_update_ready">Moshidon %s telah diunduh dan siap dipasang.</string>
|
||||
<string name="sk_update_available">Megalodon %s siap untuk diunduh.</string>
|
||||
<string name="sk_update_ready">Megalodon %s telah diunduh dan siap dipasang.</string>
|
||||
<string name="sk_check_for_update">Periksa pembaruan</string>
|
||||
<string name="sk_no_update_available">Tidak ada pembaruan</string>
|
||||
<string name="sk_list_timelines">Daftar</string>
|
||||
<string name="sk_unpinning">Menghapus sematan kiriman…</string>
|
||||
<string name="sk_accept_follow_request">Terima permintaan pengikut</string>
|
||||
<string name="sk_reject_follow_request">Tolak permintaan pengikut</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Hapus dan tulis ulang kiriman ini\?</string>
|
||||
<string name="sk_confirm_unpin_post">Apakah Anda yakin untuk menghapus sematan kiriman ini\?</string>
|
||||
<string name="sk_settings_contribute">Berkontribusi ke Moshidon</string>
|
||||
<string name="sk_settings_contribute">Berkontribusi ke Megalodon</string>
|
||||
<string name="sk_pinned_posts">Disematkan</string>
|
||||
<string name="sk_pin_post">Sematkan ke profil</string>
|
||||
<string name="sk_visibility_unlisted">Tidak terdaftar</string>
|
||||
|
||||
4
mastodon/src/main/res/values-is-rIS/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-is-rIS/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-it-rIT/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-it-rIT/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -9,7 +9,7 @@
|
||||
<string name="sk_color_palette_blue">Blu</string>
|
||||
<string name="sk_color_palette_brown">Marrone</string>
|
||||
<string name="sk_color_palette_yellow">Giallo</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Fissati</string>
|
||||
<string name="sk_delete_and_redraft">Elimina e riscrivi</string>
|
||||
<string name="sk_user_post_notifications_on">Attivate notifiche per i post di %s</string>
|
||||
@@ -32,18 +32,18 @@
|
||||
<string name="sk_settings_show_boosts">Mostra boost</string>
|
||||
<string name="sk_settings_load_new_posts">Carica automaticamente nuovi post</string>
|
||||
<string name="sk_settings_show_interaction_counts">Mostra conteggi interazioni</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Segnala media come sensibile</string>
|
||||
<string name="sk_federated_timeline">Federata</string>
|
||||
<string name="sk_federated_timeline_info_banner">Questi sono i post più recenti dalle persone nella tua federazione.</string>
|
||||
<string name="sk_update_available">Moshidon %s è pronto da scaricare.</string>
|
||||
<string name="sk_update_ready">Moshidon %s è scaricato e pronto da installare.</string>
|
||||
<string name="sk_update_available">Megalodon %s è pronto da scaricare.</string>
|
||||
<string name="sk_update_ready">Megalodon %s è scaricato e pronto da installare.</string>
|
||||
<string name="sk_check_for_update">Verifica aggiornamenti</string>
|
||||
<string name="sk_no_update_available">Non ci sono aggiornamenti disponibili</string>
|
||||
<string name="sk_list_timelines">Liste</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Apri sempre contenuti segnalati come sensibili</string>
|
||||
<string name="sk_lists_with_user">Modifica liste con %s</string>
|
||||
<string name="sk_settings_contribute">Contribuisci a Moshidon</string>
|
||||
<string name="sk_settings_contribute">Contribuisci a Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Mostra timeline federata</string>
|
||||
<string name="sk_disable_marquee">Disabilita scorrimento titoli</string>
|
||||
<string name="sk_reject_follow_request">Rifiuta richiesta di seguirti</string>
|
||||
|
||||
4
mastodon/src/main/res/values-iw-rIL/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-iw-rIL/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-ja-rJP/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ja-rJP/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-kab/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-kab/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-ko-rKR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ko-rKR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -32,10 +32,10 @@
|
||||
<string name="sk_lists_with_user">%s 님이 포함된 리스트 수정</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">열람주의 게시물을 항상 펼치기</string>
|
||||
<string name="sk_disable_marquee">제목 표시줄의 텍스트 스크롤 비활성화</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_update_available">Moshidon %s 버전을 다운로드할 수 있습니다.</string>
|
||||
<string name="sk_update_ready">Moshidon %s 버전을 다운로드하였으며 설치할 수 있습니다.</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_update_available">Megalodon %s 버전을 다운로드할 수 있습니다.</string>
|
||||
<string name="sk_update_ready">Megalodon %s 버전을 다운로드하였으며 설치할 수 있습니다.</string>
|
||||
<string name="sk_settings_show_federated_timeline">연합 타임라인 표시</string>
|
||||
<string name="sk_notification_type_status">게시물</string>
|
||||
<string name="sk_notify_posts">게시물 알림</string>
|
||||
@@ -46,7 +46,7 @@
|
||||
<string name="sk_color_palette_blue">파란색</string>
|
||||
<string name="sk_color_palette_brown">갈색</string>
|
||||
<string name="sk_color_palette_yellow">노란색</string>
|
||||
<string name="sk_settings_contribute">Moshidon에 기여</string>
|
||||
<string name="sk_settings_contribute">Megalodon에 기여</string>
|
||||
<string name="sk_poll_allow_multiple">다중 선택 허용</string>
|
||||
<string name="sk_translate_post">번역하기</string>
|
||||
<string name="sk_translate_show_original">원본 보기</string>
|
||||
|
||||
4
mastodon/src/main/res/values-my/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-my/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_delete_and_redraft">ဖျက်ပြီး ပြန်ရေးမည်</string>
|
||||
<string name="sk_pin_post">ပရိုဖိုင်းတွင် ပင်တွဲမည်</string>
|
||||
<string name="sk_pinning">ပင်တွဲနေသည်…</string>
|
||||
@@ -10,12 +10,12 @@
|
||||
<string name="sk_image_description">ပုံတွင်ပါဝင်သော အကြောင်းအရာ</string>
|
||||
<string name="sk_visibility_unlisted">စာရင်းမလုပ်</string>
|
||||
<string name="sk_settings_show_boosts">Boost များကို ပြသမည်</string>
|
||||
<string name="sk_settings_app_version">Moshidon - ဗားရှင်း %1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon - ဗားရှင်း %1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">ပုံ/ဗီဒီယိုအား ထိရှလွယ်သည်အဖြစ် မှတ်သားသည်</string>
|
||||
<string name="sk_user_post_notifications_off">%s အတွက် ပို့စ်နိုတီများကို ပိတ်လိုက်သည်</string>
|
||||
<string name="sk_federated_timeline">ဖက်ဒရေးရှင်း</string>
|
||||
<string name="sk_update_available">Moshidon %s ကို ဒေါင်းလုဒ်ဆွဲလို့ရပါပြီ။</string>
|
||||
<string name="sk_update_ready">Moshidon %s ကို ဒေါင်းလုဒ်ဆွဲပြီးပြီမလို့ အင်စတောလုပ်နိုင်ပါပြီ။</string>
|
||||
<string name="sk_update_available">Megalodon %s ကို ဒေါင်းလုဒ်ဆွဲလို့ရပါပြီ။</string>
|
||||
<string name="sk_update_ready">Megalodon %s ကို ဒေါင်းလုဒ်ဆွဲပြီးပြီမလို့ အင်စတောလုပ်နိုင်ပါပြီ။</string>
|
||||
<string name="sk_no_update_available">မည်သည့်အပ်ဒိတ်မျှ မရှိသေးပါ</string>
|
||||
<string name="sk_follow_requests">ဖော်လိုဝါအဖြစ် တောင်းဆိုမှုများ</string>
|
||||
<string name="sk_accept_follow_request">ဖော်လိုဝါအဖြစ်တောင်းဆိုမှုကို လက်ခံမည်</string>
|
||||
|
||||
4
mastodon/src/main/res/values-nl-rNL/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-nl-rNL/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Vastgemaakt</string>
|
||||
<string name="sk_delete_and_redraft">Verwijderen en opnieuw opstellen</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Verwijder en stel bericht opnieuw op</string>
|
||||
@@ -20,14 +20,14 @@
|
||||
<string name="sk_settings_show_boosts">Boosts weergeven</string>
|
||||
<string name="sk_settings_load_new_posts">Automatisch nieuwe berichten laden</string>
|
||||
<string name="sk_settings_show_interaction_counts">Aantal interacties weergeven</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Markeer media als gevoelig</string>
|
||||
<string name="sk_user_post_notifications_on">Berichtmeldingen aangezet voor %s</string>
|
||||
<string name="sk_user_post_notifications_off">Berichtmeldingen uitgezet voor %s</string>
|
||||
<string name="sk_federated_timeline">Federatie</string>
|
||||
<string name="sk_federated_timeline_info_banner">Dit zijn de meest recente berichten van de mensen in jouw federatie.</string>
|
||||
<string name="sk_update_available">Moshidon %s is klaar om te downloaden.</string>
|
||||
<string name="sk_update_ready">Moshidon %s is gedownload en klaar om te installeren.</string>
|
||||
<string name="sk_update_available">Megalodon %s is klaar om te downloaden.</string>
|
||||
<string name="sk_update_ready">Megalodon %s is gedownload en klaar om te installeren.</string>
|
||||
<string name="sk_check_for_update">Controleren op update</string>
|
||||
<string name="sk_no_update_available">Geen update beschikbaar</string>
|
||||
<string name="sk_list_timelines">Lijsten</string>
|
||||
@@ -36,7 +36,7 @@
|
||||
<string name="sk_lists_with_user">Bewerk lijsten met %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Onthul altijd inhoudswaarschuwingen</string>
|
||||
<string name="sk_disable_marquee">Schakel scrollende tekst in titelbalken uit</string>
|
||||
<string name="sk_settings_contribute">Bijdragen aan Moshidon</string>
|
||||
<string name="sk_settings_contribute">Bijdragen aan Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Toon gefedereerde tijdlijn</string>
|
||||
<string name="sk_notification_type_status">Berichten</string>
|
||||
<string name="sk_notify_posts">Bericht meldingen</string>
|
||||
|
||||
4
mastodon/src/main/res/values-oc-rFR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-oc-rFR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-pl-rPL/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-pl-rPL/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -17,11 +17,11 @@
|
||||
<string name="sk_user_post_notifications_off">Wyłączono powiadomienia dla wpisu %s</string>
|
||||
<string name="sk_federated_timeline">fediwersum</string>
|
||||
<string name="sk_federated_timeline_info_banner">To są najnowsze wpisy z wszystkich serwerów z którymi twoja instancja jest sfederowana.</string>
|
||||
<string name="sk_update_available">Moshidon %s jest dostępny do pobrania.</string>
|
||||
<string name="sk_update_ready">Moshidon %s został pobrany i jest gotowy do instalacji.</string>
|
||||
<string name="sk_update_available">Megalodon %s jest dostępny do pobrania.</string>
|
||||
<string name="sk_update_ready">Megalodon %s został pobrany i jest gotowy do instalacji.</string>
|
||||
<string name="sk_check_for_update">Sprawdź dostępność aktualizacji</string>
|
||||
<string name="sk_no_update_available">Brak dostępnych aktualizacji</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Przypięte</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Jesteś pewien, że chcesz usunąć wpis i utworzyć jego kopię roboczą\?</string>
|
||||
<string name="sk_confirm_unpin_post">Jesteś pewien, że chcesz odpiąć ten wpis\?</string>
|
||||
@@ -34,9 +34,9 @@
|
||||
<string name="sk_lists_with_user">Edytuj listy z %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Zawsze odkrywaj ostrzeżenia o zawartości</string>
|
||||
<string name="sk_disable_marquee">Wyłącz tekst przewijany w paskach tytułowych</string>
|
||||
<string name="sk_settings_contribute">Wspomóż Moshidon</string>
|
||||
<string name="sk_settings_contribute">Wspomóż Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Pokaż globalną oś czasu</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_visibility_unlisted">Niewidoczny</string>
|
||||
<string name="sk_notification_type_status">Wpisy</string>
|
||||
<string name="sk_notify_posts">Powiadomienia wpisów</string>
|
||||
|
||||
4
mastodon/src/main/res/values-pt-rBR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-pt-rBR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -7,7 +7,7 @@
|
||||
<string name="sk_confirm_pin_post_title">Fixar postagem no perfil</string>
|
||||
<string name="sk_confirm_pin_post">Você deseja fixar esta postagem em seu perfil\?</string>
|
||||
<string name="sk_pinning">Fixando publicação…</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Fixado</string>
|
||||
<string name="sk_unpin_post">Desafixar do perfil</string>
|
||||
<string name="sk_confirm_unpin_post_title">Desafixar postagem do perfil</string>
|
||||
@@ -18,13 +18,13 @@
|
||||
<string name="sk_settings_show_boosts">Mostrar boosts</string>
|
||||
<string name="sk_settings_load_new_posts">Carregar novas postagens automaticamente</string>
|
||||
<string name="sk_mark_media_as_sensitive">Marcar mídia como sensível</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_lists_with_user">Editar listas com %s</string>
|
||||
<string name="sk_user_post_notifications_on">Ativar as notificações de postagem para %s</string>
|
||||
<string name="sk_federated_timeline">Federação</string>
|
||||
<string name="sk_federated_timeline_info_banner">Estas são as postagens mais recentes das pessoas em sua federação.</string>
|
||||
<string name="sk_update_available">Moshidon %s está pronto para baixar.</string>
|
||||
<string name="sk_update_ready">Moshidon %s foi baixado e está pronto para instalar.</string>
|
||||
<string name="sk_update_available">Megalodon %s está pronto para baixar.</string>
|
||||
<string name="sk_update_ready">Megalodon %s foi baixado e está pronto para instalar.</string>
|
||||
<string name="sk_check_for_update">Verificar se há atualizações</string>
|
||||
<string name="sk_no_update_available">Nenhuma atualização disponível</string>
|
||||
<string name="sk_list_timelines">Listas</string>
|
||||
@@ -34,7 +34,7 @@
|
||||
<string name="sk_reject_follow_request">Recusar solicitação para seguir</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Sempre revelar avisos de conteúdo</string>
|
||||
<string name="sk_disable_marquee">Desative o texto de rolagem nas barras de título</string>
|
||||
<string name="sk_settings_contribute">Contribua para o Moshidon</string>
|
||||
<string name="sk_settings_contribute">Contribua para o Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Mostre a linha do tempo federada</string>
|
||||
<string name="sk_visibility_unlisted">Não-listado</string>
|
||||
<string name="sk_settings_show_interaction_counts">Mostrar contagens de interação</string>
|
||||
|
||||
4
mastodon/src/main/res/values-pt-rPT/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-pt-rPT/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Fixado</string>
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-ro-rRO/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ro-rRO/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-ru-rRU/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-ru-rRU/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Закрепленные</string>
|
||||
<string name="sk_delete_and_redraft">Удалить и исправить</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Удалить и исправить пост</string>
|
||||
@@ -14,7 +14,7 @@
|
||||
<string name="sk_image_description">Описание изображения</string>
|
||||
<string name="sk_visibility_unlisted">Скрытый</string>
|
||||
<string name="sk_mark_media_as_sensitive">Отметить медиафайл как деликатный</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_notification_type_status">Публикации</string>
|
||||
<string name="sk_notify_posts">Уведомдения о</string>
|
||||
<string name="sk_settings_color_palette">Цветовая схема</string>
|
||||
@@ -31,8 +31,8 @@
|
||||
<string name="sk_settings_load_new_posts">Автоматически загружать новые посты</string>
|
||||
<string name="sk_settings_show_replies">Показать ответы</string>
|
||||
<string name="sk_federated_timeline">Федерация</string>
|
||||
<string name="sk_update_available">Moshidon %s готов к скачиванию.</string>
|
||||
<string name="sk_update_ready">Moshidon %s скачан и готов к установке новой версии.</string>
|
||||
<string name="sk_update_available">Megalodon %s готов к скачиванию.</string>
|
||||
<string name="sk_update_ready">Megalodon %s скачан и готов к установке новой версии.</string>
|
||||
<string name="sk_check_for_update">Проверить обновления</string>
|
||||
<string name="sk_follow_requests">Запросы на подписку</string>
|
||||
<string name="sk_lists_with_user">Списки с %s</string>
|
||||
@@ -44,7 +44,7 @@
|
||||
<string name="sk_accept_follow_request">Принять запрос на подписку</string>
|
||||
<string name="sk_reject_follow_request">Отклонить заявку на подписку</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Всегда раскрывать предупреждения о непристойном контенте</string>
|
||||
<string name="sk_settings_contribute">Внести свой код в Moshidon</string>
|
||||
<string name="sk_settings_contribute">Внести свой код в Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Показывать федеративную временную шкалу</string>
|
||||
<string name="sk_color_palette_green">Зелёный</string>
|
||||
<string name="sk_color_palette_blue">Синий</string>
|
||||
|
||||
4
mastodon/src/main/res/values-si-rLK/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-si-rLK/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-sl-rSI/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-sl-rSI/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
@@ -12,7 +12,7 @@
|
||||
<string name="sk_mark_media_as_sensitive">Označite medij kot občutljiv</string>
|
||||
<string name="sk_federated_timeline">Federacija</string>
|
||||
<string name="sk_clear_recent_languages">Izbriši nazadnje uporabljene jezike</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_pinned_posts">Pripeto</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Izbriši ter ponovno izdelaj objavo</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Ali ste prepričani, da želite objavo izbrisati in jo ponovno izdelati\?</string>
|
||||
@@ -20,5 +20,5 @@
|
||||
<string name="sk_confirm_unpin_post">Ali ste prepričani, da želite odpeti to objavo\?</string>
|
||||
<string name="sk_unpinning">Odpenjanje objave…</string>
|
||||
<string name="sk_settings_load_new_posts">Samodejno naloži nove objave</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
</resources>
|
||||
7
mastodon/src/main/res/values-sv-rSE/strings_mo.xml
Normal file
7
mastodon/src/main/res/values-sv-rSE/strings_mo.xml
Normal file
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="mo_disable_dividers">Inaktivera inläggsavdelare</string>
|
||||
<string name="mo_relocate_publish_button">Flytta publiceringsknappen</string>
|
||||
<string name="mo_color_palette_nord">Nord</string>
|
||||
<string name="mo_hide_compose_button_while_scrolling_setting">Dölj skrivknappen medan du skrollar</string>
|
||||
</resources>
|
||||
@@ -13,12 +13,12 @@
|
||||
<string name="sk_settings_show_boosts">Visa puffar</string>
|
||||
<string name="sk_settings_load_new_posts">Ladda automatiskt nya inlägg</string>
|
||||
<string name="sk_settings_show_interaction_counts">Visa antal interaktioner</string>
|
||||
<string name="sk_settings_app_version">Moshidon v%1$s (%2$d)</string>
|
||||
<string name="sk_settings_app_version">Megalodon v%1$s (%2$d)</string>
|
||||
<string name="sk_mark_media_as_sensitive">Markera media som känsligt</string>
|
||||
<string name="sk_user_post_notifications_off">Slå av inläggsnotifieringar för %s</string>
|
||||
<string name="sk_federated_timeline">Federation</string>
|
||||
<string name="sk_federated_timeline_info_banner">Dessa är de senaste inläggen av folk i din federation.</string>
|
||||
<string name="sk_update_available">Moshidon %s är redo att ladda ner.</string>
|
||||
<string name="sk_update_available">Megalodon %s är redo att ladda ner.</string>
|
||||
<string name="sk_check_for_update">Kolla efter uppdateringar</string>
|
||||
<string name="sk_no_update_available">Inga uppdateringar tillgängliga</string>
|
||||
<string name="sk_list_timelines">Listor</string>
|
||||
@@ -28,14 +28,14 @@
|
||||
<string name="sk_lists_with_user">Listor med %s</string>
|
||||
<string name="sk_settings_always_reveal_content_warnings">Visa alltid innehållsvarningar</string>
|
||||
<string name="sk_disable_marquee">Slå av skrollande text i titelrader</string>
|
||||
<string name="sk_settings_contribute">Bidra till Moshidon</string>
|
||||
<string name="sk_settings_contribute">Bidra till Megalodon</string>
|
||||
<string name="sk_settings_show_federated_timeline">Visa federerad tidslinje</string>
|
||||
<string name="sk_app_name">Moshidon</string>
|
||||
<string name="sk_app_name">Megalodon</string>
|
||||
<string name="sk_confirm_delete_and_redraft_title">Ta bort och skriv om inlägg</string>
|
||||
<string name="sk_confirm_delete_and_redraft">Är du säker på att du vill ta bort och skriva om detta inlägg\?</string>
|
||||
<string name="sk_confirm_pin_post_title">Nåla fast inlägg på profil</string>
|
||||
<string name="sk_confirm_pin_post">Vill du nåla fast detta inlägg på din profil\?</string>
|
||||
<string name="sk_confirm_unpin_post">Är du säker på att du vill ta bort detta inlägg\?</string>
|
||||
<string name="sk_user_post_notifications_on">Slå på inläggsnotifieringar för %s</string>
|
||||
<string name="sk_update_ready">Moshidon %s är nerladdad och redo att installeras.</string>
|
||||
<string name="sk_update_ready">Megalodon %s är nerladdad och redo att installeras.</string>
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-th-rTH/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-th-rTH/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-tr-rTR/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-tr-rTR/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
4
mastodon/src/main/res/values-uk-rUA/strings_mo.xml
Normal file
4
mastodon/src/main/res/values-uk-rUA/strings_mo.xml
Normal file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
</resources>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user