Compare commits
49 Commits
v1.1.5+for
...
v1.1.5+for
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5ed6f97846 | ||
|
|
7dc195606c | ||
|
|
b2377a3353 | ||
|
|
0fdae0c775 | ||
|
|
113bbd960f | ||
|
|
a48e09e77b | ||
|
|
3c3f759d9a | ||
|
|
5f0986d03b | ||
|
|
579794d7e0 | ||
|
|
4956543eac | ||
|
|
87043f19bc | ||
|
|
375f8ceb27 | ||
|
|
496ad6a442 | ||
|
|
83a09c4af2 | ||
|
|
fac6985d01 | ||
|
|
43670ba62b | ||
|
|
ef511349f8 | ||
|
|
eea0199a21 | ||
|
|
7e0f02ecc7 | ||
|
|
7b26a65ea0 | ||
|
|
c5b92d7162 | ||
|
|
f8387f0a81 | ||
|
|
8486326b00 | ||
|
|
8f64747e75 | ||
|
|
f75efdaa03 | ||
|
|
ee8d9d0c07 | ||
|
|
6791adef46 | ||
|
|
80bcb84acf | ||
|
|
7d6b0f9ca8 | ||
|
|
594f6d4fc5 | ||
|
|
e40acb9bf6 | ||
|
|
e372871108 | ||
|
|
1c01469a3e | ||
|
|
90c2e45be2 | ||
|
|
1a783d4faf | ||
|
|
d2944983a4 | ||
|
|
26459eecb0 | ||
|
|
90dea16222 | ||
|
|
8897a326b3 | ||
|
|
f3e69ddef1 | ||
|
|
8ecaa2c4d1 | ||
|
|
3a607a81f6 | ||
|
|
4b113e4a82 | ||
|
|
3e0e0c1484 | ||
|
|
676e166459 | ||
|
|
f0a704b93b | ||
|
|
cfc528df9a | ||
|
|
9231ea1446 | ||
|
|
f2f9138435 |
@@ -31,7 +31,7 @@ Despite being one of the main features of federated social media, the Federated
|
|||||||
|
|
||||||
That’s one of the reasons why choosing a small, **well-moderated instance is important**. Instance admins and moderators should always make sure to ban abusive users and stop federating with instances who platform them. On well-moderated instances, the Federated timeline can be a welcoming place to meet new people!
|
That’s one of the reasons why choosing a small, **well-moderated instance is important**. Instance admins and moderators should always make sure to ban abusive users and stop federating with instances who platform them. On well-moderated instances, the Federated timeline can be a welcoming place to meet new people!
|
||||||
|
|
||||||
## Draft and schedule posts
|
### Draft and schedule posts
|
||||||
|
|
||||||
**Allows for preparing a post and scheduling it to send it automatically at a specific time.**
|
**Allows for preparing a post and scheduling it to send it automatically at a specific time.**
|
||||||
|
|
||||||
@@ -141,7 +141,6 @@ There's also a handful of custom strings exclusive to this projects that would n
|
|||||||
* [Add notifications tab for posts](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/posts-notifications-tab)
|
* [Add notifications tab for posts](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/posts-notifications-tab)
|
||||||
* [Show visibility of original post when replying](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/display-reply-visibility)
|
* [Show visibility of original post when replying](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/display-reply-visibility)
|
||||||
* [Clickable reply/boost line above posts](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:clickable-boost-reply-line)
|
* [Clickable reply/boost line above posts](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:clickable-boost-reply-line)
|
||||||
* [Clickable reply line while replying to open original post](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/clickable-reply-line-compose)
|
|
||||||
* [Add push notification setting for post notifications](https://github.com/sk22/megalodon/commit/b190480d7739be47f23543d9e7644660f9b4b4ee)
|
* [Add push notification setting for post notifications](https://github.com/sk22/megalodon/commit/b190480d7739be47f23543d9e7644660f9b4b4ee)
|
||||||
* [Add option to allow voting for multiple options on polls](https://github.com/sk22/megalodon/commit/5b28468efd49387b4f8b83f142f3adf3104ca60c)
|
* [Add option to allow voting for multiple options on polls](https://github.com/sk22/megalodon/commit/5b28468efd49387b4f8b83f142f3adf3104ca60c)
|
||||||
* [Add translate function](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/translate-button)
|
* [Add translate function](https://github.com/mastodon/mastodon-android/compare/master...sk22:megalodon:feature/translate-button)
|
||||||
@@ -149,6 +148,7 @@ There's also a handful of custom strings exclusive to this projects that would n
|
|||||||
* [Implement deleting notifications](https://github.com/sk22/megalodon/commit/b0f9ce081f69f29ad59658fc00ca41372cd2677d) (disabled by default)
|
* [Implement deleting notifications](https://github.com/sk22/megalodon/commit/b0f9ce081f69f29ad59658fc00ca41372cd2677d) (disabled by default)
|
||||||
* [Long-click boost button to "quote" a post](https://github.com/sk22/megalodon/commit/b25a237c20c6a924ed4d9b357999867c3a32b32b)
|
* [Long-click boost button to "quote" a post](https://github.com/sk22/megalodon/commit/b25a237c20c6a924ed4d9b357999867c3a32b32b)
|
||||||
* [Draft and schedule posts](https://github.com/sk22/megalodon/pull/217)
|
* [Draft and schedule posts](https://github.com/sk22/megalodon/pull/217)
|
||||||
|
* [Display original post when replying](https://github.com/sk22/megalodon/commit/375f8ceb2747705fedf43686681cc0e0b812f899)
|
||||||
|
|
||||||
|
|
||||||
### Behavior
|
### Behavior
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ android {
|
|||||||
applicationId "org.joinmastodon.android.sk"
|
applicationId "org.joinmastodon.android.sk"
|
||||||
minSdk 23
|
minSdk 23
|
||||||
targetSdk 33
|
targetSdk 33
|
||||||
versionCode 64
|
versionCode 65
|
||||||
versionName "1.1.5+fork.64"
|
versionName "1.1.5+fork.65"
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
resConfigs "ar-rSA", "be-rBY", "bn-rBD", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES", "eu-rES", "fi-rFI", "fil-rPH", "fr-rFR", "ga-rIE", "gd-rGB", "gl-rES", "hi-rIN", "hr-rHR", "hu-rHU", "hy-rAM", "in-rID", "is-rIS", "it-rIT", "iw-rIL", "ja-rJP", "kab", "ko-rKR", "nl-rNL", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "vi-rVN", "zh-rCN", "zh-rTW"
|
resConfigs "ar-rSA", "be-rBY", "bn-rBD", "bs-rBA", "ca-rES", "cs-rCZ", "de-rDE", "el-rGR", "es-rES", "eu-rES", "fi-rFI", "fil-rPH", "fr-rFR", "ga-rIE", "gd-rGB", "gl-rES", "hi-rIN", "hr-rHR", "hu-rHU", "hy-rAM", "in-rID", "is-rIS", "it-rIT", "iw-rIL", "ja-rJP", "kab", "ko-rKR", "nl-rNL", "oc-rFR", "pl-rPL", "pt-rBR", "pt-rPT", "ro-rRO", "ru-rRU", "si-rLK", "sl-rSI", "sv-rSE", "th-rTH", "tr-rTR", "uk-rUA", "vi-rVN", "zh-rCN", "zh-rTW"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public class GlobalUserPreferences{
|
|||||||
public static boolean enableDeleteNotifications;
|
public static boolean enableDeleteNotifications;
|
||||||
public static boolean translateButtonOpenedOnly;
|
public static boolean translateButtonOpenedOnly;
|
||||||
public static boolean uniformNotificationIcon;
|
public static boolean uniformNotificationIcon;
|
||||||
|
public static boolean reduceMotion;
|
||||||
public static String publishButtonText;
|
public static String publishButtonText;
|
||||||
public static ThemePreference theme;
|
public static ThemePreference theme;
|
||||||
public static ColorPreference color;
|
public static ColorPreference color;
|
||||||
@@ -62,6 +63,7 @@ public class GlobalUserPreferences{
|
|||||||
enableDeleteNotifications=prefs.getBoolean("enableDeleteNotifications", false);
|
enableDeleteNotifications=prefs.getBoolean("enableDeleteNotifications", false);
|
||||||
translateButtonOpenedOnly=prefs.getBoolean("translateButtonOpenedOnly", false);
|
translateButtonOpenedOnly=prefs.getBoolean("translateButtonOpenedOnly", false);
|
||||||
uniformNotificationIcon=prefs.getBoolean("uniformNotificationIcon", false);
|
uniformNotificationIcon=prefs.getBoolean("uniformNotificationIcon", false);
|
||||||
|
reduceMotion=prefs.getBoolean("reduceMotion", false);
|
||||||
publishButtonText=prefs.getString("publishButtonText", "");
|
publishButtonText=prefs.getString("publishButtonText", "");
|
||||||
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
|
theme=ThemePreference.values()[prefs.getInt("theme", 0)];
|
||||||
recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>());
|
recentLanguages=fromJson(prefs.getString("recentLanguages", "{}"), recentLanguagesType, new HashMap<>());
|
||||||
@@ -90,6 +92,7 @@ public class GlobalUserPreferences{
|
|||||||
.putBoolean("enableDeleteNotifications", enableDeleteNotifications)
|
.putBoolean("enableDeleteNotifications", enableDeleteNotifications)
|
||||||
.putBoolean("translateButtonOpenedOnly", translateButtonOpenedOnly)
|
.putBoolean("translateButtonOpenedOnly", translateButtonOpenedOnly)
|
||||||
.putBoolean("uniformNotificationIcon", uniformNotificationIcon)
|
.putBoolean("uniformNotificationIcon", uniformNotificationIcon)
|
||||||
|
.putBoolean("reduceMotion", reduceMotion)
|
||||||
.putString("publishButtonText", publishButtonText)
|
.putString("publishButtonText", publishButtonText)
|
||||||
.putInt("theme", theme.ordinal())
|
.putInt("theme", theme.ordinal())
|
||||||
.putString("color", color.name())
|
.putString("color", color.name())
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ import android.provider.OpenableColumns;
|
|||||||
import android.text.Editable;
|
import android.text.Editable;
|
||||||
import android.text.InputFilter;
|
import android.text.InputFilter;
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.text.TextWatcher;
|
import android.text.TextWatcher;
|
||||||
@@ -59,6 +60,7 @@ import android.widget.ImageView;
|
|||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.PopupMenu;
|
import android.widget.PopupMenu;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
|
import android.widget.ScrollView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
@@ -107,6 +109,7 @@ import org.joinmastodon.android.ui.utils.TransferSpeedTracker;
|
|||||||
import org.joinmastodon.android.ui.utils.UiUtils;
|
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||||
import org.joinmastodon.android.ui.views.ComposeEditText;
|
import org.joinmastodon.android.ui.views.ComposeEditText;
|
||||||
import org.joinmastodon.android.ui.views.ComposeMediaLayout;
|
import org.joinmastodon.android.ui.views.ComposeMediaLayout;
|
||||||
|
import org.joinmastodon.android.ui.views.LinkedTextView;
|
||||||
import org.joinmastodon.android.ui.views.ReorderableLinearLayout;
|
import org.joinmastodon.android.ui.views.ReorderableLinearLayout;
|
||||||
import org.joinmastodon.android.ui.views.SizeListenerLinearLayout;
|
import org.joinmastodon.android.ui.views.SizeListenerLinearLayout;
|
||||||
import org.joinmastodon.android.utils.MastodonLanguage;
|
import org.joinmastodon.android.utils.MastodonLanguage;
|
||||||
@@ -144,6 +147,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
|
|
||||||
private static final int MEDIA_RESULT=717;
|
private static final int MEDIA_RESULT=717;
|
||||||
private static final int IMAGE_DESCRIPTION_RESULT=363;
|
private static final int IMAGE_DESCRIPTION_RESULT=363;
|
||||||
|
private static final int SCHEDULED_STATUS_OPENED_RESULT=161;
|
||||||
private static final int MAX_ATTACHMENTS=4;
|
private static final int MAX_ATTACHMENTS=4;
|
||||||
private static final String TAG="ComposeFragment";
|
private static final String TAG="ComposeFragment";
|
||||||
|
|
||||||
@@ -167,9 +171,9 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
private String accountID;
|
private String accountID;
|
||||||
private int charCount, charLimit, trimmedCharCount;
|
private int charCount, charLimit, trimmedCharCount;
|
||||||
|
|
||||||
private Button publishButton, languageButton, scheduleTimeBtn;
|
private Button publishButton, languageButton, scheduleTimeBtn, draftsBtn;
|
||||||
private PopupMenu languagePopup, visibilityPopup, scheduleDraftPopup;
|
private PopupMenu languagePopup, visibilityPopup, draftOptionsPopup;
|
||||||
private ImageButton mediaBtn, pollBtn, emojiBtn, spoilerBtn, visibilityBtn, scheduleBtn, scheduleDraftDismiss;
|
private ImageButton mediaBtn, pollBtn, emojiBtn, spoilerBtn, visibilityBtn, scheduleDraftDismiss;
|
||||||
private ImageView sensitiveIcon;
|
private ImageView sensitiveIcon;
|
||||||
private ComposeMediaLayout attachmentsView;
|
private ComposeMediaLayout attachmentsView;
|
||||||
private TextView replyText;
|
private TextView replyText;
|
||||||
@@ -179,9 +183,12 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
private View sensitiveItem;
|
private View sensitiveItem;
|
||||||
private View pollAllowMultipleItem;
|
private View pollAllowMultipleItem;
|
||||||
private View scheduleDraftView;
|
private View scheduleDraftView;
|
||||||
|
private ScrollView scrollView;
|
||||||
|
private boolean initiallyScrolled = false;
|
||||||
private TextView scheduleDraftText;
|
private TextView scheduleDraftText;
|
||||||
private CheckBox pollAllowMultipleCheckbox;
|
private CheckBox pollAllowMultipleCheckbox;
|
||||||
private TextView pollDurationView;
|
private TextView pollDurationView;
|
||||||
|
private MenuItem draftMenuItem, undraftMenuItem, scheduleMenuItem, unscheduleMenuItem;
|
||||||
|
|
||||||
private ArrayList<DraftPollOption> pollOptions=new ArrayList<>();
|
private ArrayList<DraftPollOption> pollOptions=new ArrayList<>();
|
||||||
|
|
||||||
@@ -220,14 +227,10 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
private String language;
|
private String language;
|
||||||
private MastodonLanguage.LanguageResolver languageResolver;
|
private MastodonLanguage.LanguageResolver languageResolver;
|
||||||
|
|
||||||
private int navigationBarColorBefore;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState){
|
public void onCreate(Bundle savedInstanceState){
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setRetainInstance(true);
|
setRetainInstance(true);
|
||||||
navigationBarColorBefore = getActivity().getWindow().getNavigationBarColor();
|
|
||||||
getActivity().getWindow().setNavigationBarColor(UiUtils.getThemeColor(getActivity(), R.attr.colorBackgroundLightest));
|
|
||||||
|
|
||||||
accountID=getArguments().getString("account");
|
accountID=getArguments().getString("account");
|
||||||
AccountSession session=AccountSessionManager.getInstance().getAccount(accountID);
|
AccountSession session=AccountSessionManager.getInstance().getAccount(accountID);
|
||||||
@@ -248,7 +251,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
AccountSessionManager.getInstance().updateInstanceInfo(instanceDomain);
|
AccountSessionManager.getInstance().updateInstanceInfo(instanceDomain);
|
||||||
}
|
}
|
||||||
|
|
||||||
// sorry about all this ugly code, but i can't find any consistency in ComposeFragment.java
|
|
||||||
Bundle bundle = savedInstanceState != null ? savedInstanceState : getArguments();
|
Bundle bundle = savedInstanceState != null ? savedInstanceState : getArguments();
|
||||||
if (bundle.containsKey("scheduledStatus")) scheduledStatus=Parcels.unwrap(bundle.getParcelable("scheduledStatus"));
|
if (bundle.containsKey("scheduledStatus")) scheduledStatus=Parcels.unwrap(bundle.getParcelable("scheduledStatus"));
|
||||||
if (bundle.containsKey("scheduledAt")) scheduledAt=(Instant) bundle.getSerializable("scheduledAt");
|
if (bundle.containsKey("scheduledAt")) scheduledAt=(Instant) bundle.getSerializable("scheduledAt");
|
||||||
@@ -272,7 +274,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
UiUtils.removeCallbacks(updateUploadEtaRunnable);
|
UiUtils.removeCallbacks(updateUploadEtaRunnable);
|
||||||
updateUploadEtaRunnable=null;
|
updateUploadEtaRunnable=null;
|
||||||
}
|
}
|
||||||
getActivity().getWindow().setNavigationBarColor(navigationBarColorBefore);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -294,10 +295,11 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
mainEditTextWrap=view.findViewById(R.id.toot_text_wrap);
|
mainEditTextWrap=view.findViewById(R.id.toot_text_wrap);
|
||||||
charCounter=view.findViewById(R.id.char_counter);
|
charCounter=view.findViewById(R.id.char_counter);
|
||||||
charCounter.setText(String.valueOf(charLimit));
|
charCounter.setText(String.valueOf(charLimit));
|
||||||
|
scrollView=view.findViewById(R.id.scroll_view);
|
||||||
|
|
||||||
selfName=view.findViewById(R.id.name);
|
selfName=view.findViewById(R.id.self_name);
|
||||||
selfUsername=view.findViewById(R.id.username);
|
selfUsername=view.findViewById(R.id.self_username);
|
||||||
selfAvatar=view.findViewById(R.id.avatar);
|
selfAvatar=view.findViewById(R.id.self_avatar);
|
||||||
HtmlParser.setTextWithCustomEmoji(selfName, self.displayName, self.emojis);
|
HtmlParser.setTextWithCustomEmoji(selfName, self.displayName, self.emojis);
|
||||||
selfUsername.setText('@'+self.username+'@'+instanceDomain);
|
selfUsername.setText('@'+self.username+'@'+instanceDomain);
|
||||||
ViewImageLoader.load(selfAvatar, null, new UrlImageLoaderRequest(self.avatar));
|
ViewImageLoader.load(selfAvatar, null, new UrlImageLoaderRequest(self.avatar));
|
||||||
@@ -315,7 +317,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
emojiBtn=view.findViewById(R.id.btn_emoji);
|
emojiBtn=view.findViewById(R.id.btn_emoji);
|
||||||
spoilerBtn=view.findViewById(R.id.btn_spoiler);
|
spoilerBtn=view.findViewById(R.id.btn_spoiler);
|
||||||
visibilityBtn=view.findViewById(R.id.btn_visibility);
|
visibilityBtn=view.findViewById(R.id.btn_visibility);
|
||||||
scheduleBtn=view.findViewById(R.id.btn_schedule);
|
|
||||||
scheduleDraftView=view.findViewById(R.id.schedule_draft_view);
|
scheduleDraftView=view.findViewById(R.id.schedule_draft_view);
|
||||||
scheduleDraftText=view.findViewById(R.id.schedule_draft_text);
|
scheduleDraftText=view.findViewById(R.id.schedule_draft_text);
|
||||||
scheduleDraftDismiss=view.findViewById(R.id.schedule_draft_dismiss);
|
scheduleDraftDismiss=view.findViewById(R.id.schedule_draft_dismiss);
|
||||||
@@ -332,19 +333,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
visibilityBtn.setOnClickListener(v->visibilityPopup.show());
|
visibilityBtn.setOnClickListener(v->visibilityPopup.show());
|
||||||
visibilityBtn.setOnTouchListener(visibilityPopup.getDragToOpenListener());
|
visibilityBtn.setOnTouchListener(visibilityPopup.getDragToOpenListener());
|
||||||
|
|
||||||
scheduleDraftPopup=new PopupMenu(getContext(), scheduleBtn);
|
|
||||||
scheduleDraftPopup.inflate(R.menu.schedule_draft);
|
|
||||||
scheduleDraftPopup.setOnMenuItemClickListener(item->{
|
|
||||||
if (item.getItemId() == R.id.draft) updateScheduledAt(getDraftInstant());
|
|
||||||
else pickScheduledDateTime();
|
|
||||||
return true;
|
|
||||||
});
|
|
||||||
UiUtils.enablePopupMenuIcons(getContext(), scheduleDraftPopup);
|
|
||||||
scheduleBtn.setOnClickListener(v->{
|
|
||||||
if (scheduledAt != null) updateScheduledAt(null);
|
|
||||||
else scheduleDraftPopup.show();
|
|
||||||
});
|
|
||||||
scheduleBtn.setOnTouchListener(scheduleDraftPopup.getDragToOpenListener());
|
|
||||||
scheduleDraftDismiss.setOnClickListener(v->updateScheduledAt(null));
|
scheduleDraftDismiss.setOnClickListener(v->updateScheduledAt(null));
|
||||||
scheduleTimeBtn.setOnClickListener(v->pickScheduledDateTime());
|
scheduleTimeBtn.setOnClickListener(v->pickScheduledDateTime());
|
||||||
|
|
||||||
@@ -572,6 +560,77 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
});
|
});
|
||||||
spoilerEdit.addTextChangedListener(new SimpleTextWatcher(e->updateCharCounter()));
|
spoilerEdit.addTextChangedListener(new SimpleTextWatcher(e->updateCharCounter()));
|
||||||
if(replyTo!=null){
|
if(replyTo!=null){
|
||||||
|
View replyWrap = view.findViewById(R.id.reply_wrap);
|
||||||
|
scrollView.getViewTreeObserver().addOnGlobalLayoutListener(() -> {
|
||||||
|
int scrollHeight = scrollView.getHeight();
|
||||||
|
if (replyWrap.getMinimumHeight() != scrollHeight) {
|
||||||
|
replyWrap.setMinimumHeight(scrollHeight);
|
||||||
|
if (!initiallyScrolled) {
|
||||||
|
initiallyScrolled = true;
|
||||||
|
scrollView.post(() -> {
|
||||||
|
int bottom = scrollView.getChildAt(0).getBottom();
|
||||||
|
int delta = bottom - (scrollView.getScrollY() + scrollView.getHeight());
|
||||||
|
int space = GlobalUserPreferences.reduceMotion ? 0 : Math.min(V.dp(120), delta);
|
||||||
|
scrollView.scrollBy(0, delta - space);
|
||||||
|
if (!GlobalUserPreferences.reduceMotion) {
|
||||||
|
scrollView.postDelayed(() -> scrollView.smoothScrollBy(0, space), 100);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
View originalPost = view.findViewById(R.id.original_post);
|
||||||
|
originalPost.setVisibility(View.VISIBLE);
|
||||||
|
originalPost.setOnClickListener(v->{
|
||||||
|
Bundle args=new Bundle();
|
||||||
|
args.putString("account", accountID);
|
||||||
|
args.putParcelable("status", Parcels.wrap(replyTo));
|
||||||
|
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
||||||
|
Nav.go(getActivity(), ThreadFragment.class, args);
|
||||||
|
});
|
||||||
|
|
||||||
|
ImageView avatar = view.findViewById(R.id.avatar);
|
||||||
|
ViewImageLoader.load(avatar, null, new UrlImageLoaderRequest(replyTo.account.avatar));
|
||||||
|
ViewOutlineProvider roundCornersOutline=new ViewOutlineProvider(){
|
||||||
|
@Override
|
||||||
|
public void getOutline(View view, Outline outline){
|
||||||
|
outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), V.dp(12));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
avatar.setOutlineProvider(roundCornersOutline);
|
||||||
|
avatar.setClipToOutline(true);
|
||||||
|
avatar.setOnClickListener(v->{
|
||||||
|
Bundle args=new Bundle();
|
||||||
|
args.putString("account", accountID);
|
||||||
|
args.putParcelable("profileAccount", Parcels.wrap(replyTo.account));
|
||||||
|
Nav.go(getActivity(), ProfileFragment.class, args);
|
||||||
|
});
|
||||||
|
|
||||||
|
((TextView) view.findViewById(R.id.name)).setText(replyTo.account.displayName);
|
||||||
|
((TextView) view.findViewById(R.id.username)).setText(replyTo.account.getDisplayUsername());
|
||||||
|
view.findViewById(R.id.visibility).setVisibility(View.GONE);
|
||||||
|
Drawable visibilityIcon = getActivity().getDrawable(switch(replyTo.visibility){
|
||||||
|
case PUBLIC -> R.drawable.ic_fluent_earth_20_regular;
|
||||||
|
case UNLISTED -> R.drawable.ic_fluent_people_community_20_regular;
|
||||||
|
case PRIVATE -> R.drawable.ic_fluent_people_checkmark_20_regular;
|
||||||
|
case DIRECT -> R.drawable.ic_fluent_mention_20_regular;
|
||||||
|
});
|
||||||
|
ImageView moreBtn = view.findViewById(R.id.more);
|
||||||
|
moreBtn.setImageDrawable(visibilityIcon);
|
||||||
|
moreBtn.setBackground(null);
|
||||||
|
TextView timestamp = view.findViewById(R.id.timestamp);
|
||||||
|
if (replyTo.editedAt==null) timestamp.setText(UiUtils.formatRelativeTimestamp(getContext(), replyTo.createdAt));
|
||||||
|
else timestamp.setText(getString(R.string.edited_timestamp, UiUtils.formatRelativeTimestamp(getContext(), replyTo.editedAt)));
|
||||||
|
if (replyTo.spoilerText != null && !replyTo.spoilerText.isBlank()) {
|
||||||
|
view.findViewById(R.id.spoiler_header).setVisibility(View.VISIBLE);
|
||||||
|
((TextView) view.findViewById(R.id.spoiler_title_inline)).setText(replyTo.spoilerText);
|
||||||
|
}
|
||||||
|
|
||||||
|
SpannableStringBuilder content = HtmlParser.parse(replyTo.content, replyTo.emojis, replyTo.mentions, replyTo.tags, accountID);
|
||||||
|
LinkedTextView text = view.findViewById(R.id.text);
|
||||||
|
if (content.length() > 0) text.setText(content);
|
||||||
|
else view.findViewById(R.id.display_item_text).setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, V.dp(16)));
|
||||||
|
|
||||||
replyText.setText(getString(R.string.in_reply_to, replyTo.account.displayName));
|
replyText.setText(getString(R.string.in_reply_to, replyTo.account.displayName));
|
||||||
int visibilityNameRes = switch (replyTo.visibility) {
|
int visibilityNameRes = switch (replyTo.visibility) {
|
||||||
case PUBLIC -> R.string.visibility_public;
|
case PUBLIC -> R.string.visibility_public;
|
||||||
@@ -580,24 +639,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
case DIRECT -> R.string.visibility_private;
|
case DIRECT -> R.string.visibility_private;
|
||||||
};
|
};
|
||||||
replyText.setContentDescription(getString(R.string.in_reply_to, replyTo.account.displayName) + ". " + getString(R.string.post_visibility) + ": " + getString(visibilityNameRes));
|
replyText.setContentDescription(getString(R.string.in_reply_to, replyTo.account.displayName) + ". " + getString(R.string.post_visibility) + ": " + getString(visibilityNameRes));
|
||||||
Drawable visibilityIcon = getActivity().getDrawable(switch(replyTo.visibility){
|
|
||||||
case PUBLIC -> R.drawable.ic_fluent_earth_20_regular;
|
|
||||||
case UNLISTED -> R.drawable.ic_fluent_people_community_20_regular;
|
|
||||||
case PRIVATE -> R.drawable.ic_fluent_people_checkmark_20_regular;
|
|
||||||
case DIRECT -> R.drawable.ic_fluent_mention_20_regular;
|
|
||||||
});
|
|
||||||
visibilityIcon.setBounds(0, 0, V.dp(20), V.dp(20));
|
|
||||||
Drawable replyArrow = getActivity().getDrawable(R.drawable.ic_fluent_arrow_reply_20_filled);
|
|
||||||
replyArrow.setBounds(0, 0, V.dp(20), V.dp(20));
|
|
||||||
replyText.setCompoundDrawables(replyArrow, null, visibilityIcon, null);
|
|
||||||
|
|
||||||
replyText.setOnClickListener(v->{
|
|
||||||
Bundle args=new Bundle();
|
|
||||||
args.putString("account", accountID);
|
|
||||||
args.putParcelable("status", Parcels.wrap(replyTo));
|
|
||||||
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
|
|
||||||
Nav.go(getActivity(), ThreadFragment.class, args);
|
|
||||||
});
|
|
||||||
ArrayList<String> mentions=new ArrayList<>();
|
ArrayList<String> mentions=new ArrayList<>();
|
||||||
String ownID=AccountSessionManager.getInstance().getAccount(accountID).self.id;
|
String ownID=AccountSessionManager.getInstance().getAccount(accountID).self.id;
|
||||||
if(!replyTo.account.id.equals(ownID))
|
if(!replyTo.account.id.equals(ownID))
|
||||||
@@ -672,7 +714,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
}
|
}
|
||||||
|
|
||||||
updateSensitive();
|
updateSensitive();
|
||||||
updateScheduledAt(scheduledAt != null ? scheduledAt : scheduledStatus != null ? scheduledStatus.scheduledAt : null);
|
|
||||||
|
|
||||||
if(editingStatus!=null){
|
if(editingStatus!=null){
|
||||||
updateCharCounter();
|
updateCharCounter();
|
||||||
@@ -682,40 +723,55 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
|
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater){
|
||||||
publishButton=new Button(getActivity());
|
|
||||||
resetPublishButtonText();
|
|
||||||
publishButton.setSingleLine();
|
|
||||||
publishButton.setEllipsize(TextUtils.TruncateAt.END);
|
|
||||||
publishButton.setOnClickListener(this::onPublishClick);
|
|
||||||
LinearLayout wrap=new LinearLayout(getActivity());
|
|
||||||
wrap.setOrientation(LinearLayout.HORIZONTAL);
|
|
||||||
|
|
||||||
sendProgress=new ProgressBar(getActivity());
|
|
||||||
LinearLayout.LayoutParams progressLP=new LinearLayout.LayoutParams(V.dp(24), V.dp(24));
|
|
||||||
progressLP.setMarginEnd(V.dp(16));
|
|
||||||
progressLP.gravity=Gravity.CENTER_VERTICAL;
|
|
||||||
wrap.addView(sendProgress, progressLP);
|
|
||||||
|
|
||||||
sendError=new ImageView(getActivity());
|
|
||||||
sendError.setImageResource(R.drawable.ic_fluent_error_circle_24_regular);
|
|
||||||
sendError.setImageTintList(getResources().getColorStateList(R.color.error_600));
|
|
||||||
sendError.setScaleType(ImageView.ScaleType.CENTER);
|
|
||||||
wrap.addView(sendError, progressLP);
|
|
||||||
|
|
||||||
sendError.setVisibility(View.GONE);
|
|
||||||
sendProgress.setVisibility(View.GONE);
|
|
||||||
|
|
||||||
LinearLayout.LayoutParams langParams=new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
|
||||||
langParams.setMarginEnd(V.dp(8));
|
|
||||||
wrap.addView(buildLanguageSelector(), langParams);
|
|
||||||
|
|
||||||
wrap.addView(publishButton, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
|
||||||
wrap.setPadding(V.dp(16), V.dp(4), V.dp(16), V.dp(8));
|
|
||||||
wrap.setClipToPadding(false);
|
|
||||||
MenuItem item=menu.add(editingStatus==null ? R.string.publish : R.string.save);
|
MenuItem item=menu.add(editingStatus==null ? R.string.publish : R.string.save);
|
||||||
|
LinearLayout wrap=new LinearLayout(getActivity());
|
||||||
|
getActivity().getLayoutInflater().inflate(R.layout.compose_action, wrap);
|
||||||
item.setActionView(wrap);
|
item.setActionView(wrap);
|
||||||
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
|
||||||
updatePublishButtonState();
|
|
||||||
|
draftsBtn = wrap.findViewById(R.id.drafts_btn);
|
||||||
|
draftOptionsPopup = new PopupMenu(getContext(), draftsBtn);
|
||||||
|
draftOptionsPopup.inflate(R.menu.compose_more);
|
||||||
|
draftMenuItem = draftOptionsPopup.getMenu().findItem(R.id.draft);
|
||||||
|
undraftMenuItem = draftOptionsPopup.getMenu().findItem(R.id.undraft);
|
||||||
|
scheduleMenuItem = draftOptionsPopup.getMenu().findItem(R.id.schedule);
|
||||||
|
unscheduleMenuItem = draftOptionsPopup.getMenu().findItem(R.id.unschedule);
|
||||||
|
draftOptionsPopup.setOnMenuItemClickListener(i->{
|
||||||
|
int id = i.getItemId();
|
||||||
|
if (id == R.id.draft) updateScheduledAt(getDraftInstant());
|
||||||
|
else if (id == R.id.schedule) pickScheduledDateTime();
|
||||||
|
else if (id == R.id.unschedule || id == R.id.undraft) updateScheduledAt(null);
|
||||||
|
else navigateToUnsentPosts();
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
UiUtils.enablePopupMenuIcons(getContext(), draftOptionsPopup);
|
||||||
|
|
||||||
|
publishButton = wrap.findViewById(R.id.publish_btn);
|
||||||
|
languageButton = wrap.findViewById(R.id.language_btn);
|
||||||
|
sendProgress = wrap.findViewById(R.id.send_progress);
|
||||||
|
sendError = wrap.findViewById(R.id.send_error);
|
||||||
|
|
||||||
|
publishButton.setOnClickListener(this::onPublishClick);
|
||||||
|
draftsBtn.setOnClickListener(v-> draftOptionsPopup.show());
|
||||||
|
draftsBtn.setOnTouchListener(draftOptionsPopup.getDragToOpenListener());
|
||||||
|
updateScheduledAt(scheduledAt != null ? scheduledAt : scheduledStatus != null ? scheduledStatus.scheduledAt : null);
|
||||||
|
buildLanguageSelector(languageButton);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void navigateToUnsentPosts() {
|
||||||
|
Bundle args=new Bundle();
|
||||||
|
args.putString("account", accountID);
|
||||||
|
args.putBoolean("hide_fab", true);
|
||||||
|
InputMethodManager imm=getActivity().getSystemService(InputMethodManager.class);
|
||||||
|
imm.hideSoftInputFromWindow(draftsBtn.getWindowToken(), 0);
|
||||||
|
if (hasDraft()) {
|
||||||
|
Nav.go(getActivity(), ScheduledStatusListFragment.class, args);
|
||||||
|
} else {
|
||||||
|
// result for the previous ScheduledStatusList
|
||||||
|
setResult(true, null);
|
||||||
|
// finishing fragment in "onFragmentResult"
|
||||||
|
Nav.goForResult(getActivity(), ScheduledStatusListFragment.class, args, SCHEDULED_STATUS_OPENED_RESULT, this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void updateLanguage(String lang) {
|
private void updateLanguage(String lang) {
|
||||||
@@ -729,18 +785,10 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("ClickableViewAccessibility")
|
@SuppressLint("ClickableViewAccessibility")
|
||||||
private Button buildLanguageSelector() {
|
private void buildLanguageSelector(Button btn) {
|
||||||
languageButton=new Button(getActivity());
|
|
||||||
languageButton.setTextColor(UiUtils.getThemeColor(getActivity(), android.R.attr.textColorSecondary));
|
|
||||||
languageButton.setBackground(getActivity().getDrawable(R.drawable.bg_text_button));
|
|
||||||
languageButton.setPadding(V.dp(8), 0, V.dp(8), 0);
|
|
||||||
languageButton.setCompoundDrawablesRelativeWithIntrinsicBounds(getActivity().getDrawable(R.drawable.ic_fluent_local_language_16_regular), null, null, null);
|
|
||||||
languageButton.setCompoundDrawableTintList(languageButton.getTextColors());
|
|
||||||
languageButton.setCompoundDrawablePadding(V.dp(6));
|
|
||||||
|
|
||||||
languagePopup=new PopupMenu(getActivity(), languageButton);
|
languagePopup=new PopupMenu(getActivity(), languageButton);
|
||||||
languageButton.setOnTouchListener(languagePopup.getDragToOpenListener());
|
btn.setOnTouchListener(languagePopup.getDragToOpenListener());
|
||||||
languageButton.setOnClickListener(v->languagePopup.show());
|
btn.setOnClickListener(v->languagePopup.show());
|
||||||
|
|
||||||
Preferences prefs = AccountSessionManager.getInstance().getAccount(accountID).preferences;
|
Preferences prefs = AccountSessionManager.getInstance().getAccount(accountID).preferences;
|
||||||
updateLanguage(prefs != null && prefs.postingDefaultLanguage != null && prefs.postingDefaultLanguage.length() > 0
|
updateLanguage(prefs != null && prefs.postingDefaultLanguage != null && prefs.postingDefaultLanguage.length() > 0
|
||||||
@@ -764,8 +812,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
updateLanguage(allLanguages.get(i.getItemId()));
|
updateLanguage(allLanguages.get(i.getItemId()));
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|
||||||
return languageButton;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -838,25 +884,6 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
@Override
|
@Override
|
||||||
protected void updateToolbar(){
|
protected void updateToolbar(){
|
||||||
super.updateToolbar();
|
super.updateToolbar();
|
||||||
if (replyTo != null || hasDraft()) return;
|
|
||||||
Button draftsBtn=new Button(getActivity());
|
|
||||||
draftsBtn.setTextColor(UiUtils.getThemeColor(getActivity(), android.R.attr.textColorSecondary));
|
|
||||||
draftsBtn.setBackground(getActivity().getDrawable(R.drawable.bg_text_button));
|
|
||||||
draftsBtn.setPadding(V.dp(8), 0, V.dp(8), 0);
|
|
||||||
draftsBtn.setCompoundDrawablesRelativeWithIntrinsicBounds(getActivity().getDrawable(R.drawable.ic_fluent_drafts_20_regular), null, null, null);
|
|
||||||
draftsBtn.setCompoundDrawableTintList(draftsBtn.getTextColors());
|
|
||||||
draftsBtn.setContentDescription(getString(R.string.sk_unsent_posts));
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) draftsBtn.setTooltipText(getString(R.string.sk_unsent_posts));
|
|
||||||
draftsBtn.setOnClickListener(v->{
|
|
||||||
Bundle args=new Bundle();
|
|
||||||
args.putString("account", accountID);
|
|
||||||
InputMethodManager imm=getActivity().getSystemService(InputMethodManager.class);
|
|
||||||
imm.hideSoftInputFromWindow(draftsBtn.getWindowToken(), 0);
|
|
||||||
Nav.go(getActivity(), ScheduledStatusListFragment.class, args);
|
|
||||||
// TODO: figure out a better way to handle the back stack
|
|
||||||
// if (!hasDraft()) content.postDelayed(()->Nav.finish(this), 200);
|
|
||||||
});
|
|
||||||
getToolbar().addView(draftsBtn);
|
|
||||||
getToolbar().setNavigationIcon(R.drawable.ic_fluent_dismiss_24_regular);
|
getToolbar().setNavigationIcon(R.drawable.ic_fluent_dismiss_24_regular);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1029,6 +1056,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
if(!existingMediaIDs.equals(attachments.stream().map(a->a.serverAttachment.id).collect(Collectors.toList())))
|
if(!existingMediaIDs.equals(attachments.stream().map(a->a.serverAttachment.id).collect(Collectors.toList())))
|
||||||
return true;
|
return true;
|
||||||
if(!statusVisibility.equals(editingStatus.visibility)) return true;
|
if(!statusVisibility.equals(editingStatus.visibility)) return true;
|
||||||
|
if(scheduledStatus != null && !scheduledStatus.scheduledAt.equals(scheduledAt)) return true;
|
||||||
return pollChanged;
|
return pollChanged;
|
||||||
}
|
}
|
||||||
boolean pollFieldsHaveContent=false;
|
boolean pollFieldsHaveContent=false;
|
||||||
@@ -1073,14 +1101,16 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (reqCode == SCHEDULED_STATUS_OPENED_RESULT && success && getActivity() != null) {
|
||||||
|
Nav.finish(this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void confirmDiscardDraftAndFinish(){
|
private void confirmDiscardDraftAndFinish(){
|
||||||
new M3AlertDialogBuilder(getActivity())
|
new M3AlertDialogBuilder(getActivity())
|
||||||
.setTitle(editingStatus != null ? R.string.sk_save_changes : R.string.sk_save_draft)
|
.setTitle(editingStatus != null ? R.string.sk_confirm_save_changes : R.string.sk_confirm_save_draft)
|
||||||
.setPositiveButton(R.string.save, (d, w) -> {
|
.setPositiveButton(R.string.save, (d, w) -> {
|
||||||
updateScheduledAt(getDraftInstant());
|
updateScheduledAt(scheduledAt == null ? getDraftInstant() : scheduledAt);
|
||||||
publish();
|
publish();
|
||||||
})
|
})
|
||||||
.setNegativeButton(R.string.discard, (d, w) -> Nav.finish(this))
|
.setNegativeButton(R.string.discard, (d, w) -> Nav.finish(this))
|
||||||
@@ -1575,23 +1605,39 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
|
|||||||
|
|
||||||
private void updateScheduledAt(Instant scheduledAt) {
|
private void updateScheduledAt(Instant scheduledAt) {
|
||||||
this.scheduledAt = scheduledAt;
|
this.scheduledAt = scheduledAt;
|
||||||
scheduleDraftView.setVisibility(scheduledAt == null ? View.GONE : View.VISIBLE);
|
|
||||||
scheduleBtn.setSelected(scheduledAt != null);
|
|
||||||
updatePublishButtonState();
|
updatePublishButtonState();
|
||||||
|
scheduleDraftView.setVisibility(scheduledAt == null ? View.GONE : View.VISIBLE);
|
||||||
|
draftMenuItem.setVisible(true);
|
||||||
|
scheduleMenuItem.setVisible(true);
|
||||||
|
undraftMenuItem.setVisible(false);
|
||||||
|
unscheduleMenuItem.setVisible(false);
|
||||||
if (scheduledAt != null) {
|
if (scheduledAt != null) {
|
||||||
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withLocale(Locale.getDefault());
|
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM).withLocale(Locale.getDefault());
|
||||||
if (scheduledAt.isAfter(DRAFTS_AFTER_INSTANT)) {
|
if (scheduledAt.isAfter(DRAFTS_AFTER_INSTANT)) {
|
||||||
|
draftMenuItem.setVisible(false);
|
||||||
|
undraftMenuItem.setVisible(true);
|
||||||
scheduleTimeBtn.setVisibility(View.GONE);
|
scheduleTimeBtn.setVisibility(View.GONE);
|
||||||
scheduleDraftText.setText(R.string.sk_compose_draft);
|
scheduleDraftText.setText(R.string.sk_compose_draft);
|
||||||
publishButton.setText(scheduledStatus != null ? R.string.save : R.string.sk_draft);
|
scheduleDraftText.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_fluent_drafts_20_regular, 0, 0, 0);
|
||||||
|
scheduleDraftDismiss.setContentDescription(getString(R.string.sk_compose_no_draft));
|
||||||
|
draftsBtn.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_fluent_drafts_20_filled, 0, 0, 0);
|
||||||
|
publishButton.setText(scheduledStatus != null && scheduledStatus.scheduledAt.isAfter(DRAFTS_AFTER_INSTANT)
|
||||||
|
? R.string.save : R.string.sk_draft);
|
||||||
} else {
|
} else {
|
||||||
|
scheduleMenuItem.setVisible(false);
|
||||||
|
unscheduleMenuItem.setVisible(true);
|
||||||
String at = scheduledAt.atZone(ZoneId.systemDefault()).format(formatter);
|
String at = scheduledAt.atZone(ZoneId.systemDefault()).format(formatter);
|
||||||
scheduleTimeBtn.setVisibility(View.VISIBLE);
|
scheduleTimeBtn.setVisibility(View.VISIBLE);
|
||||||
scheduleTimeBtn.setText(at);
|
scheduleTimeBtn.setText(at);
|
||||||
scheduleDraftText.setText(R.string.sk_compose_scheduled);
|
scheduleDraftText.setText(R.string.sk_compose_scheduled);
|
||||||
publishButton.setText(scheduledStatus != null ? R.string.save : R.string.sk_schedule);
|
scheduleDraftText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
|
||||||
|
scheduleDraftDismiss.setContentDescription(getString(R.string.sk_compose_no_schedule));
|
||||||
|
draftsBtn.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_fluent_clock_20_filled, 0, 0, 0);
|
||||||
|
publishButton.setText(scheduledStatus != null && scheduledStatus.scheduledAt.equals(scheduledAt)
|
||||||
|
? R.string.save : R.string.sk_schedule);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
draftsBtn.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_fluent_clock_20_regular, 0, 0, 0);
|
||||||
resetPublishButtonText();
|
resetPublishButtonText();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,7 +105,7 @@ public class HomeTimelineFragment extends StatusListFragment{
|
|||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
fab=view.findViewById(R.id.fab);
|
fab=view.findViewById(R.id.fab);
|
||||||
fab.setOnClickListener(this::onFabClick);
|
fab.setOnClickListener(this::onFabClick);
|
||||||
fab.setOnLongClickListener(v->UiUtils.pickAccountForCompose(getActivity(), accountID, null));
|
fab.setOnLongClickListener(v->UiUtils.pickAccountForCompose(getActivity(), accountID));
|
||||||
|
|
||||||
updateToolbarLogo();
|
updateToolbarLogo();
|
||||||
list.addOnScrollListener(new RecyclerView.OnScrollListener(){
|
list.addOnScrollListener(new RecyclerView.OnScrollListener(){
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package org.joinmastodon.android.fragments;
|
package org.joinmastodon.android.fragments;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.media.MediaRouter;
|
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
import android.view.MenuInflater;
|
import android.view.MenuInflater;
|
||||||
@@ -70,7 +69,7 @@ public class ListTimelineFragment extends StatusListFragment {
|
|||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
fab=view.findViewById(R.id.fab);
|
fab=view.findViewById(R.id.fab);
|
||||||
fab.setOnClickListener(this::onFabClick);
|
fab.setOnClickListener(this::onFabClick);
|
||||||
fab.setOnLongClickListener(v -> UiUtils.pickAccountForCompose(getActivity(), accountID, null));
|
fab.setOnLongClickListener(v -> UiUtils.pickAccountForCompose(getActivity(), accountID));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onFabClick(View v){
|
private void onFabClick(View v){
|
||||||
|
|||||||
@@ -2,22 +2,22 @@ package org.joinmastodon.android.fragments;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.view.View;
|
||||||
|
import android.widget.ImageButton;
|
||||||
|
|
||||||
import com.squareup.otto.Subscribe;
|
import com.squareup.otto.Subscribe;
|
||||||
|
|
||||||
import org.joinmastodon.android.E;
|
import org.joinmastodon.android.E;
|
||||||
import org.joinmastodon.android.R;
|
import org.joinmastodon.android.R;
|
||||||
import org.joinmastodon.android.api.requests.statuses.GetBookmarkedStatuses;
|
import org.joinmastodon.android.api.requests.statuses.CreateStatus;
|
||||||
import org.joinmastodon.android.api.requests.statuses.GetScheduledStatuses;
|
import org.joinmastodon.android.api.requests.statuses.GetScheduledStatuses;
|
||||||
import org.joinmastodon.android.api.session.AccountSessionManager;
|
|
||||||
import org.joinmastodon.android.events.ScheduledStatusCreatedEvent;
|
import org.joinmastodon.android.events.ScheduledStatusCreatedEvent;
|
||||||
import org.joinmastodon.android.events.ScheduledStatusDeletedEvent;
|
import org.joinmastodon.android.events.ScheduledStatusDeletedEvent;
|
||||||
import org.joinmastodon.android.events.StatusCreatedEvent;
|
|
||||||
import org.joinmastodon.android.events.StatusDeletedEvent;
|
|
||||||
import org.joinmastodon.android.model.HeaderPaginationList;
|
import org.joinmastodon.android.model.HeaderPaginationList;
|
||||||
import org.joinmastodon.android.model.ScheduledStatus;
|
import org.joinmastodon.android.model.ScheduledStatus;
|
||||||
import org.joinmastodon.android.model.Status;
|
import org.joinmastodon.android.model.Status;
|
||||||
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
|
import org.joinmastodon.android.ui.displayitems.StatusDisplayItem;
|
||||||
|
import org.joinmastodon.android.ui.utils.UiUtils;
|
||||||
import org.parceler.Parcels;
|
import org.parceler.Parcels;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -28,6 +28,12 @@ import me.grishka.appkit.api.SimpleCallback;
|
|||||||
|
|
||||||
public class ScheduledStatusListFragment extends BaseStatusListFragment<ScheduledStatus> {
|
public class ScheduledStatusListFragment extends BaseStatusListFragment<ScheduledStatus> {
|
||||||
private String nextMaxID;
|
private String nextMaxID;
|
||||||
|
private ImageButton fab;
|
||||||
|
private static final int SCHEDULED_STATUS_LIST_OPENED = 161;
|
||||||
|
|
||||||
|
public ScheduledStatusListFragment() {
|
||||||
|
setListLayoutId(R.layout.recycler_fragment_with_fab);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState){
|
public void onCreate(Bundle savedInstanceState){
|
||||||
@@ -49,6 +55,18 @@ public class ScheduledStatusListFragment extends BaseStatusListFragment<Schedule
|
|||||||
loadData();
|
loadData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
|
super.onViewCreated(view, savedInstanceState);
|
||||||
|
fab=view.findViewById(R.id.fab);
|
||||||
|
Bundle args=new Bundle();
|
||||||
|
args.putString("account", accountID);
|
||||||
|
args.putSerializable("scheduledAt", CreateStatus.getDraftInstant());
|
||||||
|
fab.setOnClickListener(v -> Nav.go(getActivity(), ComposeFragment.class, args));
|
||||||
|
fab.setOnLongClickListener(v -> UiUtils.pickAccountForCompose(getActivity(), accountID, args));
|
||||||
|
if (getArguments().getBoolean("hide_fab", false)) fab.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected List<StatusDisplayItem> buildDisplayItems(ScheduledStatus s) {
|
protected List<StatusDisplayItem> buildDisplayItems(ScheduledStatus s) {
|
||||||
return StatusDisplayItem.buildItems(this, s.toStatus(), accountID, s, knownAccounts, false, false, null);
|
return StatusDisplayItem.buildItems(this, s.toStatus(), accountID, s, knownAccounts, false, false, null);
|
||||||
@@ -68,7 +86,17 @@ public class ScheduledStatusListFragment extends BaseStatusListFragment<Schedule
|
|||||||
args.putString("sourceText", status.text);
|
args.putString("sourceText", status.text);
|
||||||
args.putString("sourceSpoiler", status.spoilerText);
|
args.putString("sourceSpoiler", status.spoilerText);
|
||||||
args.putBoolean("redraftStatus", true);
|
args.putBoolean("redraftStatus", true);
|
||||||
Nav.go(getActivity(), ComposeFragment.class, args);
|
setResult(true, null);
|
||||||
|
|
||||||
|
// closing this scheduled status list if another status list is opened from compose fragment
|
||||||
|
Nav.goForResult(getActivity(), ComposeFragment.class, args, SCHEDULED_STATUS_LIST_OPENED, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFragmentResult(int reqCode, boolean success, Bundle result) {
|
||||||
|
if (reqCode == SCHEDULED_STATUS_LIST_OPENED && success && getActivity() != null) {
|
||||||
|
Nav.finish(this);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -108,10 +108,6 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
|||||||
items.add(new HeaderItem(R.string.settings_theme));
|
items.add(new HeaderItem(R.string.settings_theme));
|
||||||
items.add(themeItem=new ThemeItem());
|
items.add(themeItem=new ThemeItem());
|
||||||
items.add(new SwitchItem(R.string.theme_true_black, R.drawable.ic_fluent_dark_theme_24_regular, GlobalUserPreferences.trueBlackTheme, this::onTrueBlackThemeChanged));
|
items.add(new SwitchItem(R.string.theme_true_black, R.drawable.ic_fluent_dark_theme_24_regular, GlobalUserPreferences.trueBlackTheme, this::onTrueBlackThemeChanged));
|
||||||
items.add(new SwitchItem(R.string.sk_disable_marquee, R.drawable.ic_fluent_text_more_24_regular, GlobalUserPreferences.disableMarquee, i->{
|
|
||||||
GlobalUserPreferences.disableMarquee=i.checked;
|
|
||||||
GlobalUserPreferences.save();
|
|
||||||
}));
|
|
||||||
items.add(new ButtonItem(R.string.sk_settings_color_palette, R.drawable.ic_fluent_color_24_regular, b->{
|
items.add(new ButtonItem(R.string.sk_settings_color_palette, R.drawable.ic_fluent_color_24_regular, b->{
|
||||||
PopupMenu popupMenu=new PopupMenu(getActivity(), b, Gravity.CENTER_HORIZONTAL);
|
PopupMenu popupMenu=new PopupMenu(getActivity(), b, Gravity.CENTER_HORIZONTAL);
|
||||||
popupMenu.inflate(R.menu.color_palettes);
|
popupMenu.inflate(R.menu.color_palettes);
|
||||||
@@ -158,7 +154,15 @@ public class SettingsFragment extends MastodonToolbarFragment{
|
|||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
items.add(new SwitchItem(R.string.sk_settings_uniform_icon_for_notifications, R.drawable.ic_ntf_logo, GlobalUserPreferences.uniformNotificationIcon, i->{
|
items.add(new SwitchItem(R.string.sk_settings_uniform_icon_for_notifications, R.drawable.ic_ntf_logo, GlobalUserPreferences.uniformNotificationIcon, i->{
|
||||||
GlobalUserPreferences.uniformNotificationIcon =i.checked;
|
GlobalUserPreferences.uniformNotificationIcon=i.checked;
|
||||||
|
GlobalUserPreferences.save();
|
||||||
|
}));
|
||||||
|
items.add(new SwitchItem(R.string.sk_disable_marquee, R.drawable.ic_fluent_text_more_24_regular, GlobalUserPreferences.disableMarquee, i->{
|
||||||
|
GlobalUserPreferences.disableMarquee=i.checked;
|
||||||
|
GlobalUserPreferences.save();
|
||||||
|
}));
|
||||||
|
items.add(new SwitchItem(R.string.sk_settings_reduce_motion, R.drawable.ic_fluent_star_emphasis_24_regular, GlobalUserPreferences.reduceMotion, i->{
|
||||||
|
GlobalUserPreferences.reduceMotion=i.checked;
|
||||||
GlobalUserPreferences.save();
|
GlobalUserPreferences.save();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|||||||
@@ -984,11 +984,19 @@ public class UiUtils{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static boolean pickAccountForCompose(Activity activity, String accountID, String prefilledText){
|
public static boolean pickAccountForCompose(Activity activity, String accountID, String prefilledText){
|
||||||
|
Bundle args = new Bundle();
|
||||||
|
if (prefilledText != null) args.putString("prefilledText", prefilledText);
|
||||||
|
return pickAccountForCompose(activity, accountID, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean pickAccountForCompose(Activity activity, String accountID){
|
||||||
|
return pickAccountForCompose(activity, accountID, (String) null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean pickAccountForCompose(Activity activity, String accountID, Bundle args){
|
||||||
if (AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1) {
|
if (AccountSessionManager.getInstance().getLoggedInAccounts().size() > 1) {
|
||||||
UiUtils.pickAccount(activity, accountID, 0, 0, session -> {
|
UiUtils.pickAccount(activity, accountID, 0, 0, session -> {
|
||||||
Bundle args=new Bundle();
|
|
||||||
args.putString("account", session.getID());
|
args.putString("account", session.getID());
|
||||||
if (prefilledText != null) args.putString("prefilledText", prefilledText);
|
|
||||||
Nav.go(activity, ComposeFragment.class, args);
|
Nav.go(activity, ComposeFragment.class, args);
|
||||||
}, null);
|
}, null);
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
|
||||||
|
<path android:pathData="M10 2c4.418 0 8 3.582 8 8s-3.582 8-8 8-8-3.582-8-8 3.582-8 8-8zM9.5 5C9.224 5 9 5.224 9 5.5v5l0.008 0.09C9.05 10.823 9.255 11 9.5 11h3l0.09-0.008C12.823 10.95 13 10.745 13 10.5c0-0.276-0.224-0.5-0.5-0.5H10V5.5L9.992 5.41C9.95 5.177 9.745 5 9.5 5z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||||
|
</vector>
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--~ Copyright (c) 2022. ~ Microsoft Corporation. All rights reserved.-->
|
|
||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item android:drawable="@drawable/ic_fluent_clock_24_filled" android:state_activated="true"/>
|
|
||||||
<item android:drawable="@drawable/ic_fluent_clock_24_filled" android:state_checked="true"/>
|
|
||||||
<item android:drawable="@drawable/ic_fluent_clock_24_filled" android:state_selected="true"/>
|
|
||||||
<item android:drawable="@drawable/ic_fluent_clock_24_regular"/>
|
|
||||||
</selector>
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="20dp" android:height="20dp" android:viewportWidth="20" android:viewportHeight="20">
|
||||||
|
<path android:pathData="M15.613 8.32l-3.936-3.936-8.038 8.039-0.117 0.128c-0.185 0.22-0.322 0.48-0.398 0.76l-1.106 4.055-0.015 0.08c-0.038 0.34 0.282 0.628 0.63 0.534l4.054-1.106 0.165-0.053c0.271-0.1 0.518-0.257 0.723-0.462l8.038-8.039zm1.568-5.503c-1.087-1.087-2.849-1.087-3.936 0l-0.861 0.86 3.936 3.936 0.86-0.86 0.131-0.14c0.955-1.093 0.911-2.754-0.13-3.796zM11.648 3H2.5C2.224 3 2 3.224 2 3.5S2.224 4 2.5 4h8.148l1-1zm-3 3H2.5C2.224 6 2 6.223 2 6.5 2 6.776 2.224 7 2.5 7h5.148l1-1zm-3 3l-1 1H2.5C2.224 10 2 9.776 2 9.5 2 9.223 2.224 9 2.5 9h3.148z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||||
|
<path android:pathData="M13.94 5l5.061 5.06L9.063 20c-0.277 0.277-0.621 0.477-1 0.58l-5.115 1.395c-0.56 0.153-1.073-0.361-0.92-0.921l1.394-5.116c0.103-0.377 0.303-0.722 0.58-0.999L13.94 5zm-7.414 6l-1.5 1.5H2.75C2.337 12.5 2 12.165 2 11.75 2 11.336 2.337 11 2.75 11h3.775zm14.352-8.174l0.153 0.144 0.145 0.153c1.25 1.405 1.203 3.56-0.145 4.908L20.061 9 15 3.94l0.97-0.97c1.348-1.348 3.503-1.396 4.908-0.144zM10.526 7l-1.5 1.5H2.75C2.337 8.5 2 8.165 2 7.75 2 7.336 2.337 7 2.75 7h7.775zm4-4l-1.5 1.5H2.75C2.337 4.5 2 4.165 2 3.75 2 3.336 2.337 3 2.75 3h11.775z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||||
|
<path android:pathData="M20 9.502V8.75c0-1.243-1.007-2.25-2.25-2.25h-5.725l-2.38-1.98C9.24 4.184 8.73 4 8.204 4H4.25C3.008 4 2 5.007 2 6.25l-0.004 11.5c0 1.242 1.007 2.25 2.25 2.25H18.47c0.803 0 1.503-0.546 1.698-1.325l1.75-6.998c0.276-1.105-0.56-2.175-1.698-2.175H20zM4.25 5.5h3.956c0.175 0 0.344 0.061 0.48 0.173l2.588 2.154C11.41 7.939 11.58 8 11.755 8h5.996c0.415 0 0.75 0.336 0.75 0.75v0.752H6.424c-1.032 0-1.932 0.703-2.183 1.704l-0.744 2.978L3.5 6.25c0-0.414 0.336-0.75 0.75-0.75zm1.447 6.07c0.083-0.334 0.383-0.568 0.727-0.568H20.22c0.162 0 0.282 0.153 0.242 0.31l-1.75 6.999c-0.027 0.111-0.128 0.189-0.242 0.189H4.285c-0.163 0-0.282-0.153-0.243-0.31l1.655-6.62z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||||
|
</vector>
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||||
|
<path android:pathData="M13.209 3.102c-0.495-1.003-1.926-1.003-2.421 0L8.43 7.88 3.157 8.646c-1.107 0.16-1.55 1.522-0.748 2.303l3.815 3.719-0.9 5.25c-0.19 1.104 0.968 1.945 1.958 1.424l4.716-2.48 4.716 2.48c0.99 0.52 2.148-0.32 1.96-1.423l-0.902-5.251 3.816-3.72c0.8-0.78 0.359-2.141-0.748-2.302L15.567 7.88l-2.358-4.778zM9.74 8.614l2.258-4.576 2.259 4.576c0.196 0.399 0.577 0.675 1.016 0.739l5.05 0.734-3.654 3.562c-0.318 0.31-0.463 0.757-0.388 1.195l0.862 5.029-4.516-2.375c-0.394-0.207-0.864-0.207-1.257 0l-4.516 2.375 0.862-5.03c0.075-0.438-0.07-0.884-0.388-1.194l-3.654-3.562 5.05-0.734c0.44-0.064 0.82-0.34 1.016-0.739zM1.164 3.781C0.906 4.104 0.958 4.576 1.282 4.835l2.5 2c0.323 0.259 0.795 0.207 1.054-0.117 0.258-0.323 0.206-0.795-0.117-1.054l-2.5-2C1.895 3.405 1.423 3.458 1.164 3.78zm21.672 14.437c0.259-0.323 0.206-0.795-0.117-1.054l-2.5-2c-0.324-0.259-0.796-0.206-1.055 0.117-0.258 0.323-0.206 0.795 0.117 1.054l2.5 2c0.324 0.259 0.796 0.206 1.055-0.117zM1.282 17.164c-0.324 0.259-0.376 0.73-0.118 1.054 0.26 0.323 0.731 0.376 1.055 0.117l2.5-2c0.323-0.259 0.375-0.73 0.117-1.054-0.26-0.323-0.731-0.376-1.055-0.117l-2.5 2zM22.835 3.78c0.259 0.323 0.206 0.795-0.117 1.054l-2.5 2c-0.324 0.259-0.796 0.207-1.055-0.117-0.258-0.323-0.206-0.795 0.117-1.054l2.5-2c0.324-0.259 0.796-0.206 1.055 0.117z" android:fillColor="@color/fluent_default_icon_tint"/>
|
||||||
|
</vector>
|
||||||
61
mastodon/src/main/res/layout/compose_action.xml
Normal file
61
mastodon/src/main/res/layout/compose_action.xml
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:clipToPadding="false"
|
||||||
|
android:paddingHorizontal="16dp"
|
||||||
|
android:paddingTop="4dp"
|
||||||
|
android:paddingBottom="8dp">
|
||||||
|
|
||||||
|
<ProgressBar
|
||||||
|
android:id="@+id/send_progress"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/send_error"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="16dp"
|
||||||
|
android:layout_gravity="center_vertical"
|
||||||
|
android:src="@drawable/ic_fluent_error_circle_24_regular"
|
||||||
|
android:tint="@color/error_600"
|
||||||
|
android:scaleType="center"
|
||||||
|
android:visibility="gone" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/language_btn"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:drawableStart="@drawable/ic_fluent_local_language_16_regular"
|
||||||
|
android:drawablePadding="8dp"
|
||||||
|
android:drawableTint="?android:textColorSecondary"
|
||||||
|
android:textColor="?android:textColorSecondary"
|
||||||
|
android:background="@drawable/bg_text_button" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/drafts_btn"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="8dp"
|
||||||
|
android:paddingHorizontal="8dp"
|
||||||
|
android:drawableStart="@drawable/ic_fluent_clock_20_regular"
|
||||||
|
android:drawableTint="?android:textColorSecondary"
|
||||||
|
android:textColor="?android:textColorSecondary"
|
||||||
|
android:background="@drawable/bg_text_button"
|
||||||
|
android:contentDescription="@string/sk_schedule_or_draft"
|
||||||
|
android:tooltipText="@string/sk_schedule_or_draft" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/publish_btn"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/display_item_text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingTop="10dp"
|
android:paddingTop="10dp"
|
||||||
@@ -56,7 +57,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="8dp"
|
android:layout_marginTop="8dp"
|
||||||
android:gravity="center_vertical">
|
android:gravity="center_vertical"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/action_btn_wrap"
|
android:id="@+id/action_btn_wrap"
|
||||||
@@ -72,7 +74,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingHorizontal="8dp"
|
android:paddingHorizontal="8dp"
|
||||||
tools:text="@string/translate_post"/>
|
tools:text="@string/sk_translate_post"/>
|
||||||
<ProgressBar
|
<ProgressBar
|
||||||
android:id="@+id/translate_progress"
|
android:id="@+id/translate_progress"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
|
android:id="@+id/scroll_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
@@ -16,142 +17,205 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<EditText
|
|
||||||
android:id="@+id/content_warning"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:elevation="0dp"
|
|
||||||
android:hint="@string/content_warning"
|
|
||||||
android:inputType="textMultiLine|textCapSentences"
|
|
||||||
android:visibility="gone"
|
|
||||||
android:textColorHint="?android:textColorSecondary"
|
|
||||||
android:background="@drawable/bg_cw_edit"
|
|
||||||
android:padding="16dp"
|
|
||||||
android:minHeight="56dp"
|
|
||||||
android:textSize="16sp"
|
|
||||||
tools:visibility="visible"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/reply_text"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="-12dp"
|
|
||||||
android:paddingHorizontal="16dp"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingBottom="6dp"
|
|
||||||
android:textAppearance="@style/m3_title_small"
|
|
||||||
android:drawableStart="@drawable/ic_fluent_arrow_reply_20_filled"
|
|
||||||
tools:drawableEnd="@drawable/ic_fluent_earth_20_regular"
|
|
||||||
android:drawableTint="?android:textColorSecondary"
|
|
||||||
android:drawablePadding="6dp"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:background="?android:selectableItemBackground"/>
|
|
||||||
|
|
||||||
<RelativeLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingTop="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:paddingLeft="16dp">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/avatar"
|
|
||||||
android:layout_width="46dp"
|
|
||||||
android:layout_height="46dp"
|
|
||||||
android:layout_alignParentStart="true"
|
|
||||||
android:layout_alignParentTop="true"
|
|
||||||
android:layout_marginEnd="12dp" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/name"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_toEndOf="@id/avatar"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textAppearance="@style/m3_title_medium"
|
|
||||||
tools:text="Eugen" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/username"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="20dp"
|
|
||||||
android:layout_below="@id/name"
|
|
||||||
android:layout_toEndOf="@id/avatar"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:textAppearance="@style/m3_title_small"
|
|
||||||
tools:text="\@Gargron" />
|
|
||||||
|
|
||||||
</RelativeLayout>
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/toot_text_wrap"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="10dp">
|
|
||||||
|
|
||||||
<org.joinmastodon.android.ui.views.ComposeEditText
|
|
||||||
android:id="@+id/toot_text"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:paddingBottom="16dp"
|
|
||||||
android:textAppearance="@style/m3_body_large"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:gravity="top"
|
|
||||||
android:background="@null"
|
|
||||||
android:hint="@string/compose_hint"
|
|
||||||
android:elevation="0dp"
|
|
||||||
android:inputType="textMultiLine|textCapSentences"/>
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/poll_wrap"
|
android:id="@+id/original_post"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
tools:visibility="visible">
|
android:background="?android:selectableItemBackground">
|
||||||
<org.joinmastodon.android.ui.views.ReorderableLinearLayout
|
<include layout="@layout/display_item_header" />
|
||||||
android:id="@+id/poll_options"
|
<include layout="@layout/display_item_text" />
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="1dp"
|
||||||
|
android:background="?attr/colorPollVoted"/>
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/reply_wrap"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<EditText
|
||||||
|
android:id="@+id/content_warning"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"/>
|
android:elevation="0dp"
|
||||||
<LinearLayout
|
android:hint="@string/content_warning"
|
||||||
android:id="@+id/add_poll_option"
|
android:inputType="textMultiLine|textCapSentences"
|
||||||
android:layout_width="match_parent"
|
android:visibility="gone"
|
||||||
android:layout_height="56dp"
|
android:textColorHint="?android:textColorSecondary"
|
||||||
android:layout_marginStart="16dp"
|
android:background="@drawable/bg_cw_edit"
|
||||||
android:layout_marginEnd="56dp"
|
android:padding="16dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:minHeight="56dp"
|
||||||
android:background="@drawable/bg_poll_option_clickable"
|
android:textSize="16sp"
|
||||||
android:outlineProvider="background"
|
tools:visibility="visible"/>
|
||||||
android:elevation="2dp">
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/add_poll_option_icon"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_margin="16dp"
|
|
||||||
android:tint="?colorDarkIcon"
|
|
||||||
android:src="@drawable/ic_fluent_add_circle_24_regular"/>
|
|
||||||
</LinearLayout>
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/poll_duration"
|
android:id="@+id/reply_text"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginLeft="16dp"
|
android:layout_marginBottom="-12dp"
|
||||||
android:layout_marginRight="16dp"
|
android:paddingHorizontal="16dp"
|
||||||
android:layout_marginBottom="8dp"
|
android:paddingTop="16dp"
|
||||||
android:textAppearance="@style/m3_label_large"
|
android:paddingBottom="6dp"
|
||||||
android:textColor="?android:textColorPrimary"
|
android:textAppearance="@style/m3_title_small"
|
||||||
tools:text="Duration: 7 days"/>
|
android:drawableStart="@drawable/ic_fluent_arrow_reply_20_filled"
|
||||||
|
tools:drawableEnd="@drawable/ic_fluent_earth_20_regular"
|
||||||
|
android:drawableTint="?android:textColorSecondary"
|
||||||
|
android:drawablePadding="6dp"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:background="?android:selectableItemBackground"/>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="16dp"
|
||||||
|
android:paddingRight="16dp"
|
||||||
|
android:paddingLeft="16dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/self_avatar"
|
||||||
|
android:layout_width="46dp"
|
||||||
|
android:layout_height="46dp"
|
||||||
|
android:layout_alignParentStart="true"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_marginEnd="12dp" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/self_name"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_toEndOf="@id/self_avatar"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textAppearance="@style/m3_title_medium"
|
||||||
|
tools:text="Eugen" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/self_username"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:layout_below="@id/self_name"
|
||||||
|
android:layout_toEndOf="@id/self_avatar"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textAppearance="@style/m3_title_small"
|
||||||
|
tools:text="\@Gargron" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<FrameLayout
|
||||||
|
android:id="@+id/toot_text_wrap"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="10dp">
|
||||||
|
|
||||||
|
<org.joinmastodon.android.ui.views.ComposeEditText
|
||||||
|
android:id="@+id/toot_text"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingLeft="16dp"
|
||||||
|
android:paddingRight="16dp"
|
||||||
|
android:paddingBottom="16dp"
|
||||||
|
android:textAppearance="@style/m3_body_large"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:gravity="top"
|
||||||
|
android:background="@null"
|
||||||
|
android:hint="@string/compose_hint"
|
||||||
|
android:elevation="0dp"
|
||||||
|
android:inputType="textMultiLine|textCapSentences"/>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/poll_allow_multiple"
|
android:id="@+id/poll_wrap"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:visibility="gone"
|
||||||
|
tools:visibility="visible">
|
||||||
|
<org.joinmastodon.android.ui.views.ReorderableLinearLayout
|
||||||
|
android:id="@+id/poll_options"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:orientation="vertical"/>
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/add_poll_option"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="56dp"
|
||||||
|
android:layout_marginStart="16dp"
|
||||||
|
android:layout_marginEnd="56dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:background="@drawable/bg_poll_option_clickable"
|
||||||
|
android:outlineProvider="background"
|
||||||
|
android:elevation="2dp">
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/add_poll_option_icon"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_margin="16dp"
|
||||||
|
android:tint="?colorDarkIcon"
|
||||||
|
android:src="@drawable/ic_fluent_add_circle_24_regular"/>
|
||||||
|
</LinearLayout>
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/poll_duration"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginLeft="16dp"
|
||||||
|
android:layout_marginRight="16dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:textAppearance="@style/m3_label_large"
|
||||||
|
android:textColor="?android:textColorPrimary"
|
||||||
|
tools:text="Duration: 7 days"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/poll_allow_multiple"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginBottom="16dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:gravity="center_vertical"
|
||||||
|
android:layoutDirection="locale"
|
||||||
|
android:paddingLeft="16dp"
|
||||||
|
android:paddingRight="16dp"
|
||||||
|
android:paddingTop="12dp"
|
||||||
|
android:paddingBottom="12dp"
|
||||||
|
android:background="?android:selectableItemBackground">
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/poll_allow_multiple_checkbox"
|
||||||
|
android:clickable="false"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:duplicateParentState="true"
|
||||||
|
android:importantForAccessibility="no"/>
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_weight="1"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="@string/sk_poll_allow_multiple" />
|
||||||
|
</LinearLayout>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<org.joinmastodon.android.ui.views.ComposeMediaLayout
|
||||||
|
android:id="@+id/attachments"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:visibility="gone"/>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/sensitive_item"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@@ -163,15 +227,16 @@
|
|||||||
android:paddingRight="16dp"
|
android:paddingRight="16dp"
|
||||||
android:paddingTop="12dp"
|
android:paddingTop="12dp"
|
||||||
android:paddingBottom="12dp"
|
android:paddingBottom="12dp"
|
||||||
android:background="?android:selectableItemBackground">
|
android:background="?android:selectableItemBackground"
|
||||||
|
android:visibility="gone">
|
||||||
|
|
||||||
<CheckBox
|
<ImageView
|
||||||
android:id="@+id/poll_allow_multiple_checkbox"
|
android:id="@+id/sensitive_icon"
|
||||||
android:clickable="false"
|
android:layout_width="24dp"
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_marginEnd="24dp"
|
android:layout_marginEnd="32dp"
|
||||||
android:duplicateParentState="true"
|
android:src="@drawable/ic_fluent_flag_24_selector"
|
||||||
|
android:tint="?android:textColorPrimary"
|
||||||
android:importantForAccessibility="no"/>
|
android:importantForAccessibility="no"/>
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
@@ -180,50 +245,9 @@
|
|||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:text="@string/sk_poll_allow_multiple" />
|
android:text="@string/sk_mark_media_as_sensitive" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<org.joinmastodon.android.ui.views.ComposeMediaLayout
|
|
||||||
android:id="@+id/attachments"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="center_horizontal"
|
|
||||||
android:visibility="gone"/>
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:id="@+id/sensitive_item"
|
|
||||||
android:orientation="horizontal"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginBottom="16dp"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:gravity="center_vertical"
|
|
||||||
android:layoutDirection="locale"
|
|
||||||
android:paddingLeft="16dp"
|
|
||||||
android:paddingRight="16dp"
|
|
||||||
android:paddingTop="12dp"
|
|
||||||
android:paddingBottom="12dp"
|
|
||||||
android:background="?android:selectableItemBackground"
|
|
||||||
android:visibility="gone">
|
|
||||||
|
|
||||||
<ImageView
|
|
||||||
android:id="@+id/sensitive_icon"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_marginEnd="32dp"
|
|
||||||
android:src="@drawable/ic_fluent_flag_24_selector"
|
|
||||||
android:tint="?android:textColorPrimary"
|
|
||||||
android:importantForAccessibility="no"/>
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:textSize="16sp"
|
|
||||||
android:singleLine="true"
|
|
||||||
android:text="@string/sk_mark_media_as_sensitive" />
|
|
||||||
</LinearLayout>
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
|
|
||||||
@@ -235,7 +259,7 @@
|
|||||||
android:elevation="2dp"
|
android:elevation="2dp"
|
||||||
android:outlineProvider="bounds"
|
android:outlineProvider="bounds"
|
||||||
android:paddingLeft="16dp"
|
android:paddingLeft="16dp"
|
||||||
android:paddingRight="16dp"
|
android:paddingRight="12dp"
|
||||||
android:layoutDirection="locale">
|
android:layoutDirection="locale">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/schedule_draft_view"
|
android:id="@+id/schedule_draft_view"
|
||||||
@@ -247,10 +271,18 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/schedule_draft_text"
|
android:id="@+id/schedule_draft_text"
|
||||||
android:layout_width="0dp"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_weight="1"
|
android:drawableStart="@drawable/ic_fluent_drafts_20_regular"
|
||||||
|
android:drawableTint="?android:textColorSecondary"
|
||||||
|
android:drawablePadding="16dp"
|
||||||
android:text="@string/sk_compose_draft" />
|
android:text="@string/sk_compose_draft" />
|
||||||
|
|
||||||
|
<Space
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_weight="1" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/scheduled_time_btn"
|
android:id="@+id/scheduled_time_btn"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
@@ -259,7 +291,7 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:padding="8dp"
|
android:padding="8dp"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"
|
||||||
android:minHeight="48dp"
|
android:minHeight="40dp"
|
||||||
android:textColor="?android:textColorSecondary"
|
android:textColor="?android:textColorSecondary"
|
||||||
android:background="@drawable/bg_text_button"
|
android:background="@drawable/bg_text_button"
|
||||||
android:fontFamily="sans-serif"
|
android:fontFamily="sans-serif"
|
||||||
@@ -272,9 +304,9 @@
|
|||||||
android:layout_width="24dp"
|
android:layout_width="24dp"
|
||||||
android:layout_height="24dp"
|
android:layout_height="24dp"
|
||||||
android:layout_marginStart="8dp"
|
android:layout_marginStart="8dp"
|
||||||
android:layout_marginEnd="-4dp"
|
|
||||||
android:src="@drawable/ic_fluent_dismiss_20_filled"
|
android:src="@drawable/ic_fluent_dismiss_20_filled"
|
||||||
android:background="?android:selectableItemBackgroundBorderless"
|
android:background="?android:selectableItemBackgroundBorderless"
|
||||||
|
android:contentDescription="@string/sk_compose_no_schedule"
|
||||||
android:padding="4dp"/>
|
android:padding="4dp"/>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
@@ -349,19 +381,6 @@
|
|||||||
android:tooltipText="@string/post_visibility"
|
android:tooltipText="@string/post_visibility"
|
||||||
android:src="@drawable/ic_fluent_earth_24_regular"/>
|
android:src="@drawable/ic_fluent_earth_24_regular"/>
|
||||||
|
|
||||||
<ImageButton
|
|
||||||
android:id="@+id/btn_schedule"
|
|
||||||
android:layout_width="24dp"
|
|
||||||
android:layout_height="24dp"
|
|
||||||
android:layout_marginEnd="24dp"
|
|
||||||
android:background="?android:attr/selectableItemBackgroundBorderless"
|
|
||||||
android:padding="0px"
|
|
||||||
android:tint="@color/compose_button"
|
|
||||||
android:tintMode="src_in"
|
|
||||||
android:contentDescription="@string/sk_draft_or_schedule"
|
|
||||||
android:tooltipText="@string/sk_draft_or_schedule"
|
|
||||||
android:src="@drawable/ic_fluent_clock_24_selector"/>
|
|
||||||
|
|
||||||
<Space
|
<Space
|
||||||
android:layout_width="0px"
|
android:layout_width="0px"
|
||||||
android:layout_height="1px"
|
android:layout_height="1px"
|
||||||
@@ -374,7 +393,6 @@
|
|||||||
android:textAppearance="@style/m3_body_large"
|
android:textAppearance="@style/m3_body_large"
|
||||||
android:textColor="?android:textColorSecondary"
|
android:textColor="?android:textColorSecondary"
|
||||||
tools:text="500"/>
|
tools:text="500"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|||||||
8
mastodon/src/main/res/menu/compose_more.xml
Normal file
8
mastodon/src/main/res/menu/compose_more.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:id="@+id/schedule" android:title="@string/sk_schedule_post" android:icon="@drawable/ic_fluent_clock_24_regular" />
|
||||||
|
<item android:id="@+id/unschedule" android:title="@string/sk_schedule_post" android:icon="@drawable/ic_fluent_clock_24_filled" android:contentDescription="@string/sk_compose_no_schedule" />
|
||||||
|
<item android:id="@+id/draft" android:title="@string/sk_mark_as_draft" android:icon="@drawable/ic_fluent_drafts_24_regular" />
|
||||||
|
<item android:id="@+id/undraft" android:title="@string/sk_mark_as_draft" android:icon="@drawable/ic_fluent_drafts_24_filled" android:contentDescription="@string/sk_compose_no_draft" />
|
||||||
|
<item android:id="@+id/drafts" android:title="@string/sk_unsent_posts" android:icon="@drawable/ic_fluent_folder_open_24_regular" />
|
||||||
|
</menu>
|
||||||
@@ -3,6 +3,6 @@
|
|||||||
<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/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/bookmarks" android:title="@string/bookmarks" android:icon="@drawable/ic_fluent_bookmark_multiple_24_regular" android:showAsAction="always"/>
|
<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"/>
|
<item android:id="@+id/favorites" android:title="@string/your_favorites" android:icon="@drawable/ic_fluent_star_24_regular"/>
|
||||||
<item android:id="@+id/scheduled" android:title="@string/sk_unsent_posts" android:icon="@drawable/ic_fluent_drafts_24_regular"/>
|
<item android:id="@+id/scheduled" android:title="@string/sk_unsent_posts" android:icon="@drawable/ic_fluent_folder_open_24_regular"/>
|
||||||
<item android:id="@+id/share" android:title="@string/share_user" android:icon="@drawable/ic_fluent_share_24_regular"/>
|
<item android:id="@+id/share" android:title="@string/share_user" android:icon="@drawable/ic_fluent_share_24_regular"/>
|
||||||
</menu>
|
</menu>
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<item android:id="@+id/schedule" android:title="@string/sk_schedule" android:icon="@drawable/ic_fluent_clock_24_regular" />
|
|
||||||
<item android:id="@+id/draft" android:title="@string/sk_draft" android:icon="@drawable/ic_fluent_drafts_24_regular" />
|
|
||||||
</menu>
|
|
||||||
@@ -58,13 +58,13 @@
|
|||||||
<string name="sk_clear_recent_languages">Zuletzt verwendete Sprachen leeren</string>
|
<string name="sk_clear_recent_languages">Zuletzt verwendete Sprachen leeren</string>
|
||||||
<string name="sk_welcome_title">Willkommen!</string>
|
<string name="sk_welcome_title">Willkommen!</string>
|
||||||
<string name="sk_example_domain">beispiel.social</string>
|
<string name="sk_example_domain">beispiel.social</string>
|
||||||
<string name="sk_welcome_text">Der Hai sagt Hi! Um anzufangen, bitte gib den Domain-Namen deiner Heim-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_color_palette_material3">System</string>
|
<string name="sk_color_palette_material3">System</string>
|
||||||
<string name="sk_color_palette_red">Rot</string>
|
<string name="sk_color_palette_red">Rot</string>
|
||||||
<string name="sk_settings_profile">Profil einrichten</string>
|
<string name="sk_settings_profile">Profil einrichten</string>
|
||||||
<string name="sk_settings_posting">Einstellungen für Beiträge</string>
|
<string name="sk_settings_posting">Einstellungen für Beiträge</string>
|
||||||
<string name="sk_settings_filters">Filter konfigurieren</string>
|
<string name="sk_settings_filters">Filter konfigurieren</string>
|
||||||
<string name="sk_settings_auth">Sicherheits-Einstellungen</string>
|
<string name="sk_settings_auth">Sicherheits-Einstellungen</string>
|
||||||
<string name="sk_settings_rules">Regelwerk</string>
|
<string name="sk_settings_rules">Regelwerk</string>
|
||||||
<string name="sk_settings_about">Über die App</string>
|
<string name="sk_settings_about">Über die App</string>
|
||||||
<string name="sk_settings_donate">Spenden</string>
|
<string name="sk_settings_donate">Spenden</string>
|
||||||
@@ -73,11 +73,11 @@
|
|||||||
<string name="sk_delete_notification_confirm">Benachrichtigung wirklich löschen\?</string>
|
<string name="sk_delete_notification_confirm">Benachrichtigung wirklich löschen\?</string>
|
||||||
<string name="sk_clear_all_notifications_confirm_action">Alle löschen</string>
|
<string name="sk_clear_all_notifications_confirm_action">Alle löschen</string>
|
||||||
<string name="sk_enable_delete_notifications">Löschen von Benachrichtigungen aktivieren</string>
|
<string name="sk_enable_delete_notifications">Löschen von Benachrichtigungen aktivieren</string>
|
||||||
<string name="sk_settings_publish_button_text">Veröffentlichen-Button-Text</string>
|
<string name="sk_settings_publish_button_text">Veröffentlichen-Button-Text</string>
|
||||||
<string name="sk_settings_translate_only_opened">Übersetzen-Button in der Timeline ausblenden</string>
|
<string name="sk_settings_translate_only_opened">Nur geöffnete Beiträge übersetzen</string>
|
||||||
<string name="sk_delete_notification">Benachrichtigung löschen</string>
|
<string name="sk_delete_notification">Benachrichtigung löschen</string>
|
||||||
<string name="sk_clear_all_notifications">Alle Benachrichtigungen löschen</string>
|
<string name="sk_clear_all_notifications">Alle Benachrichtigungen löschen</string>
|
||||||
<string name="sk_settings_publish_button_text_title">Veröffentlichen-Button-Text anpassen</string>
|
<string name="sk_settings_publish_button_text_title">Veröffentlichen-Button-Text anpassen</string>
|
||||||
<string name="sk_clear_all_notifications_confirm">Wirklich alle Benachrichtigungen löschen\?</string>
|
<string name="sk_clear_all_notifications_confirm">Wirklich alle Benachrichtigungen löschen\?</string>
|
||||||
<string name="sk_settings_translation_availability_note_available">%s unterstützt Übersetzung!</string>
|
<string name="sk_settings_translation_availability_note_available">%s unterstützt Übersetzung!</string>
|
||||||
<string name="sk_settings_translation_availability_note_unavailable">%s scheint keine Übersetzung zu unterstützen.</string>
|
<string name="sk_settings_translation_availability_note_unavailable">%s scheint keine Übersetzung zu unterstützen.</string>
|
||||||
@@ -90,4 +90,34 @@
|
|||||||
<string name="sk_open_with_account">Mit 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_resource_not_found">Ressource nicht gefunden</string>
|
||||||
<string name="sk_loading_resource_on_instance_title">Suche auf %s</string>
|
<string name="sk_loading_resource_on_instance_title">Suche auf %s</string>
|
||||||
|
<string name="sk_bookmark_as">Lesezeichen in anderem Konto</string>
|
||||||
|
<string name="sk_bookmarked_as">Lesezeichen gesetzt als %s</string>
|
||||||
|
<string name="sk_already_bookmarked">Bereits in den Lesezeichen</string>
|
||||||
|
<string name="sk_favorite_as">Favorit von anderem Konto</string>
|
||||||
|
<string name="sk_favorited_as">Favorisiert als %s</string>
|
||||||
|
<string name="sk_already_favorited">Bereits favorisiert</string>
|
||||||
|
<string name="sk_reblog_as">Von einem anderen Konto boosten</string>
|
||||||
|
<string name="sk_reblogged_as">Geboostet als %s</string>
|
||||||
|
<string name="sk_already_reblogged">Bereits geboostet</string>
|
||||||
|
<string name="sk_reply_as">Antworten mit anderem Konto</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Einheitliches Icon für alle Benachrichtigungen</string>
|
||||||
|
<string name="sk_forward_report_to">Weiterleiten zu %s</string>
|
||||||
|
<string name="sk_unsent_posts">Nicht gesendete Beiträge</string>
|
||||||
|
<string name="sk_draft">Entwurf</string>
|
||||||
|
<string name="sk_schedule">Planen</string>
|
||||||
|
<string name="sk_confirm_delete_draft_title">Entwurf löschen</string>
|
||||||
|
<string name="sk_confirm_delete_draft">Möchtest du diesen entworfenen Beitrag wirklich löschen\?</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post_title">Geplanten Beitrag löschen</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post">Möchtest du diesen geplanten Beitrag wirklich löschen\?</string>
|
||||||
|
<string name="sk_draft_or_schedule">Entwurf oder Planen</string>
|
||||||
|
<string name="sk_compose_draft">Beitrag wird als Entwurf gespeichert.</string>
|
||||||
|
<string name="sk_compose_scheduled">Geplant für</string>
|
||||||
|
<string name="sk_draft_saved">Entwurf gespeichert</string>
|
||||||
|
<string name="sk_post_scheduled">Beitrag geplant</string>
|
||||||
|
<string name="sk_scheduled_too_soon_title">Geplante Zeit ist zu früh</string>
|
||||||
|
<string name="sk_scheduled_too_soon">Der Beitrag muss mindestens 10 Minuten in der Zukunft eingeplant werden.</string>
|
||||||
|
<string name="sk_confirm_save_changes">Änderungen speichern\?</string>
|
||||||
|
<string name="sk_schedule_post">Beitrag planen</string>
|
||||||
|
<string name="sk_confirm_save_draft">Entwurf speichern\?</string>
|
||||||
|
<string name="sk_mark_as_draft">Als Entwurf markieren</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -90,4 +90,34 @@
|
|||||||
<string name="sk_open_with_account">Abrir con otra cuenta</string>
|
<string name="sk_open_with_account">Abrir con otra cuenta</string>
|
||||||
<string name="sk_resource_not_found">El recurso no se pudo encontrar</string>
|
<string name="sk_resource_not_found">El recurso no se pudo encontrar</string>
|
||||||
<string name="sk_loading_resource_on_instance_title">Buscándolo en %s</string>
|
<string name="sk_loading_resource_on_instance_title">Buscándolo en %s</string>
|
||||||
|
<string name="sk_bookmarked_as">Añadido a favoritos como %s</string>
|
||||||
|
<string name="sk_already_bookmarked">Ya marcado</string>
|
||||||
|
<string name="sk_favorited_as">Favorito como %s</string>
|
||||||
|
<string name="sk_already_favorited">Ya es un favorito</string>
|
||||||
|
<string name="sk_reblog_as">Compartir desde otra cuenta</string>
|
||||||
|
<string name="sk_reblogged_as">Compartido como %s</string>
|
||||||
|
<string name="sk_already_reblogged">Ya se volvió a publicar</string>
|
||||||
|
<string name="sk_reply_as">Responder con otra cuenta</string>
|
||||||
|
<string name="sk_bookmark_as">Marcador de otra cuenta</string>
|
||||||
|
<string name="sk_favorite_as">Favoritos de otra cuenta</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Mismo icono para todas las notificaciones</string>
|
||||||
|
<string name="sk_forward_report_to">Reenviar a %s</string>
|
||||||
|
<string name="sk_unsent_posts">Mensajes no enviados</string>
|
||||||
|
<string name="sk_draft">Borrador</string>
|
||||||
|
<string name="sk_schedule">Programar</string>
|
||||||
|
<string name="sk_confirm_delete_draft_title">Borrar el borrador</string>
|
||||||
|
<string name="sk_confirm_delete_draft">¿Seguro que quieres borrar este borrador\?</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post_title">Borrar la entrada programada</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post">¿Está seguro de que desea eliminar esta publicación programada\?</string>
|
||||||
|
<string name="sk_draft_or_schedule">A borrador o programar el envio</string>
|
||||||
|
<string name="sk_compose_draft">El mensaje se guardará como borrador.</string>
|
||||||
|
<string name="sk_compose_scheduled">Programado para</string>
|
||||||
|
<string name="sk_draft_saved">Borrador guardado</string>
|
||||||
|
<string name="sk_post_scheduled">Publicación programada</string>
|
||||||
|
<string name="sk_scheduled_too_soon_title">La hora programada es demasiado pronto</string>
|
||||||
|
<string name="sk_scheduled_too_soon">El mensaje debe programarse con al menos 10 minutos de antelación.</string>
|
||||||
|
<string name="sk_confirm_save_draft">¿Guardar el borrador\?</string>
|
||||||
|
<string name="sk_confirm_save_changes">¿Guardar los cambios\?</string>
|
||||||
|
<string name="sk_mark_as_draft">Marcar como borrador</string>
|
||||||
|
<string name="sk_schedule_post">Programar la publicación</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,3 +1,104 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<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>
|
||||||
|
<string name="sk_confirm_pin_post_title">Argitalpena profilean finkatu</string>
|
||||||
|
<string name="sk_confirm_pin_post">Ziur al zaude argitalpen hau zure profilean finkatu nahi duzula\?</string>
|
||||||
|
<string name="sk_pinning">Argitalpena finkatzen…</string>
|
||||||
|
<string name="sk_unpin_post">Finkapena kendu profiletik</string>
|
||||||
|
<string name="sk_confirm_unpin_post">Ziur al zaude argitalpena profiletik kendu nahi duzula\?</string>
|
||||||
|
<string name="sk_unpinning">Argitalpen finkatua kentzen…</string>
|
||||||
|
<string name="sk_image_description">Irudiaren deskribapena</string>
|
||||||
|
<string name="sk_visibility_unlisted">Zerrendatu gabea</string>
|
||||||
|
<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">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">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>
|
||||||
|
<string name="sk_follow_requests">Jarraitzeko eskaerak</string>
|
||||||
|
<string name="sk_poll_allow_multiple">Onartu aukera anitzak</string>
|
||||||
|
<string name="sk_clear_recent_languages">Ezabatu berriki erabili diren hizkuntzak</string>
|
||||||
|
<string name="sk_welcome_title">Ongi etorri!</string>
|
||||||
|
<string name="sk_example_domain">adibidea.eus</string>
|
||||||
|
<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 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>
|
||||||
|
<string name="sk_bookmark_as">Beste kontu bateko laster-marka</string>
|
||||||
|
<string name="sk_bookmarked_as">%s bezala laster-markara eramana</string>
|
||||||
|
<string name="sk_already_bookmarked">Dagoeneko laster-marka da</string>
|
||||||
|
<string name="sk_favorite_as">Beste kontu bateko gogokoa</string>
|
||||||
|
<string name="sk_favorited_as">%s bezela dago gogokoetan</string>
|
||||||
|
<string name="sk_reblog_as">Beste kontu batetik bultzatua</string>
|
||||||
|
<string name="sk_reblogged_as">%s bezela bultzatua</string>
|
||||||
|
<string name="sk_already_reblogged">Dagoeneko bultzatua izan da</string>
|
||||||
|
<string name="sk_reply_as">Erantzun beste kontu batekin</string>
|
||||||
|
<string name="sk_translate_post">Itzuli</string>
|
||||||
|
<string name="sk_tabs_disable_swipe">Desgaitu fitxen arteko joan-etorria</string>
|
||||||
|
<string name="sk_settings_profile">Konfiguratu profila</string>
|
||||||
|
<string name="sk_settings_posting">Argitalpenen ezarpenak</string>
|
||||||
|
<string name="sk_settings_filters">Filtroak konfiguratu</string>
|
||||||
|
<string name="sk_settings_auth">Segurtasun ezarpenak</string>
|
||||||
|
<string name="sk_settings_rules">Arauak</string>
|
||||||
|
<string name="sk_settings_about">Aplikazioari buruz</string>
|
||||||
|
<string name="sk_settings_donate">Lagundu</string>
|
||||||
|
<string name="sk_settings_color_palette">Kolore paleta</string>
|
||||||
|
<string name="sk_color_palette_material3">Sistema</string>
|
||||||
|
<string name="sk_color_palette_pink">Arrosa</string>
|
||||||
|
<string name="sk_color_palette_purple">Morea</string>
|
||||||
|
<string name="sk_color_palette_green">Berdea</string>
|
||||||
|
<string name="sk_color_palette_blue">Urdina</string>
|
||||||
|
<string name="sk_color_palette_brown">Marroia</string>
|
||||||
|
<string name="sk_color_palette_red">Gorria</string>
|
||||||
|
<string name="sk_color_palette_yellow">Horia</string>
|
||||||
|
<string name="sk_delete_notification">Ezabatu jakinarazpena</string>
|
||||||
|
<string name="sk_delete_notification_confirm_action">Ezabatu jakinarazpena</string>
|
||||||
|
<string name="sk_delete_notification_confirm">Ziur al zaude jakinarazpen hau ezabatu nahi duzula\?</string>
|
||||||
|
<string name="sk_enable_delete_notifications">Gaitu jakinarazpenen ezabatzea</string>
|
||||||
|
<string name="sk_settings_publish_button_text">Argitaratze botoiaren testua</string>
|
||||||
|
<string name="sk_settings_publish_button_text_title">Pertsonalizatu argitaratze botoiaren testua</string>
|
||||||
|
<string name="sk_settings_translation_availability_note_available">%s-k itzulpena onartzen du!</string>
|
||||||
|
<string name="sk_settings_translation_availability_note_unavailable">%s ez da itzulpena onartzen duten hizkuntzen artean ageri.</string>
|
||||||
|
<string name="sk_clear_all_notifications">Ezabatu jakinarazpen guztiak</string>
|
||||||
|
<string name="sk_clear_all_notifications_confirm_action">Ezabatu dena</string>
|
||||||
|
<string name="sk_clear_all_notifications_confirm">Ziur al zaude jakinarazpen guztiak ezabatu nahi dituzula\?</string>
|
||||||
|
<string name="sk_loading_fediverse_resource_title">Fedibertsoan bilatzen</string>
|
||||||
|
<string name="sk_undo_reblog">Bultzada desegin</string>
|
||||||
|
<string name="sk_quote_post">Honen inguruan argitaratu</string>
|
||||||
|
<string name="sk_reblog_with_visibility">Bultzada ikusgarria</string>
|
||||||
|
<string name="sk_hashtags_you_follow">Jarraitzen dituzun Hashtag-ak</string>
|
||||||
|
<string name="sk_copy_link_to_post">Kopiatu link-a argitaratzeko</string>
|
||||||
|
<string name="sk_loading_resource_on_instance_title">%s-n bilatzen</string>
|
||||||
|
<string name="sk_open_with_account">Ireki beste kontu batekin</string>
|
||||||
|
<string name="sk_resource_not_found">Ezin da errekurtsoa bilatu</string>
|
||||||
|
<string name="sk_pinned_posts">Finkatua</string>
|
||||||
|
<string name="sk_confirm_delete_and_redraft">Ziur al zaude argitalpena ezabatu eta editatu nahi duzula\?</string>
|
||||||
|
<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">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>
|
||||||
|
<string name="sk_notification_type_status">Argitalpenak</string>
|
||||||
|
<string name="sk_notify_posts">Argitalpenen jakinarazpenak</string>
|
||||||
|
<string name="sk_translate_show_original">Erakutsi jatorrizkoa</string>
|
||||||
|
<string name="sk_available_languages">Eskuragarri dauden hizkuntzak</string>
|
||||||
|
<string name="sk_confirm_clear_recent_languages">Ziur al zaude berriki erabilitako hizkuntzak ezabatu nahi dituzula\?</string>
|
||||||
|
<string name="sk_welcome_text">Marrazoak ongi etorria ematen dizu! Hasteko, sartu jjarraian jatorrizko instantziaren domeinu-izena.</string>
|
||||||
|
<string name="sk_settings_translate_only_opened">Irekitako argitalpenak soilik itzuli</string>
|
||||||
|
<string name="sk_already_favorited">Dagoeneko gogokoen artean dago</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Ikono berdina jakinarazpen guztietarako</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -91,4 +91,34 @@
|
|||||||
<string name="sk_loading_resource_on_instance_title">Rechercher sur %s</string>
|
<string name="sk_loading_resource_on_instance_title">Rechercher sur %s</string>
|
||||||
<string name="sk_open_with_account">Ouvrir avec un autre compte</string>
|
<string name="sk_open_with_account">Ouvrir avec un autre compte</string>
|
||||||
<string name="sk_resource_not_found">La ressource est introuvable</string>
|
<string name="sk_resource_not_found">La ressource est introuvable</string>
|
||||||
|
<string name="sk_favorite_as">Favoris d\'un autre compte</string>
|
||||||
|
<string name="sk_already_bookmarked">Déjà mis en signet</string>
|
||||||
|
<string name="sk_already_favorited">Déjà mis en favori</string>
|
||||||
|
<string name="sk_reblogged_as">Reposté en tant que %s</string>
|
||||||
|
<string name="sk_already_reblogged">Déjà reposté</string>
|
||||||
|
<string name="sk_bookmarked_as">Ajouté aux signets en tant que %s</string>
|
||||||
|
<string name="sk_favorited_as">Ajouté aux favoris en tant que %s</string>
|
||||||
|
<string name="sk_reply_as">Répondre avec un autre compte</string>
|
||||||
|
<string name="sk_bookmark_as">Mettre en signet sur un autre compte</string>
|
||||||
|
<string name="sk_reblog_as">Reposter depuis un autre compte</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Icône uniforme pour toutes les notifications</string>
|
||||||
|
<string name="sk_forward_report_to">Transférer à %s</string>
|
||||||
|
<string name="sk_unsent_posts">Messages non envoyés</string>
|
||||||
|
<string name="sk_draft">Brouillon</string>
|
||||||
|
<string name="sk_confirm_delete_draft_title">Supprimer le brouillon</string>
|
||||||
|
<string name="sk_confirm_delete_draft">Êtes-vous sûr de vouloir supprimer ce message brouillon \?</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post">Voulez-vous vraiment supprimer ce message planifié \?</string>
|
||||||
|
<string name="sk_schedule">Planifier</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post_title">Supprimer le message planifié</string>
|
||||||
|
<string name="sk_draft_or_schedule">Rédiger ou planifier</string>
|
||||||
|
<string name="sk_compose_draft">Le message sera enregistré en tant que brouillon.</string>
|
||||||
|
<string name="sk_compose_scheduled">Planifié pour</string>
|
||||||
|
<string name="sk_draft_saved">Brouillon enregistré</string>
|
||||||
|
<string name="sk_post_scheduled">Message planifié</string>
|
||||||
|
<string name="sk_scheduled_too_soon_title">L\'heure prévue est trop proche</string>
|
||||||
|
<string name="sk_scheduled_too_soon">Le message doit être planifiée au moins 10 minutes à l\'avance.</string>
|
||||||
|
<string name="sk_confirm_save_draft">Enregistrer le brouillon \?</string>
|
||||||
|
<string name="sk_mark_as_draft">Marquer comme brouillon</string>
|
||||||
|
<string name="sk_schedule_post">Planifier le message</string>
|
||||||
|
<string name="sk_confirm_save_changes">Sauvegarder les modifications \?</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -91,4 +91,36 @@
|
|||||||
<string name="sk_open_with_account">Buka dengan akun lain</string>
|
<string name="sk_open_with_account">Buka dengan akun lain</string>
|
||||||
<string name="sk_loading_resource_on_instance_title">Mencari di %s</string>
|
<string name="sk_loading_resource_on_instance_title">Mencari di %s</string>
|
||||||
<string name="sk_resource_not_found">Sumber daya tidak dapat ditemukan</string>
|
<string name="sk_resource_not_found">Sumber daya tidak dapat ditemukan</string>
|
||||||
|
<string name="sk_bookmarked_as">Dimarkahi sebagai %s</string>
|
||||||
|
<string name="sk_already_bookmarked">Sudah dimarkahi</string>
|
||||||
|
<string name="sk_favorited_as">Difavorit sebagai %s</string>
|
||||||
|
<string name="sk_already_favorited">Sudah difavorit</string>
|
||||||
|
<string name="sk_reblog_as">Bagikan dari akun lain</string>
|
||||||
|
<string name="sk_reblogged_as">Dibagikan sebagai %s</string>
|
||||||
|
<string name="sk_already_reblogged">Sudah dibagikan</string>
|
||||||
|
<string name="sk_reply_as">Balas dengan akun lain</string>
|
||||||
|
<string name="sk_bookmark_as">Markahi dalam akun lain</string>
|
||||||
|
<string name="sk_favorite_as">Favorit dari akun lain</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Ikon yang sama untuk semua notifikasi</string>
|
||||||
|
<string name="sk_unsent_posts">Kiriman yang belum dikirim</string>
|
||||||
|
<string name="sk_draft">Draf</string>
|
||||||
|
<string name="sk_confirm_delete_draft_title">Hapus draf</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post_title">Hapus kiriman yang dijadwalkan</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post">Apakah Anda yakin untuk menghapus kiriman yang dijadwalkan ini\?</string>
|
||||||
|
<string name="sk_draft_or_schedule">Draf atau jadwalkan</string>
|
||||||
|
<string name="sk_schedule">Jadwalkan</string>
|
||||||
|
<string name="sk_compose_draft">Kiriman akan disimpan sebagai draf.</string>
|
||||||
|
<string name="sk_compose_scheduled">Dijadwalkan untuk</string>
|
||||||
|
<string name="sk_post_scheduled">Kiriman dijadwalkan</string>
|
||||||
|
<string name="sk_scheduled_too_soon_title">Waktu jadwal terlalu dekat</string>
|
||||||
|
<string name="sk_save_draft">Simpan draf\?</string>
|
||||||
|
<string name="sk_save_changes">Simpan perubahan\?</string>
|
||||||
|
<string name="sk_forward_report_to">Teruskan ke %s</string>
|
||||||
|
<string name="sk_confirm_delete_draft">Apakah Anda yakin ingin menghapus draf kiriman ini\?</string>
|
||||||
|
<string name="sk_draft_saved">Draf disimpan</string>
|
||||||
|
<string name="sk_scheduled_too_soon">Kiriman setidaknya harus 10 menit di masa depan.</string>
|
||||||
|
<string name="sk_confirm_save_changes">Simpan perubahan\?</string>
|
||||||
|
<string name="sk_mark_as_draft">Tandai sebagai draf</string>
|
||||||
|
<string name="sk_schedule_post">Jadwalkan kiriman</string>
|
||||||
|
<string name="sk_confirm_save_draft">Simpan draf\?</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -81,5 +81,24 @@
|
|||||||
<string name="sk_clear_all_notifications_confirm_action">모두 삭제</string>
|
<string name="sk_clear_all_notifications_confirm_action">모두 삭제</string>
|
||||||
<string name="sk_tabs_disable_swipe">스와이프로 탭간 전환 비활성화</string>
|
<string name="sk_tabs_disable_swipe">스와이프로 탭간 전환 비활성화</string>
|
||||||
<string name="sk_clear_all_notifications">모든 알림 삭제</string>
|
<string name="sk_clear_all_notifications">모든 알림 삭제</string>
|
||||||
<string name="sk_loading_fediverse_resource_title">연합우주에서 찾아보는 중…</string>
|
<string name="sk_loading_fediverse_resource_title">연합우주에서 찾아보는 중</string>
|
||||||
|
<string name="sk_bookmark_as">다른 계정으로 보관</string>
|
||||||
|
<string name="sk_reblog_as">다른 계정으로 리블로그</string>
|
||||||
|
<string name="sk_already_reblogged">이미 리블로그했습니다</string>
|
||||||
|
<string name="sk_reply_as">다른 계정으로 답글 달기</string>
|
||||||
|
<string name="sk_favorite_as">다른 계정으로 좋아요 표시</string>
|
||||||
|
<string name="sk_favorited_as">%s 계정으로 좋아요 표시했습니다</string>
|
||||||
|
<string name="sk_already_favorited">이미 좋아요 표시했습니다</string>
|
||||||
|
<string name="sk_undo_reblog">리블로그 취소</string>
|
||||||
|
<string name="sk_reblog_with_visibility">리블로그 및 공개 범위 설정</string>
|
||||||
|
<string name="sk_bookmarked_as">%s 계정으로 보관했습니다</string>
|
||||||
|
<string name="sk_already_bookmarked">이미 보관했습니다</string>
|
||||||
|
<string name="sk_reblogged_as">%s 계정으로 리블로그했습니다</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">모든 알림에 같은 아이콘 사용</string>
|
||||||
|
<string name="sk_hashtags_you_follow">팔로우한 해시태그</string>
|
||||||
|
<string name="sk_copy_link_to_post">게시물 링크 복사</string>
|
||||||
|
<string name="sk_open_with_account">다른 계정으로 열기</string>
|
||||||
|
<string name="sk_resource_not_found">리소스를 찾을 수 없습니다</string>
|
||||||
|
<string name="sk_loading_resource_on_instance_title">%s에서 찾아보는 중</string>
|
||||||
|
<string name="sk_quote_post">언급하여 게시</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
<string name="sk_post_language">Idioma: %s</string>
|
<string name="sk_post_language">Idioma: %s</string>
|
||||||
<string name="sk_available_languages">Idiomas disponíveis</string>
|
<string name="sk_available_languages">Idiomas disponíveis</string>
|
||||||
<string name="sk_language_name">%s (%s)</string>
|
<string name="sk_language_name">%s (%s)</string>
|
||||||
<string name="sk_confirm_clear_recent_languages">Tem certeza de que deseja limpar os idiomas usados recentemente\?</string>
|
<string name="sk_confirm_clear_recent_languages">Você tem certeza que deseja limpar os idiomas usados recentemente\?</string>
|
||||||
<string name="sk_clear_recent_languages">Limpar idiomas usados recentemente</string>
|
<string name="sk_clear_recent_languages">Limpar idiomas usados recentemente</string>
|
||||||
<string name="sk_notify_posts">Notificações de posts</string>
|
<string name="sk_notify_posts">Notificações de posts</string>
|
||||||
<string name="sk_poll_allow_multiple">Permitir múltiplas escolhas</string>
|
<string name="sk_poll_allow_multiple">Permitir múltiplas escolhas</string>
|
||||||
@@ -61,30 +61,32 @@
|
|||||||
<string name="sk_welcome_title">Bem vindo!</string>
|
<string name="sk_welcome_title">Bem vindo!</string>
|
||||||
<string name="sk_color_palette_material3">Sistema</string>
|
<string name="sk_color_palette_material3">Sistema</string>
|
||||||
<string name="sk_color_palette_red">Vermelho</string>
|
<string name="sk_color_palette_red">Vermelho</string>
|
||||||
<string name="sk_settings_donate">Doe</string>
|
<string name="sk_settings_donate">Doar</string>
|
||||||
<string name="sk_settings_rules">Regras</string>
|
<string name="sk_settings_rules">Regras</string>
|
||||||
<string name="sk_tabs_disable_swipe">Desativar deslizamento entre as abas</string>
|
<string name="sk_tabs_disable_swipe">Desativar deslizamento entre as abas</string>
|
||||||
<string name="sk_settings_profile">Criar um perfil</string>
|
<string name="sk_settings_profile">Configurar perfil</string>
|
||||||
<string name="sk_settings_posting">Preferências de postagem</string>
|
<string name="sk_settings_posting">Preferências de postagem</string>
|
||||||
<string name="sk_settings_filters">Configurar filtros</string>
|
<string name="sk_settings_filters">Configurar filtros</string>
|
||||||
<string name="sk_delete_notification_confirm">Tem certeza que quer deletar esta notificação\?</string>
|
<string name="sk_delete_notification_confirm">Você tem certeza que deseja excluir esta notificação\?</string>
|
||||||
<string name="sk_delete_notification">Deletar notificação</string>
|
<string name="sk_delete_notification">Excluir notificação</string>
|
||||||
<string name="sk_delete_notification_confirm_action">Deletar notificação</string>
|
<string name="sk_delete_notification_confirm_action">Excluir notificação</string>
|
||||||
<string name="sk_enable_delete_notifications">Habilitar deletar notificações</string>
|
<string name="sk_enable_delete_notifications">Habilitar a exclusão de notificações</string>
|
||||||
<string name="sk_settings_publish_button_text_title">Customizar o texto do botão de publicar</string>
|
<string name="sk_settings_publish_button_text_title">Customizar o texto do botão de publicar</string>
|
||||||
<string name="sk_settings_translate_only_opened">Esconder botão de tradução na linha do tempo</string>
|
<string name="sk_settings_translate_only_opened">Esconder botão de tradução na linha do tempo</string>
|
||||||
<string name="sk_settings_translation_availability_note_available">%s possui tradução!</string>
|
<string name="sk_settings_translation_availability_note_available">%s suporta tradução!</string>
|
||||||
<string name="sk_settings_translation_availability_note_unavailable">%s parece que não possui tradução</string>
|
<string name="sk_settings_translation_availability_note_unavailable">%s parece não suportar tradução.</string>
|
||||||
<string name="sk_clear_all_notifications">Limpar todas as notificações</string>
|
<string name="sk_clear_all_notifications">Limpar todas as notificações</string>
|
||||||
<string name="sk_clear_all_notifications_confirm_action">Deletar todas</string>
|
<string name="sk_clear_all_notifications_confirm_action">Excluir tudo</string>
|
||||||
<string name="sk_loading_fediverse_resource_title">Procurando no Fediverso</string>
|
<string name="sk_loading_fediverse_resource_title">Procurando no Fediverso</string>
|
||||||
<string name="sk_undo_reblog">Desfazer reblog</string>
|
<string name="sk_undo_reblog">Desfazer reblog</string>
|
||||||
<string name="sk_reblog_with_visibility">Reblog com visibilidade</string>
|
<string name="sk_reblog_with_visibility">Reblog com visibilidade</string>
|
||||||
<string name="sk_hashtags_you_follow">Hashtags que você segue</string>
|
<string name="sk_hashtags_you_follow">Hashtags que você segue</string>
|
||||||
<string name="sk_copy_link_to_post">Copiar link para postagem</string>
|
<string name="sk_copy_link_to_post">Copiar link para postagem</string>
|
||||||
<string name="sk_loading_resource_on_instance_title">Procurando no %s</string>
|
<string name="sk_loading_resource_on_instance_title">Procurando em %s</string>
|
||||||
<string name="sk_open_with_account">Abrir com outra conta</string>
|
<string name="sk_open_with_account">Abrir com outra conta</string>
|
||||||
<string name="sk_resource_not_found">Recurso não pode ser encontrado</string>
|
<string name="sk_resource_not_found">Recurso não pode ser encontrado</string>
|
||||||
<string name="sk_settings_about">Sobre o app</string>
|
<string name="sk_settings_about">Sobre o app</string>
|
||||||
<string name="sk_settings_auth">Configurações de segurança</string>
|
<string name="sk_settings_auth">Configurações de segurança</string>
|
||||||
|
<string name="sk_settings_publish_button_text">Texto do botão de publicar</string>
|
||||||
|
<string name="sk_clear_all_notifications_confirm">Você tem certeza que deseja excluir todas as notificações\?</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
<string name="sk_mark_media_as_sensitive">Отметить медиафайл как деликатный</string>
|
<string name="sk_mark_media_as_sensitive">Отметить медиафайл как деликатный</string>
|
||||||
<string name="sk_settings_app_version">Megalodon 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_notification_type_status">Публикации</string>
|
||||||
<string name="sk_notify_posts">Отправляет публикацию</string>
|
<string name="sk_notify_posts">Уведомдения о</string>
|
||||||
<string name="sk_settings_color_palette">Цветовая схема</string>
|
<string name="sk_settings_color_palette">Цветовая схема</string>
|
||||||
<string name="sk_color_palette_pink">Розовый</string>
|
<string name="sk_color_palette_pink">Розовый</string>
|
||||||
<string name="sk_color_palette_purple">Фиолетовый</string>
|
<string name="sk_color_palette_purple">Фиолетовый</string>
|
||||||
@@ -28,16 +28,16 @@
|
|||||||
<string name="sk_language_name">%s (%s)</string>
|
<string name="sk_language_name">%s (%s)</string>
|
||||||
<string name="sk_welcome_title">Добро пожаловать!</string>
|
<string name="sk_welcome_title">Добро пожаловать!</string>
|
||||||
<string name="sk_example_domain">example.social</string>
|
<string name="sk_example_domain">example.social</string>
|
||||||
<string name="sk_settings_load_new_posts">Автоматически загружать новые публикации</string>
|
<string name="sk_settings_load_new_posts">Автоматически загружать новые посты</string>
|
||||||
<string name="sk_settings_show_replies">Показывать ответы на публикации</string>
|
<string name="sk_settings_show_replies">Показать ответы</string>
|
||||||
<string name="sk_federated_timeline">Федерация</string>
|
<string name="sk_federated_timeline">Федерация</string>
|
||||||
<string name="sk_update_available">Megalodon %s готов к скачиванию.</string>
|
<string name="sk_update_available">Megalodon %s готов к скачиванию.</string>
|
||||||
<string name="sk_update_ready">Megalodon %s скачан и готов к установке новой версии.</string>
|
<string name="sk_update_ready">Megalodon %s скачан и готов к установке новой версии.</string>
|
||||||
<string name="sk_check_for_update">Проверить обновления</string>
|
<string name="sk_check_for_update">Проверить обновления</string>
|
||||||
<string name="sk_follow_requests">Запросы на подписку</string>
|
<string name="sk_follow_requests">Запросы на подписку</string>
|
||||||
<string name="sk_lists_with_user">Списки с %s</string>
|
<string name="sk_lists_with_user">Списки с %s</string>
|
||||||
<string name="sk_confirm_unpin_post">Вы точно хотите открепить эту публикацию от профиля\?</string>
|
<string name="sk_confirm_unpin_post">Вы уверены, что хотите открепить этот пост\?</string>
|
||||||
<string name="sk_unpinning">Открепление публикации…</string>
|
<string name="sk_unpinning">Открепляем пост…</string>
|
||||||
<string name="sk_federated_timeline_info_banner">Это самые последние публикации людей из вашей федерации.</string>
|
<string name="sk_federated_timeline_info_banner">Это самые последние публикации людей из вашей федерации.</string>
|
||||||
<string name="sk_no_update_available">Обновление отсутствует</string>
|
<string name="sk_no_update_available">Обновление отсутствует</string>
|
||||||
<string name="sk_list_timelines">Списки</string>
|
<string name="sk_list_timelines">Списки</string>
|
||||||
@@ -87,4 +87,18 @@
|
|||||||
<string name="sk_copy_link_to_post">Скопировать ссылку на публикацию</string>
|
<string name="sk_copy_link_to_post">Скопировать ссылку на публикацию</string>
|
||||||
<string name="sk_open_with_account">Открыть с другого аккаунта</string>
|
<string name="sk_open_with_account">Открыть с другого аккаунта</string>
|
||||||
<string name="sk_resource_not_found">Ресурс не был найден</string>
|
<string name="sk_resource_not_found">Ресурс не был найден</string>
|
||||||
|
<string name="sk_already_bookmarked">Уже в закладках</string>
|
||||||
|
<string name="sk_favorite_as">Добавить в избранное на другом аккаунте</string>
|
||||||
|
<string name="sk_already_favorited">Уже в избранном</string>
|
||||||
|
<string name="sk_reblog_as">Реблог на другой аккаунт</string>
|
||||||
|
<string name="sk_reblogged_as">Реблог на %s</string>
|
||||||
|
<string name="sk_reply_as">Ответить с другого аккаунта</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Единая иконка для всех уведомлений</string>
|
||||||
|
<string name="sk_loading_fediverse_resource_title">Ищем это в Fediverse</string>
|
||||||
|
<string name="sk_bookmark_as">Добавить в закладки на другом аккаунте</string>
|
||||||
|
<string name="sk_bookmarked_as">В закладки как %s</string>
|
||||||
|
<string name="sk_favorited_as">В избранное как %s</string>
|
||||||
|
<string name="sk_already_reblogged">Уже реблогнуто</string>
|
||||||
|
<string name="sk_hashtags_you_follow">Хештеги, на которые вы подписаны</string>
|
||||||
|
<string name="sk_loading_resource_on_instance_title">Просматриваем на %s</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -90,4 +90,34 @@
|
|||||||
<string name="sk_loading_resource_on_instance_title">Пошук на %s</string>
|
<string name="sk_loading_resource_on_instance_title">Пошук на %s</string>
|
||||||
<string name="sk_open_with_account">Відкрити через інший обліковий запис</string>
|
<string name="sk_open_with_account">Відкрити через інший обліковий запис</string>
|
||||||
<string name="sk_resource_not_found">Ресурс не знайдено</string>
|
<string name="sk_resource_not_found">Ресурс не знайдено</string>
|
||||||
|
<string name="sk_bookmarked_as">Додано до закладок як %s</string>
|
||||||
|
<string name="sk_already_bookmarked">Уже в закладках</string>
|
||||||
|
<string name="sk_favorited_as">Уподобано як %s</string>
|
||||||
|
<string name="sk_already_favorited">Уже вподобано</string>
|
||||||
|
<string name="sk_reblog_as">Поширити з іншого облікового запису</string>
|
||||||
|
<string name="sk_already_reblogged">Уже поширено</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">Єдина піктограма для всіх сповіщень</string>
|
||||||
|
<string name="sk_bookmark_as">Додати до закладок іншого облікового запису</string>
|
||||||
|
<string name="sk_favorite_as">Уподобане з іншого облікового запису</string>
|
||||||
|
<string name="sk_reblogged_as">Поширено як %s</string>
|
||||||
|
<string name="sk_reply_as">Відповісти з іншого облікового запису</string>
|
||||||
|
<string name="sk_forward_report_to">Переслати до %s</string>
|
||||||
|
<string name="sk_unsent_posts">Не надіслані дописи</string>
|
||||||
|
<string name="sk_draft">Чернетка</string>
|
||||||
|
<string name="sk_schedule">Заплановане</string>
|
||||||
|
<string name="sk_confirm_delete_draft_title">Видалити чернетку</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post_title">Видалити запланований допис</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post">Ви дійсно хочете видалити цей запланований допис\?</string>
|
||||||
|
<string name="sk_compose_draft">Допис збережеться до чернеток.</string>
|
||||||
|
<string name="sk_compose_scheduled">Заплановано на</string>
|
||||||
|
<string name="sk_draft_saved">Чернетку збережено</string>
|
||||||
|
<string name="sk_post_scheduled">Допис заплановано</string>
|
||||||
|
<string name="sk_confirm_delete_draft">Ви дійсно хочете видалити чернетку цього допису\?</string>
|
||||||
|
<string name="sk_draft_or_schedule">У чернетки чи до запланованих</string>
|
||||||
|
<string name="sk_scheduled_too_soon_title">Надто скоро заплановано</string>
|
||||||
|
<string name="sk_scheduled_too_soon">Допис має бути запланований щонайменше на 10 хвилин наперед.</string>
|
||||||
|
<string name="sk_confirm_save_changes">Зберегти зміни\?</string>
|
||||||
|
<string name="sk_mark_as_draft">Позначити чернеткою</string>
|
||||||
|
<string name="sk_schedule_post">Запланувати допис</string>
|
||||||
|
<string name="sk_confirm_save_draft">Зберегти чернетку\?</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -90,4 +90,32 @@
|
|||||||
<string name="sk_loading_resource_on_instance_title">在 %s 上查找</string>
|
<string name="sk_loading_resource_on_instance_title">在 %s 上查找</string>
|
||||||
<string name="sk_resource_not_found">找不到资源</string>
|
<string name="sk_resource_not_found">找不到资源</string>
|
||||||
<string name="sk_open_with_account">用另一个帐户打开</string>
|
<string name="sk_open_with_account">用另一个帐户打开</string>
|
||||||
|
<string name="sk_bookmark_as">在其他帐户中添加书签</string>
|
||||||
|
<string name="sk_bookmarked_as">已标记为 %s</string>
|
||||||
|
<string name="sk_already_bookmarked">已加入书签</string>
|
||||||
|
<string name="sk_favorite_as">从其他帐户收藏</string>
|
||||||
|
<string name="sk_favorited_as">收藏为 %s</string>
|
||||||
|
<string name="sk_already_favorited">已收藏</string>
|
||||||
|
<string name="sk_reblog_as">从其他帐户重新登录</string>
|
||||||
|
<string name="sk_reblogged_as">重新登录为 %s</string>
|
||||||
|
<string name="sk_already_reblogged">已重新登录</string>
|
||||||
|
<string name="sk_reply_as">用其他帐号回复</string>
|
||||||
|
<string name="sk_settings_uniform_icon_for_notifications">所有通知的统一图标</string>
|
||||||
|
<string name="sk_unsent_posts">未发送的嘟文</string>
|
||||||
|
<string name="sk_confirm_delete_draft_title">删除草稿</string>
|
||||||
|
<string name="sk_draft">草稿</string>
|
||||||
|
<string name="sk_schedule">预订</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post_title">删除预订嘟文</string>
|
||||||
|
<string name="sk_confirm_delete_scheduled_post">您确定要删除此预定嘟文吗?</string>
|
||||||
|
<string name="sk_draft_or_schedule">草稿或预订</string>
|
||||||
|
<string name="sk_compose_draft">嘟文将保存为草稿。</string>
|
||||||
|
<string name="sk_compose_scheduled">预定于</string>
|
||||||
|
<string name="sk_draft_saved">草稿已保存</string>
|
||||||
|
<string name="sk_post_scheduled">预订嘟文</string>
|
||||||
|
<string name="sk_forward_report_to">转发给 %s</string>
|
||||||
|
<string name="sk_confirm_delete_draft">您确定要删除此嘟文草稿吗?</string>
|
||||||
|
<string name="sk_scheduled_too_soon_title">预定的时间过早</string>
|
||||||
|
<string name="sk_scheduled_too_soon">嘟文必须预订在未来至少 10 分钟后。</string>
|
||||||
|
<string name="sk_save_draft">保存草稿?</string>
|
||||||
|
<string name="sk_save_changes">保存更改?</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -91,13 +91,13 @@
|
|||||||
<string name="sk_copy_link_to_post">Copy link to post</string>
|
<string name="sk_copy_link_to_post">Copy link to post</string>
|
||||||
<string name="sk_open_with_account">Open with other account</string>
|
<string name="sk_open_with_account">Open with other account</string>
|
||||||
<string name="sk_resource_not_found">Resource could not be found</string>
|
<string name="sk_resource_not_found">Resource could not be found</string>
|
||||||
<string name="sk_bookmark_as">Bookmark in other account</string>
|
<string name="sk_bookmark_as">Bookmark with other account</string>
|
||||||
<string name="sk_bookmarked_as">Bookmarked as %s</string>
|
<string name="sk_bookmarked_as">Bookmarked as %s</string>
|
||||||
<string name="sk_already_bookmarked">Already bookmarked</string>
|
<string name="sk_already_bookmarked">Already bookmarked</string>
|
||||||
<string name="sk_favorite_as">Favorite from other account</string>
|
<string name="sk_favorite_as">Favorite with other account</string>
|
||||||
<string name="sk_favorited_as">Favorited as %s</string>
|
<string name="sk_favorited_as">Favorited as %s</string>
|
||||||
<string name="sk_already_favorited">Already favorited</string>
|
<string name="sk_already_favorited">Already favorited</string>
|
||||||
<string name="sk_reblog_as">Reblog from other account</string>
|
<string name="sk_reblog_as">Reblog with other account</string>
|
||||||
<string name="sk_reblogged_as">Reblogged as %s</string>
|
<string name="sk_reblogged_as">Reblogged as %s</string>
|
||||||
<string name="sk_already_reblogged">Already reblogged</string>
|
<string name="sk_already_reblogged">Already reblogged</string>
|
||||||
<string name="sk_reply_as">Reply with other account</string>
|
<string name="sk_reply_as">Reply with other account</string>
|
||||||
@@ -117,6 +117,12 @@
|
|||||||
<string name="sk_post_scheduled">Post scheduled</string>
|
<string name="sk_post_scheduled">Post scheduled</string>
|
||||||
<string name="sk_scheduled_too_soon_title">Scheduled time is too soon</string>
|
<string name="sk_scheduled_too_soon_title">Scheduled time is too soon</string>
|
||||||
<string name="sk_scheduled_too_soon">Post must be scheduled at least 10 minutes in the future.</string>
|
<string name="sk_scheduled_too_soon">Post must be scheduled at least 10 minutes in the future.</string>
|
||||||
<string name="sk_save_draft">Save draft?</string>
|
<string name="sk_confirm_save_draft">Save draft?</string>
|
||||||
<string name="sk_save_changes">Save changes?</string>
|
<string name="sk_confirm_save_changes">Save changes?</string>
|
||||||
|
<string name="sk_mark_as_draft">Mark as draft</string>
|
||||||
|
<string name="sk_schedule_post">Schedule post</string>
|
||||||
|
<string name="sk_schedule_or_draft">Schedule or draft</string>
|
||||||
|
<string name="sk_compose_no_schedule">Don’t schedule</string>
|
||||||
|
<string name="sk_compose_no_draft">Don’t draft</string>
|
||||||
|
<string name="sk_settings_reduce_motion">Reduce motion in animations</string>
|
||||||
</resources>
|
</resources>
|
||||||
8
metadata/de-DE/changelogs/65.txt
Normal file
8
metadata/de-DE/changelogs/65.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
- Entwürfe und geplante Posts
|
||||||
|
- Mastodon 4.0-kompatible Filter von @thiagojedi
|
||||||
|
- Langes Klicken, um mit Posts (Antworten, Boosten, Liken, Lesezeichen) von anderen eingeloggten Konten zu interagieren
|
||||||
|
- Symbole in allen Menüs
|
||||||
|
- Erwähnung bei Verwendung der Funktion "Darüber schreiben" hinzufügen
|
||||||
|
- Option zur Verwendung eines einheitlichen Benachrichtigungssymbols anstelle von unterschiedlichen Symbolen
|
||||||
|
- Option zum Zugriff auf die In-App-Regelliste über die Einstellungen
|
||||||
|
- Fehlerbehebungen
|
||||||
@@ -4,11 +4,12 @@ Megalodon ist eine modifizierte Version der <a href="https://github.com/mastodon
|
|||||||
|
|
||||||
- <b>Ungelistet posten</b>: Öffentlich posten, ohne dass der Beitrag in Trends, Hashtags oder öffentlichen Timelines angezeigt wird.
|
- <b>Ungelistet posten</b>: Öffentlich posten, ohne dass der Beitrag in Trends, Hashtags oder öffentlichen Timelines angezeigt wird.
|
||||||
- <b>Föderierte Timeline</b>: Alle öffentlichen Beiträge aller anderen Fediverse-Nachbarschaften, mit denen deine Heim-Instanz verbunden ist.
|
- <b>Föderierte Timeline</b>: Alle öffentlichen Beiträge aller anderen Fediverse-Nachbarschaften, mit denen deine Heim-Instanz verbunden ist.
|
||||||
|
- <b>Entwürfe und geplante Beiträge</b>: Ermöglicht das Vorbereiten eines Posts und das Planen des automatischen Versands zu einem bestimmten Zeitpunkt.
|
||||||
- <b>Bildbeschreibungen anzeigen</b>: Unkompliziert prüfen, ob Bilder und Videos Alternativ-Texte beinhalten.
|
- <b>Bildbeschreibungen anzeigen</b>: Unkompliziert prüfen, ob Bilder und Videos Alternativ-Texte beinhalten.
|
||||||
- <b>Beiträge anpinnen</b>: Pinne deine wichtigsten Beiträge an dein Profil an und sieh im “Angepinnt”-Tab nach, was andere User_innen angepinnt haben.
|
- <b>Beiträge anpinnen</b>: Pinne deine wichtigsten Beiträge an dein Profil an und sieh im “Angepinnt”-Tab nach, was andere User_innen angepinnt haben.
|
||||||
- <b>Hashtags folgen</b>: Bringt neue Beiträge bestimmter Hashtags direkt in deine Home-Timeline.
|
- <b>Hashtags folgen</b>: Bringt neue Beiträge bestimmter Hashtags direkt in deine Home-Timeline.
|
||||||
- <b>Folgeanfragen beantworten</b>: Folgeanfragen lassen sich nun direkt über die Benachrichtigungen-Liste oder über die Folgeanfragen-Liste akzeptieren oder ablehnen.
|
- <b>Folgeanfragen beantworten</b>: Folgeanfragen lassen sich nun direkt über die Benachrichtigungen-Liste oder über die Folgeanfragen-Liste akzeptieren oder ablehnen.
|
||||||
- <b>Beiträge löschen und neu erstellen</b>: Das beliebte Feature, das das Bearbeiten von Beiträgen ohne tatsächliche Bearbeit-Funktion möglich gemacht hat.
|
- <b>Beiträge löschen und neu erstellen</b>: Das beliebte Feature, dass das Bearbeiten von Beiträgen ohne tatsächliche Bearbeit-Funktion möglich gemacht hat.
|
||||||
- <b>Sprachauswahl</b>: Wähle mühelos die Sprache für jeden deiner Beiträge, damit diese richtig gefiltert und übersetzt werden können.
|
- <b>Sprachauswahl</b>: Wähle mühelos die Sprache für jeden deiner Beiträge, damit diese richtig gefiltert und übersetzt werden können.
|
||||||
- <b>Übersetzung</b>: Beiträge können nun direkt in Megalodon übersetzt werden – aber nur, wenn deine Instanz dies auch unterstützt.
|
- <b>Übersetzung</b>: Beiträge können nun direkt in Megalodon übersetzt werden – aber nur, wenn deine Instanz dies auch unterstützt.
|
||||||
- <b>Sichtbarkeits-Indikator</b>: Beim Öffnen oder Antworten auf einen Beitrag zeigt ein Symbol die Sichtbarkeit des Beitrags an.
|
- <b>Sichtbarkeits-Indikator</b>: Beim Öffnen oder Antworten auf einen Beitrag zeigt ein Symbol die Sichtbarkeit des Beitrags an.
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
- Drafts and scheduled posts
|
- Drafts and scheduled posts
|
||||||
- Mastodon 4.0 compatible filters by @thiagojedi
|
- Display original post when replying
|
||||||
|
- Mastodon 4.0 compatible filters (no "hide with warning" function yet)
|
||||||
- Long-click to interact with posts (reply, boost, like, bookmark) from other logged-in accounts
|
- Long-click to interact with posts (reply, boost, like, bookmark) from other logged-in accounts
|
||||||
- Icons in all menus
|
- Icons in all menus
|
||||||
|
- Toggle for forwarding reports
|
||||||
- Add mention when using "Post about this" function
|
- Add mention when using "Post about this" function
|
||||||
- Option to use uniform notifications icon instead of distinct icons
|
- Option to use uniform notifications icon instead of distinct icons
|
||||||
- Option to access in-app rules list from settings
|
- Option to access in-app rules list from settings
|
||||||
8
metadata/es/changelogs/65.txt
Normal file
8
metadata/es/changelogs/65.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
- Borradores y publicaciones programadas
|
||||||
|
- Filtros compatibles con Mastodon 4.0 de @thiagojedi
|
||||||
|
- Clic largo para interactuar con publicaciones (respuesta, impulso, me gusta, marcador) de otras cuentas registradas
|
||||||
|
- Iconos en todos los menús
|
||||||
|
- Agregar mención al usar la función "Escribir sobre"
|
||||||
|
- Opción para usar un ícono de notificación uniforme en lugar de íconos diferentes
|
||||||
|
- Opción para acceder a la lista de reglas en la aplicación desde la configuración
|
||||||
|
- Corrección de errores
|
||||||
@@ -1,15 +1,16 @@
|
|||||||
Megalodon es una versión modificada de la <a href="https://github.com/mastodon/mastodon-android">aplicación oficial de Mastodon para Android</a> que añade funcionalidades importantes que le faltan a esta, como la cronología federada, la publicación descatalogada y un visor de descripciones de imágenes.
|
Megalodon es una versión modificada de la <a href="https://github.com/mastodon/mastodon-android">aplicación oficial de Mastodon para Android</a> con muchas características que faltan en la aplicación oficial, como la federada Timeline , publicar publicaciones no listadas y la capacidad de ver descripciones de imágenes.
|
||||||
|
|
||||||
<b>Funcionalidades importantes</b>
|
<b>Las funciones más importantes</b>
|
||||||
|
|
||||||
- <b>Publicación descatalogada</b>: haga envíos públicos sin que estos figuren en tendencias, etiquetas o cronologías públicas.
|
- <b>Publicación no listada</b>: publique públicamente sin mostrar la publicación en tendencias, hashtags o cronologías públicas.
|
||||||
- <b>Cronología federada</b>: vea todos los envíos públicos de las personas en las instalaciones del Fediverso que estén conectadas con su instalación hogar.
|
- <b>Línea de tiempo federada</b>: todas las publicaciones públicas de todos los demás vecindarios de Fediverse a los que está conectada su instancia de inicio.
|
||||||
- <b>Visor de descripciones de imágenes</b>: compruebe con rapidez si una imagen o un vídeo tiene texto alternativo.
|
- <b>Borradores y publicaciones programadas</b>: permite preparar una publicación y programarla para que se envíe automáticamente a una hora específica.
|
||||||
- <b>Anclaje de publicaciones</b>: ancle sus envíos más importantes a su perfil y vea lo que otros han anclado mediante la pestaña «Ancladas».
|
- <b>Mostrar descripciones de imágenes</b>: compruebe fácilmente si las imágenes y los vídeos contienen textos alternativos.
|
||||||
- <b>Seguir etiquetas</b>: vea envíos etiquetados directamente en su cronología de inicio siguiéndolas.
|
- <b>Fijar publicaciones</b>: fije sus publicaciones más importantes a su perfil y vea lo que otros usuarios han fijado en la pestaña "Fijado".
|
||||||
- <b>Respuesta a solicitudes de seguimiento</b>: acepte o rechace solicitudes de seguimiento desde sus notificaciones o desde la lista dedicada.
|
- <b>Follow Hashtags</b>: Trae nuevas publicaciones de hashtags específicos directamente a su línea de tiempo de inicio.
|
||||||
- <b>Eliminar y reescribir</b>: la tan querida función que hizo posible editar los envíos ante la falta de una función Editar propiamente dicha.
|
- <b>Responder solicitudes de seguimiento</b>: las solicitudes de seguimiento ahora se pueden aceptar o rechazar directamente a través de la lista de notificaciones o mediante la lista de solicitudes de seguimiento.
|
||||||
- <b>Selector de idioma</b>: seleccione fácilmente el idioma de cada publicación que realice para que los filtros y la traducción funcionen correctamente.
|
- <b>Eliminar publicaciones y crear nuevas</b>: la característica popular que hizo posible editar publicaciones sin editarlas realmente.
|
||||||
- <b>Traducción</b>: ¡Traduce fácilmente las publicaciones dentro de Megalodon! Solo funciona si la función también está disponible en su Mastodon Web.
|
- <b>Selector de idioma</b>: elija fácilmente el idioma de cada una de sus publicaciones para que puedan filtrarse y traducirse correctamente.
|
||||||
- <b>Indicador de visibilidad de publicación</b>: al abrir o responder a una publicación, se mostrará un ícono útil que indica la visibilidad de la publicación.
|
- <b>Traducción</b>: las publicaciones ahora se pueden traducir directamente a Megalodon, pero solo si su instancia lo admite.
|
||||||
- <b>Temas de color</b>: si no te gusta el color rosa predeterminado (el tiburón te está juzgando en silencio), los temas de color de Moshidon te ayudarán.
|
- <b>Indicador de visibilidad</b>: al abrir o responder a una publicación, un ícono indica la visibilidad de la publicación.
|
||||||
|
- <b>Esquemas de color</b>: si no te gusta el rosa predeterminado (el tiburón te juzga en silencio), los esquemas de color de Moshidon pueden ayudarte.
|
||||||
|
|||||||
1
metadata/eu-ES/short_description.txt
Normal file
1
metadata/eu-ES/short_description.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Andoiderako Mastodon, baino hau arrosa da eta ezaugarri gehiago ditu
|
||||||
1
metadata/eu-ES/title.txt
Normal file
1
metadata/eu-ES/title.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Megalodon
|
||||||
8
metadata/fr-FR/changelogs/65.txt
Normal file
8
metadata/fr-FR/changelogs/65.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
- Brouillons et messages planifiés
|
||||||
|
- Filtres compatibles Mastodon 4.0 par @thiagojedi
|
||||||
|
- Appuis long pour interagir avec les messages (répondre, booster, aimer, signet) d'autres comptes connectés
|
||||||
|
- Icônes dans tous les menus
|
||||||
|
- Ajout d'une mention lors de l'utilisation de la fonction "Publier à ce sujet"
|
||||||
|
- Possibilité d'utiliser une icône de notification uniforme au lieu d'icônes distinctes
|
||||||
|
- Option pour accéder à la liste des règles de l'application à partir des paramètres
|
||||||
|
- Corrections de bugs
|
||||||
@@ -4,6 +4,7 @@ Megalodon est une version modifiée de <a href="https://github.com/mastodon/mast
|
|||||||
|
|
||||||
- <b>Publication non répertoriée</b> : Publiez publiquement sans que votre message apparaisse dans les tendances, les hashtags ou les timelines publiques.
|
- <b>Publication non répertoriée</b> : Publiez publiquement sans que votre message apparaisse dans les tendances, les hashtags ou les timelines publiques.
|
||||||
- <b>Timeline fédérée</b> : Affichez tous les messages publics des personnes de tout le voisinage du Fediverse auxquel votre instance est connectée.
|
- <b>Timeline fédérée</b> : Affichez tous les messages publics des personnes de tout le voisinage du Fediverse auxquel votre instance est connectée.
|
||||||
|
- <b>Brouillons et messages planifiés</b> : permet de préparer un message et de programmer son envoi automatiquement à une heure précise.
|
||||||
- <b>Visionneuse de description d'image</b> : Vérifiez rapidement si une image ou une vidéo est associée à un texte alternatif.
|
- <b>Visionneuse de description d'image</b> : Vérifiez rapidement si une image ou une vidéo est associée à un texte alternatif.
|
||||||
- <b>Épingler des publications</b> : Épinglez vos publications les plus importantes à votre profil et voyez ce que les autres ont épinglé en utilisant l'onglet "Épinglé".
|
- <b>Épingler des publications</b> : Épinglez vos publications les plus importantes à votre profil et voyez ce que les autres ont épinglé en utilisant l'onglet "Épinglé".
|
||||||
- <b>Suivez des hashtags</b> : Voir les nouveaux messages avec des hashtags spécifiques directement dans votre timeline d'accueil en les suivant.
|
- <b>Suivez des hashtags</b> : Voir les nouveaux messages avec des hashtags spécifiques directement dans votre timeline d'accueil en les suivant.
|
||||||
|
|||||||
8
metadata/id/changelogs/65.txt
Normal file
8
metadata/id/changelogs/65.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
- Draft dan kiriman terjadwal
|
||||||
|
- Saringan kompatibel dengan Mastodon 4.0 oleh @thiagojedi
|
||||||
|
- Klik lama untuk berinteraksi dengan kiriman (balas, bagikan, sukai, markahi) dari akun yang sudah masuk
|
||||||
|
- Ikon di semua menu
|
||||||
|
- Tambahkan sebutan ketika menggunakan fungsi "Kirim tentang ini"
|
||||||
|
- Opsi untuk menggunakan ikon notifikasi yang sama daripada ikon yang berbeda
|
||||||
|
- Opsi untuk mengakses daftar dalam aplikasi dari pengaturan
|
||||||
|
- Perbaikan kutu
|
||||||
@@ -3,7 +3,8 @@ Megalodon adalah versi modifikasi <a href="https://github.com/mastodon/mastodon-
|
|||||||
<b>Fitur unggulan</b>
|
<b>Fitur unggulan</b>
|
||||||
|
|
||||||
- <b>Pengiriman tidak terdaftar</b>: Kirim secara publik tanpa memasukkan kiriman Anda dalam tren, tagar, atau lini masa publik.
|
- <b>Pengiriman tidak terdaftar</b>: Kirim secara publik tanpa memasukkan kiriman Anda dalam tren, tagar, atau lini masa publik.
|
||||||
- <b>Lini masa federasi</b>: Lihat semua kiriman publik dari orang-orang di semua tetangga Fediverse lainnya yang instansi rumah Anda terhubung.
|
- <b>Lini masa federasi</b>: Lihat semua kiriman publik dari orang-orang di semua tetangga Fedimesta lainnya yang instansi rumah Anda terhubung.
|
||||||
|
- <b>Draf dan kiriman terjadwal</b>: Memungkinkan untuk menyiapkan kiriman dan menjadwalkannya untuk dikirim secara otomatis pada waktu yang ditentukan.
|
||||||
- <b>Penampil deskripsi gambar</b>: Periksa secara cepat jika gambar atau video nemiliki deskripsi alternatif.
|
- <b>Penampil deskripsi gambar</b>: Periksa secara cepat jika gambar atau video nemiliki deskripsi alternatif.
|
||||||
- <b>Menyematkan kiriman</b>: Sematkan kiriman penting Anda ke profil Anda dan lihat apa yang telah disematkan oleh orang lain menggunakan tab “Disematkan”.
|
- <b>Menyematkan kiriman</b>: Sematkan kiriman penting Anda ke profil Anda dan lihat apa yang telah disematkan oleh orang lain menggunakan tab “Disematkan”.
|
||||||
- <b>Ikuti tagar</b>: Lihat kiriman baru dari tagar spesifik secara langsung dalam lini masa beranda Anda dengan mengikutinya.
|
- <b>Ikuti tagar</b>: Lihat kiriman baru dari tagar spesifik secara langsung dalam lini masa beranda Anda dengan mengikutinya.
|
||||||
|
|||||||
6
metadata/ko/changelogs/63.txt
Normal file
6
metadata/ko/changelogs/63.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- 리블로그를 길게 눌러 공개 범위를 설정
|
||||||
|
- 자신의 리블로그에 대해 공개 범위 표시
|
||||||
|
- 팔로우한 해시태그 목록 추가
|
||||||
|
- 길게 눌러 링크 복사
|
||||||
|
- 다른 계정으로 게시물을 열 수 있는 옵션 제공
|
||||||
|
- 버그 해결 및 소소한 수정
|
||||||
@@ -2,4 +2,5 @@
|
|||||||
- Adicionada a função de tradução
|
- Adicionada a função de tradução
|
||||||
- Melhorada a semântica para votação em enquetes (botões de opção e caixas de seleção)
|
- Melhorada a semântica para votação em enquetes (botões de opção e caixas de seleção)
|
||||||
- Adicionada a opção que permite a votação de várias opções nas enquetes
|
- Adicionada a opção que permite a votação de várias opções nas enquetes
|
||||||
|
- Nova tela de login
|
||||||
- Correções de bugs
|
- Correções de bugs
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
- Botão de Publicar personalizável
|
- Botão de Publicar personalizável
|
||||||
- Links do Fediverso no abertos no aplicativo
|
- Links do Fediverso abertos no aplicativo
|
||||||
- Clique longo em impulsionar para "citar" uma postagem
|
- Clique longo em impulsionar para "citar" uma postagem
|
||||||
- Copie o URL da postagem ao pressionar e segurar o compartilhar
|
- Copie o URL da postagem ao pressionar e segurar o compartilhar
|
||||||
- Exclusão de notificações (desativado por padrão)
|
- Exclusão de notificações (desativado por padrão)
|
||||||
|
|||||||
4
metadata/ru/changelogs/50.txt
Normal file
4
metadata/ru/changelogs/50.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
- Подготовьте файлы для выпуска на F-Droid
|
||||||
|
- Исправьте автоматическое обновление
|
||||||
|
- Добавьте однотонные иконки обратно в иконки пусковой установки
|
||||||
|
- Заменить неправильную иконку без списка в расширенном нижнем колонтитуле
|
||||||
6
metadata/ru/changelogs/51.txt
Normal file
6
metadata/ru/changelogs/51.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- Сделать возможным открытие исходного сообщения при ответе (щелчком по строке "В ответ на...")
|
||||||
|
- Слияние изменений и исправлений
|
||||||
|
- Удалить неиспользуемый код "App Center"
|
||||||
|
- Добавить релиз без федеративной временной шкалы для Play Store
|
||||||
|
- Добавить пользовательский URI перенаправления для упрощения входа
|
||||||
|
- Изменить ссылку на участие в проекте
|
||||||
4
metadata/ru/changelogs/55.txt
Normal file
4
metadata/ru/changelogs/55.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
- Исправлен неработающий рендеринг HTML-тегов и включите рендеринг форматирования Markdown
|
||||||
|
- Инициализирован <a href="https://translate.codeberg.org/projects/megalodon">проект перевода на Weblate</a>
|
||||||
|
- Добавлен переключатель для федеративной временной шкалы
|
||||||
|
- Версии 52-54 были небольшими корректировками для выпуска на Google Play
|
||||||
6
metadata/ru/changelogs/56.txt
Normal file
6
metadata/ru/changelogs/56.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- Пользовательские цветовые темы от @LucasGGamerM
|
||||||
|
- Новый текстовый логотип "megalodon" предоставлен @LucasGGamerM
|
||||||
|
- Улучшен поиск эмодзи при написании текста
|
||||||
|
- Настроено голосование (отображение собственного голоса, всегда отображать кнопку голосования, не обрывать длинные ответы)
|
||||||
|
- Добавлена настройка push-уведомлений для уведомлений о сообщениях
|
||||||
|
- Исправления багов
|
||||||
6
metadata/ru/changelogs/59.txt
Normal file
6
metadata/ru/changelogs/59.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- Добавить селектор языков
|
||||||
|
- Добавить функцию перевода
|
||||||
|
- Улучшение семантики для голосования в опросах (радиокнопки и чекбоксы)
|
||||||
|
- Добавить возможность разрешить голосование за несколько вариантов в опросах
|
||||||
|
- Новый экран входа в систему
|
||||||
|
- Исправления
|
||||||
5
metadata/ru/changelogs/61.txt
Normal file
5
metadata/ru/changelogs/61.txt
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
- Новые цветовые темы: Material You и Красный
|
||||||
|
- Новые темно-серые тона для всех тем
|
||||||
|
- Более отчетливая иконка повышения наполненности
|
||||||
|
- Анимация для кнопок взаимодействия
|
||||||
|
- Исправления (сбой в некоторых сообщениях, "Списки с", язык сообщений по умолчанию)
|
||||||
11
metadata/ru/changelogs/62.txt
Normal file
11
metadata/ru/changelogs/62.txt
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
- Настраиваемая кнопка "Опубликовать
|
||||||
|
- Открывать ссылки Fediverse в приложении
|
||||||
|
- Длительное нажатие кнопки увеличения для "цитирования" сообщения
|
||||||
|
- Копирование URL-адреса поста при длительном нажатии на кнопку поделиться
|
||||||
|
- Реализация удаления уведомлений (по умолчанию отключено)
|
||||||
|
- Выделенные иконки для различных типов уведомлений
|
||||||
|
- Новые серые цвета
|
||||||
|
- Добавлена настройка для отключения пролистывания между вкладками
|
||||||
|
- Добавление различных ссылок на настройки аккаунта
|
||||||
|
- Переключатель для показа/скрытия кнопки перевода на временной шкале
|
||||||
|
- Исправления и доработки
|
||||||
6
metadata/ru/changelogs/63.txt
Normal file
6
metadata/ru/changelogs/63.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
- Возможность делать реблог с определенной видимостью при длительном нажатии
|
||||||
|
- Показать видимость собственных реблогов
|
||||||
|
- Добавить список отслеживаемых хэштегов
|
||||||
|
- Длинный клик для копирования ссылок
|
||||||
|
- Возможность открывать посты с другого аккаунта
|
||||||
|
- Исправления и мелкие доработки
|
||||||
@@ -10,6 +10,6 @@ Megalodon - это модифицированная версия <a href="https:
|
|||||||
- <b> Ответы на запросы подписчиков</b>: принимайте или отклоняйте запросы подписчиков из ваших уведомлений или специального списка запросов подписчиков.
|
- <b> Ответы на запросы подписчиков</b>: принимайте или отклоняйте запросы подписчиков из ваших уведомлений или специального списка запросов подписчиков.
|
||||||
- <b>"Удалить и исправить"</b>: очень любимая функция, которая сделала возможным редактирование без реальной функции редактирования.
|
- <b>"Удалить и исправить"</b>: очень любимая функция, которая сделала возможным редактирование без реальной функции редактирования.
|
||||||
- <b>Выбор языка</b>: Безболезненно выбирайте язык для каждой публикации, которую вы делаете, чтобы фильтры и перевод работали правильно.
|
- <b>Выбор языка</b>: Безболезненно выбирайте язык для каждой публикации, которую вы делаете, чтобы фильтры и перевод работали правильно.
|
||||||
- <b>Перевод публикации</b>: Легко переводите публикации прямо внутри Megalodon! Работает только в том случае, если администратор вашего домашнего сервера включил эту функцию для Web-клиента Mastodon.
|
- <b>Перевод публикации</b>: Легко переводите публикации прямо внутри Megalodon! Работает только в том случае, если администратор вашего домашнего сервера включил эту функцию для Web-клиента Mastodon.
|
||||||
- <b>Индикатор видимости поста</b>: При открытии поста или ответе на него будет отображаться удобный значок, указывающий на видимость поста.
|
- <b>Индикатор видимости поста</b>: При открытии поста или ответе на него будет отображаться удобный значок, указывающий на видимость поста.
|
||||||
- <b>Цветовая схема</b>: Если вам по умолчанию не устраивает розовый цвет в клиенте (акула молча вас осуждает), цветовые схемы Moshidon помогут вам.
|
- <b>Цветовая схема</b>: Если вам по умолчанию не устраивает розовый цвет в клиенте (акула молча вас осуждает), цветовые схемы Moshidon помогут вам.
|
||||||
|
|||||||
8
metadata/uk/changelogs/65.txt
Normal file
8
metadata/uk/changelogs/65.txt
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
- Чернетки й заплановані дописи
|
||||||
|
- Фільтри, сумісні з Mastodon 4.0, від @thiagojedi
|
||||||
|
- Взаємодіяти затисканням з дописами (відповісти, поширити, уподобати, додати до закладок) від інших облікових записів, до яких ви ввійшли.
|
||||||
|
- Піктограми у всіх меню
|
||||||
|
- Додавання згадки за користування функцією «Написати про це»
|
||||||
|
- Можливість використовувати єдину піктограму сповіщень замість різних піктограм
|
||||||
|
- Можливість доступу до списку правил застосунку з налаштувань
|
||||||
|
- Виправлення помилок
|
||||||
@@ -4,6 +4,7 @@ Megalodon — це модифікована версія <a href="https://github
|
|||||||
|
|
||||||
- <b>Приховані дописи</b>: Створюйте загальнодоступні дописи, але не показуйте їх у трендах, хештегах чи загальнодоступних стрічках.
|
- <b>Приховані дописи</b>: Створюйте загальнодоступні дописи, але не показуйте їх у трендах, хештегах чи загальнодоступних стрічках.
|
||||||
- <b>Федеративна стрічка</b>: Переглядайте всі загальнодоступні дописи від людей зі всього Федівсесвіту!
|
- <b>Федеративна стрічка</b>: Переглядайте всі загальнодоступні дописи від людей зі всього Федівсесвіту!
|
||||||
|
- <b>Чернетки й заплановані дописи</b>: Дозволяє підготувати допис і запланувати його автонадсилання у вказаний час.
|
||||||
- <b>Переглядач опису зображення</b>: Швидко перевірте, чи має зображення або відео альтернативний опис.
|
- <b>Переглядач опису зображення</b>: Швидко перевірте, чи має зображення або відео альтернативний опис.
|
||||||
- <b>Закріплення дописів</b>: Закріплюйте ваші найважливіші дописи у своєму профілі та переглядайте, що закріпили люди у вкладці "Закріплене".
|
- <b>Закріплення дописів</b>: Закріплюйте ваші найважливіші дописи у своєму профілі та переглядайте, що закріпили люди у вкладці "Закріплене".
|
||||||
- <b>Слідкуйте за хештегами</b>: Переглядайте нові дописи з певними хештегами безпосередньо у своїй домашній стрічці, підписавшись на них.
|
- <b>Слідкуйте за хештегами</b>: Переглядайте нові дописи з певними хештегами безпосередньо у своїй домашній стрічці, підписавшись на них.
|
||||||
|
|||||||
Reference in New Issue
Block a user