mirror of
https://codeberg.org/tom79/Fedilab.git
synced 2025-12-25 00:00:19 +02:00
Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
commit
831dc1e365
32 changed files with 265 additions and 48 deletions
|
|
@ -1132,6 +1132,19 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt
|
|||
}
|
||||
String software = sharedpreferences.getString(PREF_USER_SOFTWARE, null);
|
||||
|
||||
if (sharedpreferences.getString(getString(R.string.SET_TRANSLATE_BUTTON) + currentUserID + currentInstance, null) == null) {
|
||||
boolean oldTranslateButtonPrefValue =
|
||||
sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_TRANSLATE) + currentUserID + currentInstance, false);
|
||||
String[] translateButtonEntryValues = getResources().getStringArray(R.array.set_translate_button_entry_values);
|
||||
String newTranslateButtonValue;
|
||||
if (oldTranslateButtonPrefValue)
|
||||
newTranslateButtonValue = translateButtonEntryValues[1];
|
||||
else
|
||||
newTranslateButtonValue = translateButtonEntryValues[2];
|
||||
sharedpreferences.edit()
|
||||
.putString(getString(R.string.SET_TRANSLATE_BUTTON) + currentUserID + currentInstance, newTranslateButtonValue)
|
||||
.apply();
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
ActivityResultLauncher<String> permissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(), isGranted -> {
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ public class Account implements Serializable {
|
|||
if (display_name == null || display_name.isEmpty()) {
|
||||
display_name = username;
|
||||
}
|
||||
return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference, null, true, false);
|
||||
return SpannableHelper.convert(context, display_name, null, this, null, viewWeakReference, null, false, false);
|
||||
}
|
||||
|
||||
public synchronized Spannable getSpanDisplayNameEmoji(Activity activity, WeakReference<View> viewWeakReference) {
|
||||
|
|
|
|||
|
|
@ -1011,14 +1011,11 @@ public class SpannableHelper {
|
|||
|
||||
public static Spannable convertEmoji(Activity activity, String text, Account account, WeakReference<View> viewWeakReference) {
|
||||
|
||||
SpannableString initialContent;
|
||||
if (text == null) {
|
||||
return null;
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N)
|
||||
initialContent = new SpannableString(Html.fromHtml(text, Html.FROM_HTML_MODE_LEGACY));
|
||||
else
|
||||
initialContent = new SpannableString(Html.fromHtml(text));
|
||||
|
||||
SpannableString initialContent = new SpannableString(text);
|
||||
|
||||
SpannableStringBuilder content = new SpannableStringBuilder(initialContent);
|
||||
List<Emoji> emojiList = account.emojis;
|
||||
|
|
|
|||
|
|
@ -1709,15 +1709,15 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
|||
|
||||
switch (statusDraft.quote_approval_policy.toLowerCase()) {
|
||||
case "public" -> {
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_compose_visibility_public);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_public);
|
||||
statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.PUBLIC.name();
|
||||
}
|
||||
case "followers" -> {
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_people_alt_24);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_followers);
|
||||
statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.FOLLOWERS.name();
|
||||
}
|
||||
case "nobody" -> {
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_block_24);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_nobody);
|
||||
statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.NOBODY.name();
|
||||
}
|
||||
}
|
||||
|
|
@ -1770,17 +1770,17 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
|||
});
|
||||
holder.binding.buttonQuoteApprovalPolicyNoOne.setOnClickListener(v -> {
|
||||
holder.binding.quoteApprovalPolicyPanel.setVisibility(View.GONE);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_block_24);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_nobody);
|
||||
statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.NOBODY.name();
|
||||
});
|
||||
holder.binding.buttonQuoteApprovalPolicyFollowersOnly.setOnClickListener(v -> {
|
||||
holder.binding.quoteApprovalPolicyPanel.setVisibility(View.GONE);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_baseline_people_alt_24);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_followers);
|
||||
statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.FOLLOWERS.name();
|
||||
});
|
||||
holder.binding.buttonQuoteApprovalPolicyAnyone.setOnClickListener(v -> {
|
||||
holder.binding.quoteApprovalPolicyPanel.setVisibility(View.GONE);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_compose_visibility_public);
|
||||
holder.binding.buttonQuoteApprovalPolicy.setIconResource(R.drawable.ic_quote_policy_public);
|
||||
statusDraft.quote_approval_policy = MastodonHelper.quote_visibility.PUBLIC.name();
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import android.view.LayoutInflater;
|
|||
import android.view.MotionEvent;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
|
@ -126,7 +127,16 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter<RecyclerView.
|
|||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_up), (view, arguments) -> {
|
||||
int bindingAdapterPosition = viewHolder.getBindingAdapterPosition();
|
||||
if (bindingAdapterPosition > 0) onItemMove(bindingAdapterPosition, bindingAdapterPosition - 1);
|
||||
return true;
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_down), (view, arguments) -> {
|
||||
int bindingAdapterPosition = viewHolder.getBindingAdapterPosition();
|
||||
if (bindingAdapterPosition < bottomMenu.bottom_menu.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ import android.view.View;
|
|||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.lifecycle.ViewModelStoreOwner;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
|
@ -191,6 +192,16 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
|||
}
|
||||
return false;
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_up), (view, arguments) -> {
|
||||
int bindingAdapterPosition = viewHolder.getBindingAdapterPosition();
|
||||
if (bindingAdapterPosition > 0) onItemMove(bindingAdapterPosition, bindingAdapterPosition - 1);
|
||||
return true;
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(holder.binding.getRoot(), context.getString(R.string.move_timeline_down), (view, arguments) -> {
|
||||
int bindingAdapterPosition = viewHolder.getBindingAdapterPosition();
|
||||
if (bindingAdapterPosition < pinned.pinnedTimelines.size() - 1) onItemMove(bindingAdapterPosition, bindingAdapterPosition + 1);
|
||||
return true;
|
||||
});
|
||||
PinnedTimeline item = pinned.pinnedTimelines.get(position);
|
||||
if (item.type == Timeline.TimeLineEnum.TAG || item.type == Timeline.TimeLineEnum.REMOTE || item.type == Timeline.TimeLineEnum.LIST) {
|
||||
holder.binding.delete.setVisibility(View.VISIBLE);
|
||||
|
|
|
|||
|
|
@ -579,7 +579,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false);
|
||||
boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false);
|
||||
boolean displayBookmark = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, true);
|
||||
boolean displayTranslate = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_TRANSLATE) + MainActivity.currentUserID + MainActivity.currentInstance, false);
|
||||
String translateButton = sharedpreferences.getString(context.getString(R.string.SET_TRANSLATE_BUTTON) + MainActivity.currentUserID + MainActivity.currentInstance, "auto");
|
||||
String[] translateButtonEntryValues = context.getResources().getStringArray(R.array.set_translate_button_entry_values);
|
||||
boolean displayCounters = sharedpreferences.getBoolean(context.getString(R.string.SET_DISPLAY_COUNTER_FAV_BOOST), false);
|
||||
boolean removeLeftMargin = sharedpreferences.getBoolean(context.getString(R.string.SET_REMOVE_LEFT_MARGIN), false);
|
||||
boolean extraFeatures = sharedpreferences.getBoolean(context.getString(R.string.SET_EXTAND_EXTRA_FEATURES) + MainActivity.currentUserID + MainActivity.currentInstance, false);
|
||||
|
|
@ -969,8 +970,13 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
holder.binding.actionButtonFavorite.setInactiveImage(R.drawable.ic_round_star_border_24);
|
||||
holder.binding.actionButtonBookmark.setActiveImage(R.drawable.ic_round_bookmark_24);
|
||||
holder.binding.actionButtonBookmark.setInactiveImage(R.drawable.ic_round_bookmark_border_24);
|
||||
holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_round_repeat_active_24);
|
||||
holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_round_repeat_24);
|
||||
if (displayQuote) {
|
||||
holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_quote_or_boost_active);
|
||||
holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_quote_or_boost);
|
||||
} else {
|
||||
holder.binding.actionButtonBoost.setActiveImage(R.drawable.ic_round_repeat_active_24);
|
||||
holder.binding.actionButtonBoost.setInactiveImage(R.drawable.ic_round_repeat_24);
|
||||
}
|
||||
holder.binding.actionButtonFavorite.setActiveImageTint(R.color.marked_icon);
|
||||
holder.binding.actionButtonBoost.setActiveImageTint(R.color.boost_icon);
|
||||
holder.binding.actionButtonBookmark.setActiveImageTint(R.color.marked_icon);
|
||||
|
|
@ -1071,13 +1077,15 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
} else {
|
||||
holder.binding.actionButtonBookmark.setVisibility(View.GONE);
|
||||
}
|
||||
if (displayTranslate) {
|
||||
if (statusToDeal.language != null && statusToDeal.language.trim().length() > 0 && statusToDeal.language.equalsIgnoreCase(MyTransL.getLocale())) {
|
||||
if (translateButton.equals(translateButtonEntryValues[0])) { // Show
|
||||
holder.binding.actionButtonTranslate.setVisibility(View.VISIBLE);
|
||||
} else if (translateButton.equals(translateButtonEntryValues[1])) { // Auto
|
||||
if (statusToDeal.language != null && !statusToDeal.language.trim().isEmpty() && statusToDeal.language.equalsIgnoreCase(MyTransL.getLocale())) {
|
||||
holder.binding.actionButtonTranslate.setVisibility(View.GONE);
|
||||
} else {
|
||||
holder.binding.actionButtonTranslate.setVisibility(View.VISIBLE);
|
||||
}
|
||||
} else {
|
||||
} else if (translateButton.equals(translateButtonEntryValues[2])) { // Hide
|
||||
holder.binding.actionButtonTranslate.setVisibility(View.GONE);
|
||||
}
|
||||
//--- ACTIONS ---
|
||||
|
|
|
|||
|
|
@ -88,10 +88,10 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen
|
|||
boolean checked = sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, true);
|
||||
SET_DISPLAY_BOOKMARK.setChecked(checked);
|
||||
}
|
||||
SwitchPreferenceCompat SET_DISPLAY_TRANSLATE = findPreference(getString(R.string.SET_DISPLAY_TRANSLATE));
|
||||
if (SET_DISPLAY_TRANSLATE != null) {
|
||||
boolean checked = sharedpreferences.getBoolean(getString(R.string.SET_DISPLAY_TRANSLATE) + MainActivity.currentUserID + MainActivity.currentInstance, false);
|
||||
SET_DISPLAY_TRANSLATE.setChecked(checked);
|
||||
ListPreference SET_TRANSLATE_BUTTON = findPreference(getString(R.string.SET_TRANSLATE_BUTTON));
|
||||
if (SET_TRANSLATE_BUTTON != null) {
|
||||
String value = sharedpreferences.getString(getString(R.string.SET_TRANSLATE_BUTTON) + MainActivity.currentUserID + MainActivity.currentInstance, null);
|
||||
SET_TRANSLATE_BUTTON.setValue(value);
|
||||
}
|
||||
|
||||
SwitchPreferenceCompat SET_DISPLAY_QUOTE = findPreference(getString(R.string.SET_DISPLAY_QUOTE));
|
||||
|
|
@ -125,10 +125,10 @@ public class FragmentTimelinesSettings extends PreferenceFragmentCompat implemen
|
|||
editor.putBoolean(getString(R.string.SET_DISPLAY_BOOKMARK) + MainActivity.currentUserID + MainActivity.currentInstance, SET_DISPLAY_BOOKMARK.isChecked());
|
||||
}
|
||||
}
|
||||
if (key.compareToIgnoreCase(getString(R.string.SET_DISPLAY_TRANSLATE)) == 0) {
|
||||
SwitchPreferenceCompat SET_DISPLAY_TRANSLATE = findPreference(getString(R.string.SET_DISPLAY_TRANSLATE));
|
||||
if (SET_DISPLAY_TRANSLATE != null) {
|
||||
editor.putBoolean(getString(R.string.SET_DISPLAY_TRANSLATE) + MainActivity.currentUserID + MainActivity.currentInstance, SET_DISPLAY_TRANSLATE.isChecked());
|
||||
if (key.compareToIgnoreCase(getString(R.string.SET_TRANSLATE_BUTTON)) == 0) {
|
||||
ListPreference SET_TRANSLATE_BUTTON = findPreference(getString(R.string.SET_TRANSLATE_BUTTON));
|
||||
if (SET_TRANSLATE_BUTTON != null) {
|
||||
editor.putString(getString(R.string.SET_TRANSLATE_BUTTON) + MainActivity.currentUserID + MainActivity.currentInstance, SET_TRANSLATE_BUTTON.getValue());
|
||||
}
|
||||
}
|
||||
if (key.compareToIgnoreCase(getString(R.string.SET_DISPLAY_QUOTE)) == 0) {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m17.895,17h-10v-1.79c0,-0.45 -0.54,-0.67 -0.85,-0.35l-2.79,2.79c-0.2,0.2 -0.2,0.51 0,0.71l2.79,2.79c0.31,0.31 0.85,0.09 0.85,-0.36v-1.79h11c0.55,0 1,-0.45 1,-1v-4c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m8.067,10.848c0.415,0 0.798,-0.236 0.977,-0.603l1.156,-2.313c0.114,-0.228 0.171,-0.472 0.171,-0.725v-3.689c0,-0.448 -0.366,-0.814 -0.814,-0.814h-3.257c-0.448,0 -0.814,0.366 -0.814,0.814v3.257c0,0.448 0.366,0.814 0.814,0.814h1.628l-0.839,1.677c-0.366,0.725 0.163,1.58 0.977,1.58zM16.21,10.848c0.415,0 0.798,-0.236 0.977,-0.603l1.156,-2.313c0.114,-0.228 0.171,-0.472 0.171,-0.725v-3.689c0,-0.448 -0.366,-0.814 -0.814,-0.814h-3.257c-0.448,0 -0.814,0.366 -0.814,0.814v3.257c0,0.448 0.366,0.814 0.814,0.814h1.628l-0.839,1.677c-0.366,0.725 0.163,1.58 0.977,1.58z" />
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@color/boost_icon"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m17.895,17h-10v-1.79c0,-0.45 -0.54,-0.67 -0.85,-0.35l-2.79,2.79c-0.2,0.2 -0.2,0.51 0,0.71l2.79,2.79c0.31,0.31 0.85,0.09 0.85,-0.36v-1.79h11c0.55,0 1,-0.45 1,-1v-4c0,-0.55 -0.45,-1 -1,-1s-1,0.45 -1,1z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m8.067,10.848c0.415,0 0.798,-0.236 0.977,-0.603l1.156,-2.313c0.114,-0.228 0.171,-0.472 0.171,-0.725v-3.689c0,-0.448 -0.366,-0.814 -0.814,-0.814h-3.257c-0.448,0 -0.814,0.366 -0.814,0.814v3.257c0,0.448 0.366,0.814 0.814,0.814h1.628l-0.839,1.677c-0.366,0.725 0.163,1.58 0.977,1.58zM16.21,10.848c0.415,0 0.798,-0.236 0.977,-0.603l1.156,-2.313c0.114,-0.228 0.171,-0.472 0.171,-0.725v-3.689c0,-0.448 -0.366,-0.814 -0.814,-0.814h-3.257c-0.448,0 -0.814,0.366 -0.814,0.814v3.257c0,0.448 0.366,0.814 0.814,0.814h1.628l-0.839,1.677c-0.366,0.725 0.163,1.58 0.977,1.58z" />
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m7.33,13.13c-1.37,0.93 -2.33,2.19 -2.33,3.87v3h-4v-3c0,-2.18 3.57,-3.47 6.33,-3.87z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m7.336,8.033 l-0.869,1.736v0.004h-0.002v0.002l-0.004,0.004 -0.002,0.006c-0.142,0.287 -0.325,0.546 -0.537,0.771 0.734,0.882 1.84,1.443 3.078,1.443 0.47,0 0.91,-0.1 1.33,-0.24 -0.065,-0.081 -0.127,-0.162 -0.188,-0.246 -1.597,-0.311 -2.686,-1.772 -2.607,-3.334 -0.069,-0.046 -0.135,-0.095 -0.199,-0.146z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m15.096,4.002v2.072c0,0.589 -0.141,1.154 -0.395,1.66l-1.016,2.035c-0.002,0.003 -0.002,0.005 -0.004,0.008l-0.004,0.006c-0.276,0.556 -0.699,1.005 -1.207,1.314a4,4 0,0 0,6.529 -3.098,4 4,0 0,0 -3.904,-3.998z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m15,13c2.67,0 8,1.34 8,4v3h-16v-3c0,-2.66 5.33,-4 8,-4z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m1.995,1.811c-0.548,0 -0.995,0.447 -0.995,0.995v2.887c0,0.548 0.447,0.995 0.995,0.995h1.002l-0.546,1.091c-0.417,0.825 0.184,1.796 1.109,1.796 0.47,0 0.906,-0.268 1.109,-0.685l1.025,-2.05c0.12,-0.24 0.182,-0.499 0.182,-0.765v-3.269c0,-0.548 -0.447,-0.995 -0.995,-0.995zM9.213,1.811c-0.548,0 -0.995,0.447 -0.995,0.995v2.887c0,0.548 0.447,0.995 0.995,0.995h1.002l-0.546,1.091c-0.417,0.825 0.184,1.796 1.109,1.796 0.47,0 0.906,-0.268 1.109,-0.685l1.025,-2.05c0.12,-0.24 0.182,-0.499 0.182,-0.765v-3.269c0,-0.548 -0.447,-0.995 -0.995,-0.995z" />
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m15.906,2.904v2.205c0.418,0.221 0.814,0.479 1.184,0.77l-1.379,1.379c-0.055,0.164 -0.122,0.323 -0.199,0.477l-1.016,2.035c-0.001,0.003 -0.002,0.005 -0.004,0.008l-0.004,0.006c-0.549,1.107 -1.687,1.791 -2.898,1.791 -0.064,0 -0.127,-0.002 -0.189,-0.006l-5.522,5.522c-1.06,-1.35 -1.689,-3.05 -1.689,-4.9 0,-0.208 0.008,-0.415 0.023,-0.619 -0.75,-0.035 -1.413,-0.316 -1.93,-0.752 -0.061,0.449 -0.094,0.906 -0.094,1.371 0,5.52 4.48,10 10,10 5.52,0 10,-4.48 10,-10 0,-4.207 -2.602,-7.809 -6.283,-9.285zM18.5,7.289c1.06,1.35 1.689,3.05 1.689,4.9 0,4.42 -3.58,8 -8,8 -1.85,0 -3.55,-0.629 -4.9,-1.689l11.211,-11.211z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m2.806,1.811c-0.548,0 -0.995,0.447 -0.995,0.995v2.887c0,0.548 0.447,0.995 0.995,0.995h1.002l-0.546,1.091c-0.417,0.825 0.184,1.796 1.109,1.796 0.47,0 0.906,-0.268 1.109,-0.685l1.025,-2.05c0.12,-0.24 0.182,-0.499 0.182,-0.765v-3.269c0,-0.548 -0.447,-0.995 -0.995,-0.995zM10.023,1.811c-0.548,0 -0.995,0.447 -0.995,0.995v2.887c0,0.548 0.447,0.995 0.995,0.995h1.002l-0.546,1.091c-0.417,0.825 0.184,1.796 1.109,1.796 0.47,0 0.906,-0.268 1.109,-0.685l1.025,-2.05c0.12,-0.24 0.182,-0.499 0.182,-0.765v-3.269c0,-0.548 -0.447,-0.995 -0.995,-0.995z" />
|
||||
</vector>
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m15.906,2.793c0,0.005 0,0.009 0,0.014v2.219c2.441,1.371 4.094,3.982 4.094,6.975 0,2.08 -0.8,3.971 -2.1,5.391 -0.26,-0.81 -1,-1.391 -1.9,-1.391h-1v-3c0,-0.55 -0.45,-1 -1,-1h-6v-2h0.805c-0.323,-0.539 -0.492,-1.171 -0.459,-1.82 -0.069,-0.046 -0.135,-0.095 -0.199,-0.146l-0.869,1.736v0.002,0.002h-0.002v0.002l-0.002,0.002 -0.002,0.002 -0.002,0.006c-0.388,0.783 -1.071,1.352 -1.865,1.619l3.596,3.596v1c0,1.1 0.9,2 2,2v1.93c-3.95,-0.49 -7,-3.85 -7,-7.93 0,-0.15 0.005,-0.299 0.014,-0.445 -0.762,-0.081 -1.424,-0.42 -1.922,-0.912 -0.06,0.444 -0.092,0.897 -0.092,1.357 0,5.52 4.48,10 10,10s10,-4.48 10,-10c0,-4.135 -2.513,-7.685 -6.094,-9.207z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m2.806,1.811c-0.548,0 -0.995,0.447 -0.995,0.995v2.887c0,0.548 0.447,0.995 0.995,0.995h1.002l-0.546,1.091c-0.417,0.825 0.184,1.796 1.109,1.796 0.47,0 0.906,-0.268 1.109,-0.685l1.025,-2.05c0.12,-0.24 0.182,-0.499 0.182,-0.765v-3.269c0,-0.548 -0.447,-0.995 -0.995,-0.995zM10.023,1.811c-0.548,0 -0.995,0.447 -0.995,0.995v2.887c0,0.548 0.447,0.995 0.995,0.995h1.002l-0.546,1.091c-0.417,0.825 0.184,1.796 1.109,1.796 0.47,0 0.906,-0.268 1.109,-0.685l1.025,-2.05c0.12,-0.24 0.182,-0.499 0.182,-0.765v-3.269c0,-0.548 -0.447,-0.995 -0.995,-0.995z" />
|
||||
</vector>
|
||||
|
|
@ -395,7 +395,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:text="@string/no_one"
|
||||
android:textAlignment="textStart"
|
||||
app:icon="@drawable/ic_baseline_block_24" />
|
||||
app:icon="@drawable/ic_quote_policy_nobody" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/quote_approval_policy_followers_only"
|
||||
|
|
@ -405,7 +405,7 @@
|
|||
android:layout_marginTop="0dp"
|
||||
android:text="@string/followers_only"
|
||||
android:textAlignment="textStart"
|
||||
app:icon="@drawable/ic_baseline_people_alt_24" />
|
||||
app:icon="@drawable/ic_quote_policy_followers" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/quote_approval_policy_anyone"
|
||||
|
|
@ -414,7 +414,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:text="@string/anyone"
|
||||
android:textAlignment="textStart"
|
||||
app:icon="@drawable/ic_compose_visibility_public" />
|
||||
app:icon="@drawable/ic_quote_policy_public" />
|
||||
|
||||
</com.google.android.material.button.MaterialButtonToggleGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -257,6 +257,7 @@
|
|||
android:layout_marginStart="48dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:textIsSelectable="true"
|
||||
tools:text="Warning: Lorem Ipsum below" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
|
|
|
|||
|
|
@ -239,7 +239,7 @@
|
|||
android:contentDescription="@string/change_visibility"
|
||||
android:insetLeft="0dp"
|
||||
android:insetRight="0dp"
|
||||
app:icon="@drawable/ic_baseline_people_alt_24" />
|
||||
app:icon="@drawable/ic_quote_policy_followers" />
|
||||
|
||||
</com.google.android.material.button.MaterialButtonToggleGroup>
|
||||
|
||||
|
|
@ -475,7 +475,7 @@
|
|||
android:minHeight="36dp"
|
||||
android:text="@string/no_one"
|
||||
android:textAlignment="textStart"
|
||||
app:icon="@drawable/ic_baseline_block_24" />
|
||||
app:icon="@drawable/ic_quote_policy_nobody" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_quote_approval_policy_followers_only"
|
||||
|
|
@ -487,7 +487,7 @@
|
|||
android:minHeight="36dp"
|
||||
android:text="@string/followers_only"
|
||||
android:textAlignment="textStart"
|
||||
app:icon="@drawable/ic_baseline_people_alt_24" />
|
||||
app:icon="@drawable/ic_quote_policy_followers" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/button_quote_approval_policy_anyone"
|
||||
|
|
@ -499,7 +499,7 @@
|
|||
android:minHeight="36dp"
|
||||
android:text="@string/anyone"
|
||||
android:textAlignment="textStart"
|
||||
app:icon="@drawable/ic_compose_visibility_public" />
|
||||
app:icon="@drawable/ic_quote_policy_public" />
|
||||
|
||||
</com.google.android.material.button.MaterialButtonToggleGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -1129,4 +1129,5 @@
|
|||
<string name="who_can_quote">Qui pot citar</string>
|
||||
<string name="no_one">Ningú</string>
|
||||
<string name="anyone">Tothom</string>
|
||||
<string name="set_translate_button">Botó de traducció</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<string name="tags">Tagy</string>
|
||||
<string name="save">Uložit</string>
|
||||
<string name="instance">Instance</string>
|
||||
<string name="instance_example">Instance: mastodon.social</string>
|
||||
<string name="instance_example">Např.: mastodon.social</string>
|
||||
<string name="toast_account_changed" formatted="false">Nyní používáte účet %1$s</string>
|
||||
<string name="add_account">Přidat účet</string>
|
||||
<string name="clipboard">Obsah zprávy byl zkopírován do schránky</string>
|
||||
|
|
@ -1149,4 +1149,6 @@
|
|||
<string name="set_mention_booster_indication">Při odpovídání na boost bude v odpovědi zmíněna osoba, která boostovala původní zprávu</string>
|
||||
<string name="underline_bottom_hashtags">Zvýraznit spodní hashtagy</string>
|
||||
<string name="remaining_tags">…a dalších %d</string>
|
||||
<string name="default_who_can_quote">Výchozí výběr pro toho, kdo může citovat</string>
|
||||
<string name="set_translate_button">Tlačítko překladu</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<string name="tags">Etiquetas</string>
|
||||
<string name="save">Guardar</string>
|
||||
<string name="instance">Instancia</string>
|
||||
<string name="instance_example">Instancia: mastodon.social</string>
|
||||
<string name="instance_example">P.ej.: mastodon.social</string>
|
||||
<string name="toast_account_changed" formatted="false">Ahora funciona con la cuenta %1$s</string>
|
||||
<string name="add_account">Agregar una cuenta</string>
|
||||
<string name="clipboard">El contenido del mensaje ha sido copiado al portapapeles</string>
|
||||
|
|
@ -1012,7 +1012,7 @@
|
|||
<string name="card_picture">Imagen de tarjeta</string>
|
||||
<string name="notif_display_reblogs">Impulsos</string>
|
||||
<string name="set_mention_at_top_indication">Cuando respondas las menciones serán añadidas al principio del mensaje</string>
|
||||
<string name="show_content">Mostrar contenido ></string>
|
||||
<string name="show_content"><![CDATA[Mostrar contenido >]]></string>
|
||||
<string name="show_self_replies">Mostrar auto respuestas</string>
|
||||
<string name="show_self_boosts">Mostrar auto impulsos</string>
|
||||
<string name="show_my_messages">Mostrar mis mensajes</string>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<string name="tags">Sildid</string>
|
||||
<string name="save">Salvesta</string>
|
||||
<string name="instance">Teenuse server</string>
|
||||
<string name="instance_example">Koduserver: mastodon.social</string>
|
||||
<string name="instance_example">Näiteks: mastodon.social</string>
|
||||
<string name="replies">Vastused</string>
|
||||
<string name="username">Kasutajanimi</string>
|
||||
<string name="drafts">Kavandid</string>
|
||||
|
|
@ -155,4 +155,28 @@
|
|||
<string name="toast_unbookmark">Sõnum eemaldati sinu järjehoidjate seast!</string>
|
||||
<string name="set_toots_page">Sõnumite arv ühel laadimiskorral</string>
|
||||
<string name="direct_message">Otsesõnum</string>
|
||||
<string name="cd_hide_media">Peida meedium</string>
|
||||
<string name="cd_show_media">Näita meediumi</string>
|
||||
<string name="choose_accounts">Vali kasutajakonto</string>
|
||||
<string name="select_accounts">Vali mõned kasutajakontod</string>
|
||||
<string name="remove_draft">Kas kustutad kavandi?</string>
|
||||
<string name="upload_form_description">Kirjelda seda nägemispuudega inimeste jaoks</string>
|
||||
<string name="instance_no_description">Kirjeldust pole saadaval!</string>
|
||||
<string name="notif_mention">mainis sind</string>
|
||||
<string name="notif_reblog">andis sinu olekule hoogu</string>
|
||||
<string name="notif_favourite">lisas sinu oleku lemmikuks</string>
|
||||
<string name="notif_follow">hakkas sind jälgima</string>
|
||||
<string name="notif_follow_request">küsis, kas ta võib sind jälgida</string>
|
||||
<string name="delete_notification_ask_all">Kas kustutad kõik teavitused?</string>
|
||||
<string name="delete_notification_all">Kõik teavitused on kustutatud!</string>
|
||||
<string name="followers">Jälgijad</string>
|
||||
<string name="client_error">Kliendi tunnust pole võimalik tuvastada!</string>
|
||||
<string name="toast_block">See kasutajakonto on blokeeritud!</string>
|
||||
<string name="toast_unblock">See kasutajakonto enam pole blokeeritud!</string>
|
||||
<string name="toast_mute">See kasutajakonto on summutatud!</string>
|
||||
<string name="toast_unmute">See kasutajakonto enam pole summutatud!</string>
|
||||
<string name="toast_follow">See kasutajakonto on nüüd jälgimisel!</string>
|
||||
<string name="toast_unfollow">See kasutajakonto enam pole jälgimisel!</string>
|
||||
<string name="toast_error">Vaat, kus lops! Tekkis üks viga!</string>
|
||||
<string name="toast_error_internet">Internetiühendus puudub!</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<string name="tags">Étiquettes</string>
|
||||
<string name="save">Sauvegarder</string>
|
||||
<string name="instance">Instance</string>
|
||||
<string name="instance_example">Instance : mastodon.social</string>
|
||||
<string name="instance_example">Ex. : mastodon.social</string>
|
||||
<string name="toast_account_changed" formatted="false">Utilisation du compte %1$s</string>
|
||||
<string name="add_account">Ajouter un compte</string>
|
||||
<string name="clipboard">Le contenu du message a été copié dans le presse-papier</string>
|
||||
|
|
@ -127,7 +127,7 @@
|
|||
<string name="toot_select_image_error">Une erreur s’est produite lors de la sélection du média !</string>
|
||||
<string name="toot_delete_media">Supprimer le média ?</string>
|
||||
<string name="toot_error_no_content">Votre message est vide !</string>
|
||||
<string name="toot_sent">Le message a été envoyé !</string>
|
||||
<string name="toot_sent">Le message a été envoyé !</string>
|
||||
<string name="toot_sensitive">Contenu sensible ?</string>
|
||||
<string name="no_draft">Aucun brouillon !</string>
|
||||
<string name="choose_accounts">Choisissez un compte</string>
|
||||
|
|
@ -626,7 +626,7 @@
|
|||
<string name="more_actions">Autres actions</string>
|
||||
<string name="types_of_notifications_to_display">Types de notifications à afficher</string>
|
||||
<string name="set_unfollow_validation_title">Confirmer les désabonnements</string>
|
||||
<string name="message_has_been_sent">Le message a été envoyé !</string>
|
||||
<string name="message_has_been_sent">Le message a été envoyé !</string>
|
||||
<string name="poll_type">Type de sondage :</string>
|
||||
<string name="poll_duration">Durée du sondage :</string>
|
||||
<string name="set_accounts_page">Nombre de comptes par chargement</string>
|
||||
|
|
|
|||
|
|
@ -1125,4 +1125,5 @@
|
|||
<string name="who_can_quote">Quen pode citar</string>
|
||||
<string name="no_one">Ninguén</string>
|
||||
<string name="anyone">Calquera</string>
|
||||
<string name="set_translate_button">Botón para traducir</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1130,4 +1130,5 @@
|
|||
<string name="who_can_quote">見積可能者</string>
|
||||
<string name="no_one">誰も</string>
|
||||
<string name="anyone">誰か</string>
|
||||
<string name="set_translate_button">翻訳ボタン</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1138,4 +1138,7 @@
|
|||
<string name="no_one">Ніхто</string>
|
||||
<string name="anyone">Будь-хто</string>
|
||||
<string name="default_who_can_quote">Вибір за замовчуванням для тих, хто може котирувати</string>
|
||||
<string name="set_translate_button">Кнопка перекладу</string>
|
||||
<string name="move_timeline_up">Перемістити часову шкалу вгору</string>
|
||||
<string name="move_timeline_down">Перемістити часову шкалу вниз</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1128,4 +1128,7 @@
|
|||
<string name="no_one">无人</string>
|
||||
<string name="anyone">任何人</string>
|
||||
<string name="default_who_can_quote">谁可以引用的默认选择</string>
|
||||
<string name="set_translate_button">翻译按钮</string>
|
||||
<string name="move_timeline_up">上移时间轴</string>
|
||||
<string name="move_timeline_down">下移时间轴</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -483,6 +483,8 @@
|
|||
<string name="reorder_list_deleted">List permanently deleted</string>
|
||||
<string name="reorder_instance_removed">Followed instance removed</string>
|
||||
<string name="reorder_tag_removed">Pinned tag removed</string>
|
||||
<string name="move_timeline_up">Move timeline up</string>
|
||||
<string name="move_timeline_down">Move timeline down</string>
|
||||
<string name="undo">Undo</string>
|
||||
<string name="warning_main_timeline">Main timelines can only be hidden!</string>
|
||||
<string name="set_sensitive_content">Always mark media as sensitive</string>
|
||||
|
|
@ -772,6 +774,16 @@
|
|||
<string name="no_account_in_list">No accounts found for this list!</string>
|
||||
<string name="scheduled">Scheduled</string>
|
||||
|
||||
<string-array name="set_translate_button_entries">
|
||||
<item>Show</item>
|
||||
<item>Auto (depending on post language)</item>
|
||||
<item>Hide</item>
|
||||
</string-array>
|
||||
<string-array name="set_translate_button_entry_values" translatable="false">
|
||||
<item>show</item>
|
||||
<item>auto</item>
|
||||
<item>hide</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="set_thread_message_value">
|
||||
<item>Ask</item>
|
||||
|
|
@ -1268,6 +1280,7 @@
|
|||
<string name="SET_DISPLAY_REACTIONS" translatable="false">SET_DISPLAY_REACTIONS</string>
|
||||
|
||||
<string name="SET_DISPLAY_TRANSLATE" translatable="false">SET_DISPLAY_TRANSLATE</string>
|
||||
<string name="SET_TRANSLATE_BUTTON" translatable="false">SET_TRANSLATE_BUTTON</string>
|
||||
<string name="SET_POST_FORMAT" translatable="false">SET_POST_FORMAT</string>
|
||||
<string name="SET_COMPOSE_LOCAL_ONLY" translatable="false">SET_COMPOSE_LOCAL_ONLY</string>
|
||||
|
||||
|
|
@ -1383,6 +1396,7 @@
|
|||
<string name="poll_duration">Poll duration:</string>
|
||||
<string name="set_display_bookmark_indication">Always display bookmark button</string>
|
||||
<string name="set_display_translate_indication">Always display translate button</string>
|
||||
<string name="set_translate_button">Translate button</string>
|
||||
<string name="display">Display</string>
|
||||
<string name="bottom_menu">Bottom menu</string>
|
||||
<string name="top_menu">Top bar menu</string>
|
||||
|
|
|
|||
|
|
@ -142,12 +142,13 @@
|
|||
app:key="@string/SET_PIXELFED_PRESENTATION"
|
||||
app:singleLineTitle="false"
|
||||
app:title="@string/set_pixelfed_presentation" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="@string/SET_DISPLAY_TRANSLATE"
|
||||
app:singleLineTitle="false"
|
||||
app:title="@string/set_display_translate_indication" />
|
||||
<ListPreference
|
||||
android:entries="@array/set_translate_button_entries"
|
||||
android:entryValues="@array/set_translate_button_entry_values"
|
||||
android:title="@string/set_translate_button"
|
||||
app:key="@string/SET_TRANSLATE_BUTTON"
|
||||
app:icon="@drawable/ic_baseline_translate_24"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
app:iconSpaceReserved="false"
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Fedilab: cliente de Android para acceder al Fediverso (microblogging, compartición de fotos y alojamiento de vídeo).
|
||||
Fedilab es un cliente multifuncional de Android para acceder al Fediverso distribuido, que consiste en microblogueo, compartición de fotos y alojamiento de vídeos.
|
||||
|
|
|
|||
23
src/fdroid/fastlane/metadata/android/et/full_description.txt
Normal file
23
src/fdroid/fastlane/metadata/android/et/full_description.txt
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
Rakendus toetab järgmisi võrgustikke:
|
||||
- Mastodon, Peertube, Pixelfed, Misskey, GNU Social, Pleroma, Friendica
|
||||
|
||||
Rakenduse mõned olulised funktsionaalsused:
|
||||
- Jutulõngade koostamine
|
||||
- Mitme kasutajakonto tugi
|
||||
- Sõnumite saatmise ajastamine nutiseadme poolel
|
||||
- Kaugserverite jälgimine ja nendega suhestumine
|
||||
- Kasutajakontode ülesed tegevused pika vajutusega
|
||||
- Tõlkimise võimalus
|
||||
- Mitu valikut andmete automaatseks uuenduseks
|
||||
- Tõuketeavitused UnifiedPushi abil (sealhulgas FDroidi versioonis ka ntfy)
|
||||
- Ühenduse säilitamine reaalajas teavituste jaoks
|
||||
- Viivitusega teavitused (ühenduse loomine iga 30 sekundi järel)
|
||||
- Youtube'i ja Twitteri linkide asendamine vastavalt Invidiouse ja Nitteri serveri linkidega
|
||||
- Kujunduste kohandamine, import, eksport ja kirjeldamine
|
||||
- Rakenduse andmebaasi eksport ja import
|
||||
- Emojide valija ja kohandatud emojid
|
||||
- Mitu erinevat käivitusikooni
|
||||
- Mastodoni sõnumite detailse filtreerimise võimalused
|
||||
- mastoarti sildiga kunsti ajajoone kuvamine
|
||||
- Mastodoni sõnumite eksport
|
||||
- Jagatavate võrguaadresside muutmine jagamiseks teiste seadmetega
|
||||
14
src/fdroid/fastlane/metadata/android/fr/changelogs/500.txt
Normal file
14
src/fdroid/fastlane/metadata/android/fr/changelogs/500.txt
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
Ajouté :
|
||||
- Trois nouvelles icônes d'application (Pride, Rose, et Pirate)
|
||||
- Conservation des positions dans les conversations distantes
|
||||
|
||||
Réparé :
|
||||
- Markdown: arrêt du parsing des tags et support du text barré
|
||||
- Le curseur est plus visible lors de l'ecriture
|
||||
- Les limites de caractères des instances modifiées ignorées
|
||||
- Les tabs dans les profils
|
||||
- Les tags n'étaient pas clickables dans certaines langues
|
||||
- Bug avec les comptes ayant énormément de followers
|
||||
- Crash avec plusieurs gifs dans le même message
|
||||
- Comptage du maximum de caracteres
|
||||
- Quelques crashs
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
Ajouts :
|
||||
- Support d'Android 14
|
||||
- Séparation automatiques des longs messages dans les threads (par défaut : DEMANDER)
|
||||
- Les liens et medias sonts clickables lors de l'écriture
|
||||
|
||||
Réparé :
|
||||
- Évite l'erreur 429 avec NTFY
|
||||
- Plusieurs crash sont réparés
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
Ajouts :
|
||||
- Support d'Android 14
|
||||
- Séparation automatiques des longs messages dans les threads (par défaut : DEMANDER)
|
||||
- Les liens et medias sonts clickables lors de l'écriture
|
||||
|
||||
Réparé :
|
||||
- Évite l'erreur 429 avec NTFY
|
||||
- Plusieurs crash sont réparés
|
||||
Loading…
Reference in a new issue