Compare commits
91 commits
3.34.0-bet
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
8e2d0452e7 | ||
|
19c66f8b90 | ||
|
dcd2553d40 | ||
|
e212b39590 | ||
|
93b788b74e | ||
|
61d0372eda | ||
|
b06a8eb53a | ||
|
df0b63836f | ||
|
45b9660e5d | ||
|
6cc855cc9b | ||
|
361a2452fb | ||
|
261575ed14 | ||
|
4a5a4347cf | ||
|
4152687ca9 | ||
|
415ec8cbac | ||
|
7baaecedd6 | ||
|
33921d4eb2 | ||
|
c855abd2b5 | ||
|
80093f3863 | ||
|
7a761c5b97 | ||
|
9801431aa4 | ||
|
e6e7e7e435 | ||
|
6c225e2dbb | ||
|
38d01bc488 | ||
|
0d60e55565 | ||
|
61b2c7b1d4 | ||
|
3d03fd3886 | ||
|
bd987fe7f1 | ||
|
dbc5bae868 | ||
|
3ad57e4683 | ||
|
45ceea25e1 | ||
|
8e5588e523 | ||
|
5dc2df787f | ||
|
cf8e5e5c8f | ||
|
88e6fdb485 | ||
|
7a461ea68e | ||
|
55ddf6957a | ||
|
da879029cc | ||
|
f9e9445ddd | ||
|
9584e32298 | ||
|
49f4c6d699 | ||
|
1c28b200a9 | ||
|
4e6ef77e60 | ||
|
36ae421518 | ||
|
226b821368 | ||
|
f728c33858 | ||
|
00c9788689 | ||
|
26b46299ee | ||
|
abe33df515 | ||
|
a25b67ef4c | ||
|
b31698f859 | ||
|
9e39e337dc | ||
|
bcaff419dd | ||
|
cf97a75138 | ||
|
6f58363e82 | ||
|
d9288de31b | ||
|
d73a8a8325 | ||
|
6b168c302a | ||
|
e8773dbd32 | ||
|
3496a46052 | ||
|
f5df7cefff | ||
|
264188e484 | ||
|
c8b753206b | ||
|
2477f5b75a | ||
|
54dd37bd22 | ||
|
f0268777d1 | ||
|
c34172c0c7 | ||
|
038fb6bfc2 | ||
|
4672c48c93 | ||
|
de01f2b000 | ||
|
c4711e6592 | ||
|
df5ab1db37 | ||
|
82ab8a1415 | ||
|
43193951c2 | ||
|
37b744b3e5 | ||
|
ab6a2251b5 | ||
|
55597bc5c3 | ||
|
a81d07056b | ||
|
329867f8d4 | ||
|
ff98cc2342 | ||
|
cfcdd92dc1 | ||
|
58e2457cf5 | ||
|
efe5718526 | ||
|
b4884b330e | ||
|
0e6409d7d8 | ||
|
8ff3566498 | ||
|
cd995da607 | ||
|
6dc779e03d | ||
|
fe4402b4b9 | ||
|
b0a896bef1 | ||
|
d62d04fac2 |
|
@ -13,8 +13,8 @@ android {
|
|||
defaultConfig {
|
||||
minSdk 21
|
||||
targetSdk 34
|
||||
versionCode 536
|
||||
versionName "3.34.0-beta-2"
|
||||
versionCode 538
|
||||
versionName "3.34.1"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
flavorDimensions "default"
|
||||
|
|
|
@ -447,6 +447,26 @@
|
|||
</activity-alias>
|
||||
|
||||
|
||||
<activity-alias
|
||||
android:name=".activities.MainActivity.BubblesPS"
|
||||
android:enabled="false"
|
||||
android:exported="true"
|
||||
android:icon="@mipmap/ic_launcher_bubbles_ps"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_launcher_bubbles_ps_round"
|
||||
android:targetActivity=".activities.MainActivity">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW" />
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.app.shortcuts"
|
||||
android:resource="@xml/compose_shortcuts" />
|
||||
</activity-alias>
|
||||
|
||||
|
||||
<activity-alias
|
||||
android:name=".activities.MainActivity.BubblesPeaGreen"
|
||||
android:enabled="false"
|
||||
|
|
|
@ -1,8 +1,13 @@
|
|||
[
|
||||
{
|
||||
"version": "3.34.0-beta-2",
|
||||
"code": "536",
|
||||
"note": "Added:\n- 3-Dots menu for remote conversations (Federation in background)\n- Quote support for Mastodon\n- Long press on tags: Follow / Mute\n\nChanged:\n- Improve accessibility in media activity\n- Improve content descriptions\n- Update languages\n- Update launcher icons, add more monochrome icons\n- Limit the number of highlighted hashtags at the bottom of messages\n\nFixed:\n- Fix text selection stop working when composing\n- Fix a crash with threads\n- Fix empty Hashtags"
|
||||
"version": "3.34.1",
|
||||
"code": "538",
|
||||
"note": "Added:\n- Add content descriptions to tabs in top bar\n- Add accessibility action to toggle media sensitivity of posts in timelines\n- Add accessibility actions to translate, download, share in media viewer\n- Add a language indicator to focused status\n- Add Persian language to \"Change the language\" preference\n- Add new app logo\n\nChanged:\n- Show placeholders while profile pictures are loading\n- Update bottom navigation tab titles\n- Improve accessibility of translated content\n- Update list of tracking parameters used for \"Remove UTM parameters\"\n- Use 'Tracking' instead of 'UTM'\n- Improve accessibility in Manage timelines page\n- Make the show/hide media button larger\n- Update about page\n\nFixed:\n- Bottom hashtags in bios disappear when \"Highlight bottom hashtags\" enabled\n- \"Use an alternative frontend\" breaks Medium link\n- Tapping publish button multiple times publishes status multiple times\n- Alt text popup does not resize when swiping\n- Video controls not visible in light theme\n- Profile picture appears on left side of title in conversation page in RTL mode\n- Some crashes\n"
|
||||
},
|
||||
{
|
||||
"version": "3.34.0",
|
||||
"code": "537",
|
||||
"note": "Added:\n- 3-Dots menu for remote conversations (Federation in background)\n- Quote support for Mastodon\n- Long press on tags: Follow / Mute\n\nChanged:\n- Improve accessibility in media activity\n- Improve content descriptions\n- Update languages\n- Update launcher icons, add more monochrome icons\n- Limit the number of highlighted hashtags at the bottom of messages\n\nFixed:\n- Fix text selection stop working when composing\n- Fix a crash with threads\n- Fix empty Hashtags\n- Fix automatically expand media does not work with the Pixelfed presentation\n- Fix a crash with fit preview images feature"
|
||||
},
|
||||
{
|
||||
"version": "3.33.1",
|
||||
|
@ -208,96 +213,5 @@
|
|||
"version": "3.20.0",
|
||||
"code": "483",
|
||||
"note": "Added:\n- \"Follows you\" indicator in accounts list\n- Settings compose: display a dialog to warn if there are missing media description (default: disabled)\n- Settings > Cache: disable battery optimization\n- Settings > Cache - Add charts to check cache logs\n- Settings > Timelines: AutoPlay gif media (default: enabled)\n- Google: Automatic backup of data and settings\n\nChanged:\n- Improve detections of gap in timelines\n- Improve media description\n- Chat view by default\n- Chat view add an indicator for messages when not direct\n\nFixed:\n- Fix an issue with cache and fetch more\n- Cache view with large fonts\n- Bad behaviors with truncated messages"
|
||||
},
|
||||
{
|
||||
"version": "3.19.1",
|
||||
"code": "482",
|
||||
"note": "Added:\n- Settings compose: display a dialog to warn if there are missing media description (default disabled)\n- Settings > Notification: disable battery optimization\n- Settings > Timelines: AutoPlay gif media (default: enabled)\n\nFixed:\n- Fix an issue with cache and fetch more\n- Cache view with large fonts\n- Bad behaviors with truncated messages"
|
||||
},
|
||||
{
|
||||
"version": "3.19.0",
|
||||
"code": "481",
|
||||
"note": "Added:\n- Settings compose: don't send media if there are no description (default: disabled)\n- Settings Timelines: Enable/Disable truncate links\n- Allow to set max link length (20 - 150 chars)\n\nChanged:\n- Align media with text (left margin enabled)\n\nFixed:\n- Media previews remain the same when sharing\n- Edit media description not working\n- Accessibility (larger fonts): profiles/DM\n- Cross replies: Wrong visibility with the selected account\n- Several crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.18.2",
|
||||
"code": "480",
|
||||
"note": "Changed:\n- First media layout will depend of its ratio\n\nFixed:\n- Impossible to add media with the chat view\n- Chat view limited in chars\n- Freezes / bad behaviors due to the new media presentation"
|
||||
},
|
||||
{
|
||||
"version": "3.18.1",
|
||||
"code": "479",
|
||||
"note": "Added:\n- Add Lingva translator (Settings > Timelines)\n- Add support for Nyastodon-style emoji reactions (skyevg)\n- Add chat view for DM (default: disable / Settings > Timelines)"
|
||||
},
|
||||
{
|
||||
"version": "3.18.0",
|
||||
"code": "478",
|
||||
"note": "Added:\n- Support camel case tags (automatically recorded when composing)\n- Manage tags when composing (top right menu)\n- Custom tabs (default: enabled)\n\nChanged:\n- Media heights now use the screen size\n- Remove horizontal scroll for media\n- Reduce size of emoji when text size is increased\n- Update available languages in picker\n\nFixed:\n- Forwarded tags are added back after being deleted\n- TalkBack issues\n- Some crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.17.0",
|
||||
"code": "477",
|
||||
"note": "Added:\n- Peertube 2FA support\n- Cache home in background (default disabled -> New settings category and per account) / change frequency\n- Auto-fetch missing messages for the Home (default disabled -> in Settings - Timelines)\n- Automatically switch between tabs when searching\n- More deep links detection\n- Allow to group mentions at the top (default: disabled)\n\n\nFixed:\n- Dynamic color for Android 12+\n- Missing media description for previews\n- Fix a crash when replying\n- Fix button size not changed\n- Forward tags in replies\n- Media cannot be downloaded or shared with Android 10\n- Some crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.16.4",
|
||||
"code": "476",
|
||||
"note": "Added:\n- Cache home in background (default disabled -> New settings category and per account) / change frequency\n- Auto-fetch missing messages for the Home (default disabled -> in Settings - Timelines)\n- Automatically switch between tabs when searching\n\nFixed:\n- Some crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.16.3",
|
||||
"code": "475",
|
||||
"note": "Added:\n- Peertube 2FA support\n\nFixed:\n- Dynamic color for Android 12+"
|
||||
},
|
||||
{
|
||||
"version": "3.16.2",
|
||||
"code": "474",
|
||||
"note": "Added:\n- Peertube support\n- Compose shortcut (long press launcher)\n- Long press compose button to write with another account\n- Edit description and focus for media (for the next Mastodon release)\n\nChanged:\n- Cross actions with two accounts display a dialog\n- Order & compact og values when sharing > title - url - content\n- Tap on top message (user info) open threads\n\nFixed:\n- Text cleared when adding a media\n- Fix Maths not working with quotes\n- Fix crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.16.1",
|
||||
"code": "473",
|
||||
"note": "Changed:\n- Edit description and focus for media (for the next Mastodon release)\n\nChanged:\n- Peertube: remove role support to avoid crashes with older instances\n\nFixed:\n- Fix some crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.16.0",
|
||||
"code": "472",
|
||||
"note": "Changed:\n- Peertube support\n- Compose shortcut\n- Long press compose button to write with another account\n\nChanged:\n- Cross actions with two accounts display a dialog\n- Order & compact og values when sharing > title - url - content\n\nFixed:\n- Text cleared when adding a media\n- Fix crashes"
|
||||
},
|
||||
{
|
||||
"version": "3.15.2",
|
||||
"code": "471",
|
||||
"note": "Changed:\n- Add instance name when sharing\n\nFixed:\n- Fix a crash when removing media\n- Other minor fixes"
|
||||
},
|
||||
{
|
||||
"version": "3.15.1",
|
||||
"code": "470",
|
||||
"note": "Changed:\n- Material dialogs\n\nFixed:\n- Light theme issues"
|
||||
},
|
||||
{
|
||||
"version": "3.15.0",
|
||||
"code": "469",
|
||||
"note": "Added:\n- Maths support (view and compose)\n- Filter DMs in HOME (long press on the tab)\n- Filter languages for users in home timeline (from their profile)\n- Add several targeted languages for translator\n\nChanged:\n- Hide single media with preview is now a setting (default: disabled)\n- Group items in menu of messages\n\nFixed:\n- Cross-actions didn't display account instances"
|
||||
},
|
||||
{
|
||||
"version": "3.14.6",
|
||||
"code": "468",
|
||||
"note": "Added:\n- Maths support (view and compose)\n\nChanged:\n- Hide single media with preview is now a setting (default: disabled)"
|
||||
},
|
||||
{
|
||||
"version": "3.14.5",
|
||||
"code": "467",
|
||||
"note": "Changed:\n- Allow to swipe media for profiles\n\nFixed:\n- Fix crashes with pinch zoom\n- Copy/Paste in threads\n- Fix crash when checking redirection on http links\n- Display menu in media viewer resets pinch-zoom"
|
||||
},
|
||||
{
|
||||
"version": "3.14.4",
|
||||
"code": "466",
|
||||
"note": "Changed:\n- Media viewer (pinch zoom)\n\nFixed:\n- Cross account actions (long press)\n- Boost color\n- Buttons not visible with custom themes.\n- Fix some bad behaviors with media viewer"
|
||||
},
|
||||
{
|
||||
"version": "3.14.3",
|
||||
"code": "465",
|
||||
"note": "Added:\n- Display date of the message instead of the boost (default: disabled)\n- Allow to disable release notes popup in Settings\n\nFixed:\n- Fix timelines slow down and stuttering after some scrolls\n- Fix color issues with follow buttons\n- Fix import from settings (import from login was OK)"
|
||||
}
|
||||
|
||||
]
|
|
@ -19,8 +19,6 @@ import android.content.ClipData;
|
|||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
|
@ -63,31 +61,20 @@ public class AboutActivity extends BaseBarActivity {
|
|||
if (getSupportActionBar() != null) {
|
||||
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
}
|
||||
String version = "";
|
||||
try {
|
||||
PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0);
|
||||
version = pInfo.versionName;
|
||||
binding.aboutVersion.setText(getResources().getString(R.string.about_vesrion, version));
|
||||
} catch (PackageManager.NameNotFoundException ignored) {
|
||||
}
|
||||
String version = "v" + BuildConfig.VERSION_NAME + " (" + (BuildConfig.DONATIONS ? "F-Droid" : "Google") + ")";
|
||||
binding.aboutVersion.setText(version);
|
||||
|
||||
binding.aboutCode.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://codeberg.org/tom79/Fedilab"));
|
||||
binding.aboutThekinrar.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://instances.social/"));
|
||||
binding.aboutLicense.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://www.gnu.org/licenses/quick-guide-gplv3.fr.html"));
|
||||
binding.aboutSupport.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://liberapay.com/tom79"));
|
||||
if (BuildConfig.DONATIONS) {
|
||||
binding.aboutSupport.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
binding.aboutSupport.setVisibility(View.GONE);
|
||||
}
|
||||
binding.aboutSupportPaypal.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://www.paypal.me/Mastalab"));
|
||||
binding.donateLiberapay.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://liberapay.com/tom79"));
|
||||
binding.donatePaypal.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://www.paypal.me/Mastalab"));
|
||||
binding.donateOpencollective.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://opencollective.com/fedilab"));
|
||||
|
||||
|
||||
String finalVersion = version;
|
||||
binding.aboutVersionCopy.setOnClickListener(v -> {
|
||||
|
||||
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
String content = "Fedilab v" + finalVersion + " for " + (BuildConfig.DONATIONS ? "FDroid" : "Google");
|
||||
String content = "Fedilab " + version;
|
||||
|
||||
ClipData clip = ClipData.newPlainText(Helper.CLIP_BOARD, content);
|
||||
if (clipboard != null) {
|
||||
|
@ -96,11 +83,7 @@ public class AboutActivity extends BaseBarActivity {
|
|||
}
|
||||
|
||||
});
|
||||
if (BuildConfig.DONATIONS) {
|
||||
binding.aboutSupportPaypal.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
binding.aboutSupportPaypal.setVisibility(View.GONE);
|
||||
}
|
||||
binding.donateLinks.setVisibility(BuildConfig.DONATIONS ? View.VISIBLE : View.GONE);
|
||||
binding.accountFollow.setIconResource(R.drawable.ic_baseline_person_add_24);
|
||||
binding.aboutWebsite.setOnClickListener(v -> Helper.openBrowser(AboutActivity.this, "https://fedilab.app"));
|
||||
CrossActionHelper.fetchRemoteAccount(AboutActivity.this, "@apps@toot.fedilab.app", new CrossActionHelper.Callback() {
|
||||
|
@ -112,8 +95,6 @@ public class AboutActivity extends BaseBarActivity {
|
|||
@Override
|
||||
public void federatedAccount(Account account) {
|
||||
if (account != null && account.username.equalsIgnoreCase("apps")) {
|
||||
binding.developerTitle.setVisibility(View.VISIBLE);
|
||||
binding.acccountContainer.setVisibility(View.VISIBLE);
|
||||
MastodonHelper.loadPPMastodon(binding.accountPp, account);
|
||||
binding.accountDn.setText(account.display_name);
|
||||
binding.accountUn.setText(account.acct);
|
||||
|
|
|
@ -193,7 +193,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
|
|||
binding.mediaDescription.setText(description);
|
||||
binding.translate.setOnClickListener(v -> {
|
||||
String descriptionToTranslate = attachments.get(mediaPosition - 1).description;
|
||||
TranslateHelper.translate(MediaActivity.this, descriptionToTranslate, status!=null?status.language:"en", translated -> {
|
||||
TranslateHelper.translate(MediaActivity.this, descriptionToTranslate, getStatusLanguageForTranslation(), translated -> {
|
||||
if (translated != null) {
|
||||
attachments.get(mediaPosition - 1).translation = translated;
|
||||
binding.mediaDescriptionTranslated.setText(translated);
|
||||
|
@ -248,7 +248,7 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
|
|||
}
|
||||
binding.translate.setOnClickListener(v -> {
|
||||
String descriptionToTranslate = attachments.get(position).description;
|
||||
TranslateHelper.translate(MediaActivity.this, descriptionToTranslate, status!=null?status.language:"en", translated -> {
|
||||
TranslateHelper.translate(MediaActivity.this, descriptionToTranslate, getStatusLanguageForTranslation(), translated -> {
|
||||
if (translated != null) {
|
||||
attachments.get(position).translation = translated;
|
||||
binding.mediaDescriptionTranslated.setText(translated);
|
||||
|
@ -292,6 +292,9 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
|
|||
setFullscreen(true);
|
||||
}
|
||||
|
||||
public String getStatusLanguageForTranslation() {
|
||||
return status != null ? status.language : "en";
|
||||
}
|
||||
|
||||
private Spannable linkify(Context context, String content) {
|
||||
if (content == null) {
|
||||
|
@ -358,6 +361,14 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
|
|||
}
|
||||
return true;
|
||||
} else if (item.getItemId() == R.id.action_save) {
|
||||
saveMedia();
|
||||
} else if (item.getItemId() == R.id.action_share) {
|
||||
shareMedia();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void saveMedia() {
|
||||
int position = binding.mediaViewpager.getCurrentItem();
|
||||
Attachment attachment = attachments.get(position);
|
||||
if (Build.VERSION.SDK_INT >= 23) {
|
||||
|
@ -388,7 +399,9 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
|
|||
downloadID = -1;
|
||||
}
|
||||
}
|
||||
} else if (item.getItemId() == R.id.action_share) {
|
||||
}
|
||||
|
||||
public void shareMedia() {
|
||||
int position = binding.mediaViewpager.getCurrentItem();
|
||||
Attachment attachment = attachments.get(position);
|
||||
if (attachment.type.compareTo("image") == 0) {
|
||||
|
@ -407,8 +420,6 @@ public class MediaActivity extends BaseBarActivity implements OnDownloadInterfac
|
|||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
|
|
|
@ -589,7 +589,7 @@ public class ProfileActivity extends BaseActivity {
|
|||
account.getSpanNote(ProfileActivity.this,
|
||||
new WeakReference<>(binding.accountNote)), TextView.BufferType.SPANNABLE);
|
||||
|
||||
}),
|
||||
}, true),
|
||||
TextView.BufferType.SPANNABLE);
|
||||
|
||||
binding.accountNote.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
|
|
@ -112,8 +112,8 @@ public class Account implements Serializable {
|
|||
public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference) {
|
||||
return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, null, true, false);
|
||||
}
|
||||
public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference, Status.Callback callback) {
|
||||
return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, callback, true, false);
|
||||
public synchronized Spannable getSpanNote(Context context, WeakReference<View> viewWeakReference, Status.Callback callback, boolean keepOriginalBottomHashTags) {
|
||||
return SpannableHelper.convert(context, note, null, this, null, viewWeakReference, callback, true, false, keepOriginalBottomHashTags);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -195,7 +195,7 @@ public class Status implements Serializable, Cloneable {
|
|||
|
||||
public synchronized Spannable getSpanContent(Context context, boolean checkRemotely, WeakReference<View> viewWeakReference, Callback callback) {
|
||||
if (contentSpan == null) {
|
||||
contentSpan = SpannableHelper.convert(context, content, this, null, null, checkRemotely, viewWeakReference, callback, true, true);
|
||||
contentSpan = SpannableHelper.convert(context, content, this, null, null, checkRemotely, viewWeakReference, callback, true, true, false);
|
||||
}
|
||||
return contentSpan;
|
||||
}
|
||||
|
|
|
@ -132,19 +132,19 @@ public class BottomMenu implements Serializable {
|
|||
android.view.MenuItem menuItemLoop = null;
|
||||
switch (menuItem.item_menu_type) {
|
||||
case HOME:
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_home, menuItem.position, context.getString(R.string.home_menu)).setIcon(R.drawable.ic_baseline_home_24);
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_home, menuItem.position, R.string.tab_home_timeline).setIcon(R.drawable.ic_baseline_home_24);
|
||||
break;
|
||||
case LOCAL:
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_local, menuItem.position, context.getString(R.string.local_menu)).setIcon(R.drawable.ic_baseline_people_alt_24);
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_local, menuItem.position, R.string.tab_local_timeline).setIcon(R.drawable.ic_baseline_people_alt_24);
|
||||
break;
|
||||
case PUBLIC:
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_public, menuItem.position, context.getString(R.string.v_public)).setIcon(R.drawable.ic_baseline_public_24);
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_public, menuItem.position, R.string.tab_public_timeline).setIcon(R.drawable.ic_baseline_public_24);
|
||||
break;
|
||||
case NOTIFICATION:
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_notifications, menuItem.position, context.getString(R.string.notifications)).setIcon(R.drawable.ic_baseline_notifications_24);
|
||||
break;
|
||||
case DIRECT:
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_privates, menuItem.position, context.getString(R.string.v_private)).setIcon(R.drawable.ic_baseline_mail_24);
|
||||
menuItemLoop = bottomNavigationView.getMenu().add(Menu.NONE, R.id.nav_privates, menuItem.position, R.string.tab_private_mentions).setIcon(R.drawable.ic_baseline_mail_24);
|
||||
break;
|
||||
}
|
||||
if (menuItemLoop != null && !menuItem.visible) {
|
||||
|
|
|
@ -371,7 +371,7 @@ public class Helper {
|
|||
public static final Pattern geminiPattern = Pattern.compile("(gemini://.*)\\b");
|
||||
public static final Pattern xmppPattern = Pattern.compile("xmpp:[-a-zA-Z0-9+$&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]");
|
||||
public static final Pattern peertubePattern = Pattern.compile("(https?://([\\da-z.-]+\\.[a-z.]{2,10}))/videos/watch/(\\w{8}-\\w{4}-\\w{4}-\\w{4}-\\w{12})$");
|
||||
public static final Pattern mediumPattern = Pattern.compile("([\\w@-]*)?\\.?medium.com/@?([/\\w-]+)");
|
||||
public static final Pattern mediumPattern = Pattern.compile("([\\w@-]*)?\\.?medium.com/@?([./\\w-]+)");
|
||||
public static final Pattern wikipediaPattern = Pattern.compile("([\\w_-]+)\\.wikipedia.org/(((?!([\"'<])).)*)");
|
||||
public static final Pattern codePattern = Pattern.compile("code=([\\w-]+)");
|
||||
public static final Pattern nitterIDPattern = Pattern.compile("/status/(\\d+)");
|
||||
|
@ -397,34 +397,85 @@ public class Helper {
|
|||
public static final int NOTIFICATION_USER_NOTIF = 411;
|
||||
public static final int NOTIFICATION_THEMING = 412;
|
||||
/*
|
||||
* List from ClearUrls
|
||||
* https://gitlab.com/KevinRoebert/ClearUrls/blob/master/data/data.min.json#L106
|
||||
* Sources for the list of tracking parameters:
|
||||
* - Firefox: https://firefox.settings.services.mozilla.com/v1/buckets/main/collections/query-stripping/records
|
||||
* - Brave: https://github.com/brave/brave-core/blob/master/components/query_filter/utils.cc
|
||||
*/
|
||||
private static final String[] UTM_PARAMS = {
|
||||
private static final String[] TRACKING_PARAMS = {
|
||||
"utm_\\w+",
|
||||
"ga_source",
|
||||
"ga_medium",
|
||||
"ga_term",
|
||||
"ga_content",
|
||||
"ga_campaign",
|
||||
"ga_place",
|
||||
"yclid",
|
||||
"ref_\\w+",
|
||||
"__hsfp",
|
||||
"__hssc",
|
||||
"__hstc",
|
||||
"__s",
|
||||
"_bhlid",
|
||||
"_branch_match_id",
|
||||
"_branch_referrer",
|
||||
"_gl",
|
||||
"_hsenc",
|
||||
"_kx",
|
||||
"_openstat",
|
||||
"at_recipient_id",
|
||||
"at_recipient_list",
|
||||
"bbeml",
|
||||
"bsft_clkid",
|
||||
"bsft_uid",
|
||||
"ck_subscriber_id",
|
||||
"dclid",
|
||||
"et_rid",
|
||||
"fb_action_ids",
|
||||
"fb_action_types",
|
||||
"fb_source",
|
||||
"fb_ref",
|
||||
"fb_comment_id",
|
||||
"fbclid",
|
||||
"action_object_map",
|
||||
"action_type_map",
|
||||
"action_ref_map",
|
||||
"gs_l",
|
||||
"gbraid",
|
||||
"gclid",
|
||||
"guce_referrer",
|
||||
"guce_referrer_sig",
|
||||
"h_sid",
|
||||
"h_slt",
|
||||
"hsCtaTracking",
|
||||
"hsctatracking",
|
||||
"igsh",
|
||||
"igshid",
|
||||
"irclickid",
|
||||
"mc_eid",
|
||||
"mkt_tok",
|
||||
"hmb_campaign",
|
||||
"hmb_medium",
|
||||
"hmb_source",
|
||||
"[\\?|&]ref[\\_]?"
|
||||
|
||||
"ml_subscriber",
|
||||
"ml_subscriber_hash",
|
||||
"msclkid",
|
||||
"mtm_cid",
|
||||
"oft_c",
|
||||
"oft_ck",
|
||||
"oft_d",
|
||||
"oft_id",
|
||||
"oft_ids",
|
||||
"oft_k",
|
||||
"oft_lk",
|
||||
"oft_sk",
|
||||
"oly_anon_id",
|
||||
"oly_enc_id",
|
||||
"pk_cid",
|
||||
"rb_clickid",
|
||||
"s_cid",
|
||||
"sc_customer",
|
||||
"sc_eh",
|
||||
"sc_uid",
|
||||
"si",
|
||||
"sms_click",
|
||||
"sms_source",
|
||||
"sms_uph",
|
||||
"srsltid",
|
||||
"ss_email_id",
|
||||
"ttclid",
|
||||
"twclid",
|
||||
"unicorn_click_id",
|
||||
"vero_conv",
|
||||
"vero_id",
|
||||
"vgo_ee",
|
||||
"wbraid",
|
||||
"wickedid",
|
||||
"yclid",
|
||||
"ymclid",
|
||||
"ysclid"
|
||||
};
|
||||
public static int counter = 1;
|
||||
private static int notificationId = 1;
|
||||
|
@ -831,8 +882,8 @@ public class Helper {
|
|||
return "https://" + wikipediaReplaceHost + "/" + path + lang;
|
||||
}
|
||||
}
|
||||
boolean filterUTM = Helper.getSharedValue(context, context.getString(R.string.SET_FILTER_UTM));
|
||||
if (filterUTM) {
|
||||
boolean filterTracking = Helper.getSharedValue(context, context.getString(R.string.SET_FILTER_TRACKING));
|
||||
if (filterTracking) {
|
||||
return remove_tracking_param(context, url);
|
||||
}
|
||||
return url;
|
||||
|
@ -849,10 +900,10 @@ public class Helper {
|
|||
if (original_content == null)
|
||||
return original_content;
|
||||
String cleaned_content = original_content;
|
||||
for (String utm : UTM_PARAMS) {
|
||||
cleaned_content = cleaned_content.replaceAll("&" + utm + "=[0-9a-zA-Z._-]*", "");
|
||||
cleaned_content = cleaned_content.replaceAll("&" + utm + "=[0-9a-zA-Z._-]*", "");
|
||||
cleaned_content = cleaned_content.replaceAll("\\?" + utm + "=[0-9a-zA-Z._-]*", "?");
|
||||
for (String param : TRACKING_PARAMS) {
|
||||
cleaned_content = cleaned_content.replaceAll("&" + param + "=[0-9a-zA-Z._-]*", "");
|
||||
cleaned_content = cleaned_content.replaceAll("&" + param + "=[0-9a-zA-Z._-]*", "");
|
||||
cleaned_content = cleaned_content.replaceAll("\\?" + param + "=[0-9a-zA-Z._-]*", "?");
|
||||
}
|
||||
if (cleaned_content.endsWith("?")) {
|
||||
cleaned_content = cleaned_content.substring(0, cleaned_content.length() - 1);
|
||||
|
@ -934,7 +985,9 @@ public class Helper {
|
|||
ft.commitAllowingStateLoss();
|
||||
}
|
||||
}
|
||||
if(!fragmentManager.isDestroyed()) {
|
||||
fragmentManager.executePendingTransactions();
|
||||
}
|
||||
return fragment;
|
||||
}
|
||||
|
||||
|
@ -1163,6 +1216,7 @@ public class Helper {
|
|||
if (Helper.isValidContextForGlide(activity)) {
|
||||
Glide.with(activity)
|
||||
.asDrawable()
|
||||
.placeholder(R.drawable.ic_person)
|
||||
.load(avatar)
|
||||
.apply(new RequestOptions().transform(new CenterCrop(), new RoundedCorners(10)))
|
||||
.into(view);
|
||||
|
@ -1176,6 +1230,7 @@ public class Helper {
|
|||
try {
|
||||
RequestBuilder<Drawable> requestBuilder = Glide.with(activity)
|
||||
.asDrawable()
|
||||
.placeholder(R.drawable.ic_person)
|
||||
.load(targetedUrl)
|
||||
.thumbnail(0.1f);
|
||||
if (crop) {
|
||||
|
@ -1187,6 +1242,7 @@ public class Helper {
|
|||
} else {
|
||||
RequestBuilder<GifDrawable> requestBuilder = Glide.with(activity)
|
||||
.asGif()
|
||||
.placeholder(R.drawable.ic_person)
|
||||
.load(targetedUrl)
|
||||
.thumbnail(0.1f);
|
||||
if (crop) {
|
||||
|
|
|
@ -30,77 +30,37 @@ public class LogoHelper {
|
|||
public static int getNotificationIcon(Context context) {
|
||||
final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String logo = sharedpreferences.getString(context.getString(R.string.SET_LOGO_LAUNCHER), "Bubbles");
|
||||
switch (logo) {
|
||||
case "Fediverse":
|
||||
return R.drawable.ic_plain_fediverse;
|
||||
case "Hero":
|
||||
return R.drawable.ic_plain_hero;
|
||||
case "Atom":
|
||||
return R.drawable.ic_plain_atom;
|
||||
case "BrainCrash":
|
||||
return R.drawable.ic_plain_crash;
|
||||
case "Mastalab":
|
||||
return R.drawable.ic_plain_mastalab;
|
||||
default:
|
||||
return R.drawable.ic_plain_bubbles;
|
||||
}
|
||||
return switch (logo) {
|
||||
case "Fediverse" -> R.drawable.ic_plain_fediverse;
|
||||
case "Hero" -> R.drawable.ic_plain_hero;
|
||||
case "Atom" -> R.drawable.ic_plain_atom;
|
||||
case "BrainCrash" -> R.drawable.ic_plain_crash;
|
||||
case "Mastalab" -> R.drawable.ic_plain_mastalab;
|
||||
default -> R.drawable.ic_plain_bubbles;
|
||||
};
|
||||
}
|
||||
|
||||
public static int getMainLogo(Context context) {
|
||||
final SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String logo = sharedpreferences.getString(context.getString(R.string.SET_LOGO_LAUNCHER), "Bubbles");
|
||||
switch (logo) {
|
||||
case "Fediverse":
|
||||
return R.drawable.fedilab_logo_fediverse;
|
||||
case "Hero":
|
||||
return R.drawable.fedilab_logo_hero;
|
||||
case "Atom":
|
||||
return R.drawable.fedilab_logo_atom;
|
||||
case "BrainCrash":
|
||||
return R.drawable.fedilab_logo_crash;
|
||||
case "Mastalab":
|
||||
return R.drawable.fedilab_logo_mastalab;
|
||||
case "BubblesUA":
|
||||
return R.drawable.fedilab_logo_bubbles_ua;
|
||||
case "BubblesPeaGreen":
|
||||
return R.drawable.fedilab_logo_bubbles_pea_green;
|
||||
case "BubblesPride":
|
||||
return R.drawable.fedilab_logo_bubbles_pride;
|
||||
case "BubblesPink":
|
||||
return R.drawable.fedilab_logo_bubbles_pink;
|
||||
case "BubblesPirate":
|
||||
return R.drawable.fedilab_logo_bubbles_pirate;
|
||||
default:
|
||||
return R.drawable.fedilab_logo_bubbles;
|
||||
}
|
||||
return getDrawable(logo);
|
||||
}
|
||||
|
||||
|
||||
public static int getDrawable(String value) {
|
||||
switch (value) {
|
||||
case "Fediverse":
|
||||
return R.drawable.fedilab_logo_fediverse;
|
||||
case "Hero":
|
||||
return R.drawable.fedilab_logo_hero;
|
||||
case "Atom":
|
||||
return R.drawable.fedilab_logo_atom;
|
||||
case "BrainCrash":
|
||||
return R.drawable.fedilab_logo_crash;
|
||||
case "Mastalab":
|
||||
return R.drawable.fedilab_logo_mastalab;
|
||||
case "BubblesUA":
|
||||
return R.drawable.fedilab_logo_bubbles_ua;
|
||||
case "BubblesPeaGreen":
|
||||
return R.drawable.fedilab_logo_bubbles_pea_green;
|
||||
case "BubblesPride":
|
||||
return R.drawable.fedilab_logo_bubbles_pride;
|
||||
case "BubblesPink":
|
||||
return R.drawable.fedilab_logo_bubbles_pink;
|
||||
case "BubblesPirate":
|
||||
return R.drawable.fedilab_logo_bubbles_pirate;
|
||||
default:
|
||||
return R.drawable.fedilab_logo_bubbles;
|
||||
}
|
||||
return switch (value) {
|
||||
case "Fediverse" -> R.drawable.fedilab_logo_fediverse;
|
||||
case "Hero" -> R.drawable.fedilab_logo_hero;
|
||||
case "Atom" -> R.drawable.fedilab_logo_atom;
|
||||
case "BrainCrash" -> R.drawable.fedilab_logo_crash;
|
||||
case "Mastalab" -> R.drawable.fedilab_logo_mastalab;
|
||||
case "BubblesUA" -> R.drawable.fedilab_logo_bubbles_ua;
|
||||
case "BubblesPeaGreen" -> R.drawable.fedilab_logo_bubbles_pea_green;
|
||||
case "BubblesPride" -> R.drawable.fedilab_logo_bubbles_pride;
|
||||
case "BubblesPink" -> R.drawable.fedilab_logo_bubbles_pink;
|
||||
case "BubblesPirate" -> R.drawable.fedilab_logo_bubbles_pirate;
|
||||
default -> R.drawable.fedilab_logo_bubbles;
|
||||
};
|
||||
}
|
||||
|
||||
public static void setDrawable(String value) {
|
||||
|
|
|
@ -393,9 +393,11 @@ public class PinnedTimelineHelper {
|
|||
switch (pinnedTimeline.type) {
|
||||
case LIST:
|
||||
tabCustomViewBinding.icon.setImageResource(R.drawable.ic_tl_list);
|
||||
tab.setContentDescription(activity.getString(R.string.cd_list_timeline, name));
|
||||
break;
|
||||
case TAG:
|
||||
tabCustomViewBinding.icon.setImageResource(R.drawable.ic_tl_tag);
|
||||
tab.setContentDescription("#" + name);
|
||||
break;
|
||||
case REMOTE:
|
||||
switch (pinnedTimeline.remoteInstance.type) {
|
||||
|
@ -422,6 +424,7 @@ public class PinnedTimelineHelper {
|
|||
tabCustomViewBinding.icon.setImageResource(R.drawable.peertube_icon);
|
||||
break;
|
||||
}
|
||||
tab.setContentDescription(name);
|
||||
break;
|
||||
}
|
||||
tab.setCustomView(tabCustomViewBinding.getRoot());
|
||||
|
@ -430,24 +433,31 @@ public class PinnedTimelineHelper {
|
|||
switch (pinnedTimeline.type) {
|
||||
case HOME:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_baseline_home_24);
|
||||
tab.setContentDescription(R.string.tab_home_timeline);
|
||||
break;
|
||||
case LOCAL:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_baseline_supervisor_account_24);
|
||||
tab.setContentDescription(R.string.tab_local_timeline);
|
||||
break;
|
||||
case PUBLIC:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_baseline_public_24);
|
||||
tab.setContentDescription(R.string.tab_public_timeline);
|
||||
break;
|
||||
case NOTIFICATION:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_baseline_notifications_24);
|
||||
tab.setContentDescription(R.string.notifications);
|
||||
break;
|
||||
case DIRECT:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_baseline_mail_24);
|
||||
tab.setContentDescription(R.string.tab_private_mentions);
|
||||
break;
|
||||
case BUBBLE:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.ic_baseline_bubble_chart_24);
|
||||
tab.setContentDescription(R.string.tab_bubble_timeline);
|
||||
break;
|
||||
case TREND_MESSAGE:
|
||||
tabCustomDefaultViewBinding.icon.setImageResource(R.drawable.baseline_moving_24);
|
||||
tab.setContentDescription(R.string.trending);
|
||||
break;
|
||||
}
|
||||
tab.setCustomView(tabCustomDefaultViewBinding.getRoot());
|
||||
|
|
|
@ -135,12 +135,22 @@ public class SpannableHelper {
|
|||
public static Spannable convert(Context context, String text,
|
||||
Status status, Account account, Announcement announcement,
|
||||
WeakReference<View> viewWeakReference, Status.Callback callback, boolean convertHtml, boolean convertMarkdown) {
|
||||
return convert(context, text, status, account, announcement, false, viewWeakReference, callback, convertHtml, convertMarkdown);
|
||||
return convert(context, text, status, account, announcement, false, viewWeakReference, callback, convertHtml, convertMarkdown, false);
|
||||
}
|
||||
|
||||
public static Spannable convert(Context context, String text,
|
||||
Status status, Account account, Announcement announcement, boolean checkRemotely,
|
||||
WeakReference<View> viewWeakReference, Status.Callback callback, boolean convertHtml, boolean convertMarkdown) {
|
||||
Status status, Account account, Announcement announcement, WeakReference<View> viewWeakReference,
|
||||
Status.Callback callback, boolean convertHtml, boolean convertMarkdown, boolean keepOriginalBottomHashTags) {
|
||||
return convert(context, text, status, account, announcement, false, viewWeakReference, callback, convertHtml, convertMarkdown, keepOriginalBottomHashTags);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param keepOriginalBottomHashTags set this to {@code true} to preserve original bottom hash tags. For example, in account note
|
||||
* <i>(profile bio/description)</i> in {@link app.fedilab.android.mastodon.activities.ProfileActivity ProfileActivity}
|
||||
*/
|
||||
public static Spannable convert(Context context, String text, Status status, Account account, Announcement announcement,
|
||||
boolean checkRemotely, WeakReference<View> viewWeakReference, Status.Callback callback,
|
||||
boolean convertHtml, boolean convertMarkdown, boolean keepOriginalBottomHashTags) {
|
||||
if (text == null) {
|
||||
return null;
|
||||
}
|
||||
|
@ -395,7 +405,7 @@ public class SpannableHelper {
|
|||
}
|
||||
|
||||
boolean underlineBottomHashTags = sharedpreferences.getBoolean(context.getString(R.string.SET_UNDERLINE_BOTTOM_HASHTAGS), true);
|
||||
if(underlineBottomHashTags) {
|
||||
if(underlineBottomHashTags && !keepOriginalBottomHashTags) {
|
||||
SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder();
|
||||
final Pattern bottomTagsPattern = Pattern.compile(patternBottomTags, Pattern.CASE_INSENSITIVE);
|
||||
Matcher matcherBottomTags = bottomTagsPattern.matcher(content);
|
||||
|
@ -1052,12 +1062,14 @@ public class SpannableHelper {
|
|||
|
||||
popupHashtagsBinding.muteTag.setOnClickListener(v -> {
|
||||
Filter fedilabFilter = null;
|
||||
if(MainActivity.mainFilters != null) {
|
||||
for (Filter filter : MainActivity.mainFilters) {
|
||||
if (filter.title.equals(Helper.FEDILAB_MUTED_HASHTAGS)) {
|
||||
fedilabFilter = filter;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
//Filter for Fedilab doesn't exist we have to create it
|
||||
if (fedilabFilter == null) {
|
||||
Filter.FilterParams filterParams = new Filter.FilterParams();
|
||||
|
@ -1071,7 +1083,7 @@ public class SpannableHelper {
|
|||
FiltersVM filtersVM = new ViewModelProvider((ViewModelStoreOwner) context).get(FiltersVM.class);
|
||||
filtersVM.addFilter(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, filterParams)
|
||||
.observe((LifecycleOwner) context, filter -> {
|
||||
if (filter != null) {
|
||||
if (filter != null && MainActivity.mainFilters != null) {
|
||||
MainActivity.mainFilters.add(filter);
|
||||
addTagToFilter(context, tag, status, filter);
|
||||
}
|
||||
|
|
|
@ -1880,6 +1880,7 @@ public class ComposeAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder
|
|||
holder.binding.buttonPost.setEnabled(!statusDraft.submitted);
|
||||
|
||||
holder.binding.buttonPost.setOnClickListener(v -> {
|
||||
v.setEnabled(false);
|
||||
statusDraft.submitted = true;
|
||||
notifyItemChanged(position);
|
||||
manageDrafts.onSubmit(prepareDraft(statusList, this, account.instance, account.user_id));
|
||||
|
|
|
@ -72,15 +72,15 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter<RecyclerView.
|
|||
switch (bottomMenu.bottom_menu.get(position).item_menu_type) {
|
||||
case HOME:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_home_24);
|
||||
title = context.getString(R.string.home_menu);
|
||||
title = context.getString(R.string.tab_home_timeline);
|
||||
break;
|
||||
case LOCAL:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_people_alt_24);
|
||||
title = context.getString(R.string.local);
|
||||
title = context.getString(R.string.tab_local_timeline);
|
||||
break;
|
||||
case PUBLIC:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_public_24);
|
||||
title = context.getString(R.string.v_public);
|
||||
title = context.getString(R.string.tab_public_timeline);
|
||||
break;
|
||||
case NOTIFICATION:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_notifications_24);
|
||||
|
@ -88,7 +88,7 @@ public class ReorderBottomMenuAdapter extends RecyclerView.Adapter<RecyclerView.
|
|||
break;
|
||||
case DIRECT:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_mail_24);
|
||||
title = context.getString(R.string.v_private);
|
||||
title = context.getString(R.string.tab_private_mentions);
|
||||
break;
|
||||
}
|
||||
holder.binding.text.setText(title);
|
||||
|
|
|
@ -117,26 +117,33 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
|||
break;
|
||||
case TAG:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_label_24);
|
||||
if (pinned.pinnedTimelines.get(position).tagTimeline.displayName != null)
|
||||
holder.binding.text.setText(pinned.pinnedTimelines.get(position).tagTimeline.displayName);
|
||||
else
|
||||
holder.binding.text.setText(pinned.pinnedTimelines.get(position).tagTimeline.name);
|
||||
if (pinned.pinnedTimelines.get(position).tagTimeline.displayName != null) {
|
||||
String tagTimelineDisplayName = pinned.pinnedTimelines.get(position).tagTimeline.displayName;
|
||||
holder.binding.text.setText(tagTimelineDisplayName);
|
||||
holder.binding.getRoot().setContentDescription(context.getString(R.string.cd_hash_tag_timeline, tagTimelineDisplayName));
|
||||
} else {
|
||||
String tagTimelineName = pinned.pinnedTimelines.get(position).tagTimeline.name;
|
||||
holder.binding.text.setText(tagTimelineName);
|
||||
holder.binding.getRoot().setContentDescription("#" + tagTimelineName);
|
||||
}
|
||||
break;
|
||||
case LIST:
|
||||
String listTitle = pinned.pinnedTimelines.get(position).mastodonList.title;
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_view_list_24);
|
||||
holder.binding.text.setText(pinned.pinnedTimelines.get(position).mastodonList.title);
|
||||
holder.binding.text.setText(listTitle);
|
||||
holder.binding.getRoot().setContentDescription(context.getString(R.string.cd_list_timeline, listTitle));
|
||||
break;
|
||||
case HOME:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_home_24);
|
||||
holder.binding.text.setText(R.string.home_menu);
|
||||
holder.binding.text.setText(R.string.tab_home_timeline);
|
||||
break;
|
||||
case LOCAL:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_supervisor_account_24);
|
||||
holder.binding.text.setText(R.string.local_menu);
|
||||
holder.binding.text.setText(R.string.tab_local_timeline);
|
||||
break;
|
||||
case PUBLIC:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_public_24);
|
||||
holder.binding.text.setText(R.string.v_public);
|
||||
holder.binding.text.setText(R.string.tab_public_timeline);
|
||||
break;
|
||||
case NOTIFICATION:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_notifications_24);
|
||||
|
@ -144,11 +151,11 @@ public class ReorderTabAdapter extends RecyclerView.Adapter<RecyclerView.ViewHol
|
|||
break;
|
||||
case DIRECT:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_mail_24);
|
||||
holder.binding.text.setText(R.string.v_direct);
|
||||
holder.binding.text.setText(R.string.tab_private_mentions);
|
||||
break;
|
||||
case BUBBLE:
|
||||
holder.binding.icon.setImageResource(R.drawable.ic_baseline_bubble_chart_24);
|
||||
holder.binding.text.setText(R.string.bubble);
|
||||
holder.binding.text.setText(R.string.tab_bubble_timeline);
|
||||
break;
|
||||
case TREND_MESSAGE:
|
||||
holder.binding.icon.setImageResource(R.drawable.baseline_moving_24);
|
||||
|
|
|
@ -71,7 +71,11 @@ public class SliderAdapter extends SliderViewAdapter<SliderAdapter.SliderAdapter
|
|||
public void onBindViewHolder(SliderAdapterVH viewHolder, final int position) {
|
||||
|
||||
Attachment sliderItem = mSliderItems.get(position);
|
||||
if (status.sensitive) {
|
||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
final int timeout = sharedpreferences.getInt(context.getString(R.string.SET_NSFW_TIMEOUT), 5);
|
||||
boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false);
|
||||
|
||||
if (status.sensitive && !expand_media) {
|
||||
Glide.with(viewHolder.itemView)
|
||||
.load(sliderItem.preview_url)
|
||||
.fitCenter()
|
||||
|
@ -83,9 +87,6 @@ public class SliderAdapter extends SliderViewAdapter<SliderAdapter.SliderAdapter
|
|||
.fitCenter()
|
||||
.into(viewHolder.binding.ivAutoImageSlider);
|
||||
}
|
||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
final int timeout = sharedpreferences.getInt(context.getString(R.string.SET_NSFW_TIMEOUT), 5);
|
||||
boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false);
|
||||
|
||||
viewHolder.itemView.setOnClickListener(v -> {
|
||||
if (status.sensitive && !expand_media) {
|
||||
|
|
|
@ -57,6 +57,7 @@ import android.os.CountDownTimer;
|
|||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.text.Html;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.TextUtils;
|
||||
import android.util.TypedValue;
|
||||
|
@ -85,6 +86,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
|
|||
import androidx.constraintlayout.widget.ConstraintSet;
|
||||
import androidx.core.app.ActivityOptionsCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
@ -1345,8 +1347,8 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
|
||||
if (status.isFocused) {
|
||||
holder.binding.statusInfo.setVisibility(View.VISIBLE);
|
||||
holder.binding.reblogsCount.setText(String.valueOf(status.reblogs_count));
|
||||
holder.binding.favoritesCount.setText(String.valueOf(status.favourites_count));
|
||||
holder.binding.reblogInfo.setText(String.valueOf(status.reblogs_count));
|
||||
holder.binding.favouriteInfo.setText(String.valueOf(status.favourites_count));
|
||||
|
||||
if (statusToDeal.edited_at != null) {
|
||||
holder.binding.editTime.setText(context.getString(R.string.edited_message_at, Helper.longDateToString(status.edited_at)));
|
||||
|
@ -1378,6 +1380,10 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
} else {
|
||||
holder.binding.app.setVisibility(View.GONE);
|
||||
}
|
||||
if (statusToDeal.language != null) {
|
||||
holder.binding.language.setText(statusToDeal.language.toUpperCase());
|
||||
holder.binding.language.setVisibility(View.VISIBLE);
|
||||
} else holder.binding.language.setVisibility(View.VISIBLE);
|
||||
|
||||
} else {
|
||||
holder.binding.app.setVisibility(View.GONE);
|
||||
|
@ -1517,18 +1523,33 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
TextView.BufferType.SPANNABLE);
|
||||
boolean underlineBottomHashTags = sharedpreferences.getBoolean(context.getString(R.string.SET_UNDERLINE_BOTTOM_HASHTAGS), true);
|
||||
if(underlineBottomHashTags) {
|
||||
int link_color;
|
||||
boolean customLight = sharedpreferences.getBoolean(context.getString(R.string.SET_CUSTOMIZE_LIGHT_COLORS), false);
|
||||
boolean customDark = sharedpreferences.getBoolean(context.getString(R.string.SET_CUSTOMIZE_DARK_COLORS), false);
|
||||
int linkColor = -1;
|
||||
if (currentNightMode == Configuration.UI_MODE_NIGHT_NO && customLight) {
|
||||
link_color = sharedpreferences.getInt(context.getString(R.string.SET_LIGHT_LINK), -1);
|
||||
if (link_color != -1) {
|
||||
linkColor = link_color;
|
||||
}
|
||||
} else if (currentNightMode == Configuration.UI_MODE_NIGHT_YES && customDark) {
|
||||
link_color = sharedpreferences.getInt(context.getString(R.string.SET_DARK_LINK), -1);
|
||||
if (link_color != -1) {
|
||||
linkColor = link_color;
|
||||
}
|
||||
}
|
||||
if (statusToDeal.getBottomTags().length > 0) {
|
||||
holder.binding.statusHashtags.setVisibility(View.VISIBLE);
|
||||
holder.binding.statusHashtags.removeAllViews();
|
||||
int index = 0;
|
||||
for (String tag : statusToDeal.getBottomTags()) {
|
||||
if(!statusToDeal.bottomTagsAllDisplayed && index > 2 && statusToDeal.getBottomTags().length > 3) {
|
||||
int remaining = statusToDeal.getBottomTags().length - 3;
|
||||
if(!statusToDeal.bottomTagsAllDisplayed && index > 2 && statusToDeal.getBottomTags().length > 3 && remaining > 1) {
|
||||
Chip chip = new Chip(context);
|
||||
chip.setClickable(true);
|
||||
chip.setEnsureMinTouchTargetSize(false);
|
||||
int remaining = statusToDeal.getBottomTags().length - 3;
|
||||
chip.setText(context.getString(R.string.remaining_tags, remaining));
|
||||
chip.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorPrimary));
|
||||
chip.setTextColor(linkColor == - 1 ?ThemeHelper.getAttColor(context, R.attr.colorPrimary):linkColor);
|
||||
chip.setOnClickListener(v -> {
|
||||
statusToDeal.bottomTagsAllDisplayed = true;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
|
@ -1540,7 +1561,7 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
chip.setClickable(true);
|
||||
chip.setEnsureMinTouchTargetSize(false);
|
||||
chip.setText(tag);
|
||||
chip.setTextColor(ThemeHelper.getAttColor(context, R.attr.colorPrimary));
|
||||
chip.setTextColor(linkColor == - 1 ?ThemeHelper.getAttColor(context, R.attr.colorPrimary):linkColor);
|
||||
chip.setOnLongClickListener(v->{
|
||||
SpannableHelper.longPressHashTags(context, statusToDeal, tag);
|
||||
return true;
|
||||
|
@ -1587,12 +1608,12 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
}
|
||||
if (statusToDeal.translationContent != null) {
|
||||
holder.binding.containerTrans.setVisibility(View.VISIBLE);
|
||||
holder.binding.statusContentTranslated.setText(
|
||||
statusToDeal.getSpanTranslate(context,
|
||||
Spannable translatedText = statusToDeal.getSpanTranslate(context,
|
||||
new WeakReference<>(holder.binding.statusContentTranslated), () -> {
|
||||
recyclerView.post(() -> adapter.notifyItemChanged(holder.getBindingAdapterPosition()));
|
||||
}),
|
||||
TextView.BufferType.SPANNABLE);
|
||||
});
|
||||
holder.binding.statusContentTranslated.setText(translatedText, TextView.BufferType.SPANNABLE);
|
||||
holder.binding.containerTrans.setContentDescription(context.getString(R.string.cd_translated_content, translatedText));
|
||||
} else {
|
||||
holder.binding.containerTrans.setVisibility(View.GONE);
|
||||
}
|
||||
|
@ -1616,11 +1637,12 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
holder.binding.card.setVisibility(View.GONE);
|
||||
}
|
||||
if (measuredWidth <= 0 && statusToDeal.media_attachments != null && statusToDeal.media_attachments.size() > 0) {
|
||||
boolean finalFullAttachement = fullAttachement;
|
||||
holder.binding.mediaContainer.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||
@Override
|
||||
public void onGlobalLayout() {
|
||||
holder.binding.mediaContainer.getViewTreeObserver().removeOnGlobalLayoutListener(this);
|
||||
if (fullAttachement) {
|
||||
if (finalFullAttachement) {
|
||||
measuredWidth = holder.binding.mediaContainer.getWidth();
|
||||
} else {
|
||||
measuredWidth = holder.binding.media.mediaContainer.getWidth();
|
||||
|
@ -1681,6 +1703,43 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
holder.binding.media.mediaContainer.setVisibility(View.VISIBLE);
|
||||
int mediaPosition = 1;
|
||||
boolean autoplaygif = sharedpreferences.getBoolean(context.getString(R.string.SET_AUTO_PLAY_GIG_MEDIA), false);
|
||||
|
||||
for (Attachment attachment : statusToDeal.media_attachments) {
|
||||
float ratio = 1.0f;
|
||||
float mediaH = -1.0f;
|
||||
float mediaW = -1.0f;
|
||||
if (attachment.meta != null && attachment.meta.getSmall() != null) {
|
||||
mediaH = attachment.meta.getSmall().height;
|
||||
mediaW = attachment.meta.getSmall().width;
|
||||
if (mediaW != 0) {
|
||||
ratio = measuredWidth > 0 ? measuredWidth / mediaW : 1.0f;
|
||||
}
|
||||
}
|
||||
if(ratio >= 5) {
|
||||
fullAttachement = false;
|
||||
}
|
||||
LayoutMediaBinding layoutMediaBinding = LayoutMediaBinding.inflate(LayoutInflater.from(context));
|
||||
if ((fullAttachement && (!statusToDeal.sensitive || expand_media))) {
|
||||
holder.binding.mediaContainer.addView(layoutMediaBinding.getRoot());
|
||||
} else {
|
||||
if (mediaPosition == 1) {
|
||||
holder.binding.media.media1Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 2 && statusToDeal.media_attachments.size() == 3) {
|
||||
if (statusToDeal.media_attachments.get(0).meta != null && statusToDeal.media_attachments.get(0).meta.getSmall() != null && statusToDeal.media_attachments.get(0).meta.getSmall().width < statusToDeal.media_attachments.get(0).meta.getSmall().height) {
|
||||
holder.binding.media.media2Container.addView(layoutMediaBinding.getRoot());
|
||||
} else {
|
||||
holder.binding.media.media3Container.addView(layoutMediaBinding.getRoot());
|
||||
}
|
||||
} else if (mediaPosition == 2) {
|
||||
holder.binding.media.media2Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 3 && statusToDeal.media_attachments.size() == 3) {
|
||||
holder.binding.media.media4Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 3) {
|
||||
holder.binding.media.media3Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 4) {
|
||||
holder.binding.media.media4Container.addView(layoutMediaBinding.getRoot());
|
||||
}
|
||||
}
|
||||
if (!fullAttachement || statusToDeal.sensitive) {
|
||||
int defaultHeight = (int) Helper.convertDpToPixel(300, context);
|
||||
int orientation = context.getResources().getConfiguration().orientation;
|
||||
|
@ -1737,42 +1796,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
holder.binding.media.moreMedia.setText(context.getString(R.string.more_media, "+" + (statusToDeal.media_attachments.size() - 4)));
|
||||
}
|
||||
}
|
||||
|
||||
for (Attachment attachment : statusToDeal.media_attachments) {
|
||||
LayoutMediaBinding layoutMediaBinding = LayoutMediaBinding.inflate(LayoutInflater.from(context));
|
||||
if ((fullAttachement && (!statusToDeal.sensitive || expand_media))) {
|
||||
holder.binding.mediaContainer.addView(layoutMediaBinding.getRoot());
|
||||
} else {
|
||||
if (mediaPosition == 1) {
|
||||
holder.binding.media.media1Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 2 && statusToDeal.media_attachments.size() == 3) {
|
||||
if (statusToDeal.media_attachments.get(0).meta != null && statusToDeal.media_attachments.get(0).meta.getSmall() != null && statusToDeal.media_attachments.get(0).meta.getSmall().width < statusToDeal.media_attachments.get(0).meta.getSmall().height) {
|
||||
holder.binding.media.media2Container.addView(layoutMediaBinding.getRoot());
|
||||
} else {
|
||||
holder.binding.media.media3Container.addView(layoutMediaBinding.getRoot());
|
||||
}
|
||||
} else if (mediaPosition == 2) {
|
||||
holder.binding.media.media2Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 3 && statusToDeal.media_attachments.size() == 3) {
|
||||
holder.binding.media.media4Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 3) {
|
||||
holder.binding.media.media3Container.addView(layoutMediaBinding.getRoot());
|
||||
} else if (mediaPosition == 4) {
|
||||
holder.binding.media.media4Container.addView(layoutMediaBinding.getRoot());
|
||||
}
|
||||
}
|
||||
if (fullAttachement && (!statusToDeal.sensitive || expand_media)) {
|
||||
|
||||
float ratio = 1.0f;
|
||||
float mediaH = -1.0f;
|
||||
float mediaW = -1.0f;
|
||||
if (attachment.meta != null && attachment.meta.getSmall() != null) {
|
||||
mediaH = attachment.meta.getSmall().height;
|
||||
mediaW = attachment.meta.getSmall().width;
|
||||
if (mediaW != 0) {
|
||||
ratio = measuredWidth > 0 ? measuredWidth / mediaW : 1.0f;
|
||||
}
|
||||
}
|
||||
|
||||
if (autoplaygif && attachment.type.equalsIgnoreCase("gifv") && mediaPosition == 1) {
|
||||
|
||||
layoutMediaBinding.media.setVisibility(View.GONE);
|
||||
|
@ -1858,6 +1884,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.mediaVideo,
|
||||
context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
(view, arguments) -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
loadAndAddAttachment(context, layoutMediaBinding, holder, adapter, mediaPosition, mediaW, mediaH, ratio, statusToDeal, attachment);
|
||||
}
|
||||
|
@ -1940,6 +1974,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.mediaVideo,
|
||||
context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
(view, arguments) -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
loadAndAddAttachment(context, layoutMediaBinding, holder, adapter, mediaPosition, -1.f, -1.f, -1.f, statusToDeal, attachment);
|
||||
}
|
||||
|
@ -2868,6 +2910,10 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
if (isArt) {
|
||||
fullAttachement = true;
|
||||
}
|
||||
float ratio = measuredWidth > 0 ? measuredWidth / mediaW : 1.0f;
|
||||
if(ratio >= 5) {
|
||||
fullAttachement = false;
|
||||
}
|
||||
boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false);
|
||||
RequestBuilder<Drawable> requestBuilder;
|
||||
GlideRequests glideRequests = GlideApp.with(context);
|
||||
|
@ -2909,12 +2955,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
Status statusToDeal, Attachment attachment) {
|
||||
SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
final int timeout = sharedpreferences.getInt(context.getString(R.string.SET_NSFW_TIMEOUT), 5);
|
||||
boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false);
|
||||
boolean long_press_media = sharedpreferences.getBoolean(context.getString(R.string.SET_LONG_PRESS_STORE_MEDIA), false);
|
||||
boolean expand_media = sharedpreferences.getBoolean(context.getString(R.string.SET_EXPAND_MEDIA), false);
|
||||
|
||||
LinearLayout.LayoutParams lp;
|
||||
|
||||
boolean fullAttachement = sharedpreferences.getBoolean(context.getString(R.string.SET_FULL_PREVIEW), false);
|
||||
if(ratio >= 5) {
|
||||
fullAttachement = false;
|
||||
}
|
||||
if (fullAttachement && mediaH > 0 && (!statusToDeal.sensitive || expand_media)) {
|
||||
lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, (int) (mediaH * ratio));
|
||||
layoutMediaBinding.media.setScaleType(ImageView.ScaleType.FIT_CENTER);
|
||||
|
@ -2972,9 +3020,9 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
|
||||
RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, statusToDeal.sensitive, false);
|
||||
if (!statusToDeal.sensitive || expand_media) {
|
||||
layoutMediaBinding.viewHide.setImageResource(R.drawable.ic_baseline_visibility_24);
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24);
|
||||
} else {
|
||||
layoutMediaBinding.viewHide.setImageResource(R.drawable.ic_baseline_visibility_off_24);
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_off_24);
|
||||
}
|
||||
requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media);
|
||||
if (statusToDeal.sensitive) {
|
||||
|
@ -3019,6 +3067,14 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.media,
|
||||
context.getString(statusToDeal.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
(view, arguments) -> {
|
||||
statusToDeal.sensitive = !statusToDeal.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
return true;
|
||||
});
|
||||
|
||||
if ((!statusToDeal.sensitive || expand_media) && (fullAttachement)) {
|
||||
layoutMediaBinding.getRoot().setPadding(0, 0, 0, 10);
|
||||
|
@ -3151,11 +3207,10 @@ public class StatusAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>
|
|||
holder.binding.poll.pollInfo.setTextColor(theme_text_color);
|
||||
holder.binding.cardDescription.setTextColor(theme_text_color);
|
||||
holder.binding.time.setTextColor(theme_text_color);
|
||||
holder.binding.reblogsCount.setTextColor(theme_text_color);
|
||||
holder.binding.favoritesCount.setTextColor(theme_text_color);
|
||||
holder.binding.favoritesCount.setTextColor(theme_text_color);
|
||||
Helper.changeDrawableColor(context, holder.binding.repeatInfo, theme_text_color);
|
||||
Helper.changeDrawableColor(context, holder.binding.favInfo, theme_text_color);
|
||||
holder.binding.reblogInfo.setTextColor(theme_text_color);
|
||||
holder.binding.favouriteInfo.setTextColor(theme_text_color);
|
||||
Helper.changeDrawableColor(context, holder.binding.reblogInfo, theme_text_color);
|
||||
Helper.changeDrawableColor(context, holder.binding.favouriteInfo, theme_text_color);
|
||||
Helper.changeDrawableColor(context, R.drawable.ic_baseline_lock_24, theme_text_color);
|
||||
}
|
||||
if (theme_text_header_1_line != -1) {
|
||||
|
|
|
@ -45,6 +45,7 @@ import androidx.appcompat.widget.LinearLayoutCompat;
|
|||
import androidx.constraintlayout.widget.ConstraintSet;
|
||||
import androidx.core.app.ActivityOptionsCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.lifecycle.LifecycleOwner;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.lifecycle.ViewModelStoreOwner;
|
||||
|
@ -161,9 +162,9 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
|
|||
|
||||
RequestBuilder<Drawable> requestBuilder = prepareRequestBuilder(context, attachment, mediaW * ratio, mediaH * ratio, focusX, focusY, status.sensitive, false);
|
||||
if (!status.sensitive || expand_media) {
|
||||
layoutMediaBinding.viewHide.setImageResource(R.drawable.ic_baseline_visibility_24);
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_24);
|
||||
} else {
|
||||
layoutMediaBinding.viewHide.setImageResource(R.drawable.ic_baseline_visibility_off_24);
|
||||
layoutMediaBinding.viewHide.setIconResource(R.drawable.ic_baseline_visibility_off_24);
|
||||
}
|
||||
requestBuilder.load(attachment.preview_url).into(layoutMediaBinding.media);
|
||||
if (status.sensitive) {
|
||||
|
@ -208,7 +209,14 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
|
|||
status.sensitive = !status.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.media,
|
||||
context.getString(status.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
(view, arguments) -> {
|
||||
status.sensitive = !status.sensitive;
|
||||
adapter.notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
@ -687,6 +695,14 @@ public class StatusDirectMessageAdapter extends RecyclerView.Adapter<RecyclerVie
|
|||
status.sensitive = !status.sensitive;
|
||||
notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
});
|
||||
ViewCompat.addAccessibilityAction(
|
||||
layoutMediaBinding.mediaVideo,
|
||||
context.getString(status.sensitive ? R.string.cd_show_media : R.string.cd_hide_media),
|
||||
(view, arguments) -> {
|
||||
status.sensitive = !status.sensitive;
|
||||
notifyItemChanged(holder.getBindingAdapterPosition());
|
||||
return true;
|
||||
});
|
||||
} else {
|
||||
loadAndAddAttachment(context, layoutMediaBinding, holder, this, mediaPosition, -1.f, -1.f, -1.f, status, attachment);
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ import androidx.annotation.NonNull;
|
|||
import androidx.annotation.Nullable;
|
||||
import androidx.annotation.OptIn;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import androidx.media3.common.MediaItem;
|
||||
|
@ -60,6 +61,7 @@ import app.fedilab.android.mastodon.client.entities.api.Attachment;
|
|||
import app.fedilab.android.mastodon.helper.CacheDataSourceFactory;
|
||||
import app.fedilab.android.mastodon.helper.Helper;
|
||||
import app.fedilab.android.mastodon.helper.MediaHelper;
|
||||
import app.fedilab.android.mastodon.helper.TranslateHelper;
|
||||
import app.fedilab.android.mastodon.viewmodel.mastodon.TimelinesVM;
|
||||
import es.dmoral.toasty.Toasty;
|
||||
|
||||
|
@ -74,6 +76,8 @@ public class FragmentMedia extends Fragment {
|
|||
private boolean swipeEnabled;
|
||||
private FragmentSlideMediaBinding binding;
|
||||
private SlidrInterface slidrInterface;
|
||||
private int mediaPictureTranslateAccessibilityActionId = 0;
|
||||
private int mediaVideoTranslateAccessibilityActionId = 0;
|
||||
|
||||
private boolean visible = false;
|
||||
|
||||
|
@ -124,7 +128,6 @@ public class FragmentMedia extends Fragment {
|
|||
enableSliding(true);
|
||||
}
|
||||
});
|
||||
binding.mediaPicture.setContentDescription(attachment.description);
|
||||
binding.mediaPicture.setOnClickListener(v -> {
|
||||
if (isAdded()) {
|
||||
((MediaActivity) requireActivity()).toogleFullScreen();
|
||||
|
@ -137,6 +140,37 @@ public class FragmentMedia extends Fragment {
|
|||
}
|
||||
});
|
||||
|
||||
if (attachment.description != null) {
|
||||
binding.mediaPicture.setContentDescription(attachment.description);
|
||||
mediaPictureTranslateAccessibilityActionId = ViewCompat.addAccessibilityAction(binding.mediaPicture, getString(R.string.translate), (view2, arguments) -> {
|
||||
translate();
|
||||
return true;
|
||||
});
|
||||
|
||||
binding.mediaVideo.setContentDescription(attachment.description);
|
||||
mediaVideoTranslateAccessibilityActionId = ViewCompat.addAccessibilityAction(binding.mediaVideo, getString(R.string.translate), (view2, arguments) -> {
|
||||
translate();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
mediaPictureTranslateAccessibilityActionId = ViewCompat.addAccessibilityAction(binding.mediaPicture, getString(R.string.download), (view2, arguments) -> {
|
||||
((MediaActivity) requireActivity()).saveMedia();
|
||||
return true;
|
||||
});
|
||||
mediaPictureTranslateAccessibilityActionId = ViewCompat.addAccessibilityAction(binding.mediaVideo, getString(R.string.download), (view2, arguments) -> {
|
||||
((MediaActivity) requireActivity()).saveMedia();
|
||||
return true;
|
||||
});
|
||||
mediaPictureTranslateAccessibilityActionId = ViewCompat.addAccessibilityAction(binding.mediaPicture, getString(R.string.share), (view2, arguments) -> {
|
||||
((MediaActivity) requireActivity()).shareMedia();
|
||||
return true;
|
||||
});
|
||||
mediaPictureTranslateAccessibilityActionId = ViewCompat.addAccessibilityAction(binding.mediaVideo, getString(R.string.share), (view2, arguments) -> {
|
||||
((MediaActivity) requireActivity()).shareMedia();
|
||||
return true;
|
||||
});
|
||||
|
||||
String type = attachment.type;
|
||||
String preview_url = attachment.preview_url;
|
||||
if (type.equalsIgnoreCase("unknown")) {
|
||||
|
@ -267,6 +301,23 @@ public class FragmentMedia extends Fragment {
|
|||
}
|
||||
}
|
||||
|
||||
public void translate() {
|
||||
if (attachment.translation == null) TranslateHelper.translate(
|
||||
requireContext(),
|
||||
attachment.description,
|
||||
((MediaActivity) requireActivity()).getStatusLanguageForTranslation(),
|
||||
translated -> {
|
||||
attachment.translation = translated;
|
||||
String translatedMediaDescription = getString(R.string.cd_translated_media_description, attachment.translation);
|
||||
|
||||
binding.mediaPicture.setContentDescription(translatedMediaDescription);
|
||||
ViewCompat.removeAccessibilityAction(binding.mediaPicture, mediaPictureTranslateAccessibilityActionId);
|
||||
|
||||
binding.mediaVideo.setContentDescription(translatedMediaDescription);
|
||||
ViewCompat.removeAccessibilityAction(binding.mediaVideo, mediaVideoTranslateAccessibilityActionId);
|
||||
});
|
||||
}
|
||||
|
||||
@androidx.annotation.OptIn(markerClass = androidx.media3.common.util.UnstableApi.class)
|
||||
private void loadVideo(String url, String type) {
|
||||
if (binding == null || !isAdded() || getActivity() == null || url == null) {
|
||||
|
|
|
@ -514,7 +514,9 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter.
|
|||
initializeView();
|
||||
needToCallResume = false;
|
||||
}
|
||||
try {
|
||||
ContextCompat.registerReceiver(requireActivity(), receive_action, new IntentFilter(Helper.RECEIVE_STATUS_ACTION), ContextCompat.RECEIVER_NOT_EXPORTED);
|
||||
}catch (Exception ignored){}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -104,15 +104,23 @@ public class TimelinesVM extends AndroidViewModel {
|
|||
|
||||
|
||||
private static void sortDesc(List<Status> statusList) {
|
||||
if(statusList == null) {
|
||||
return;
|
||||
}
|
||||
Collections.sort(statusList, (obj1, obj2) -> obj2.id.compareToIgnoreCase(obj1.id));
|
||||
}
|
||||
|
||||
public static void sortAsc(List<Status> statusList) {
|
||||
if(statusList == null) {
|
||||
return;
|
||||
}
|
||||
Collections.sort(statusList, (obj1, obj2) -> obj1.id.compareToIgnoreCase(obj2.id));
|
||||
}
|
||||
|
||||
|
||||
private static void sortDescConv(List<Conversation> conversationList) {
|
||||
if(conversationList == null) {
|
||||
return;
|
||||
}
|
||||
Collections.sort(conversationList, (obj1, obj2) -> obj2.id.compareToIgnoreCase(obj1.id));
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,24 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:pathData="m58.47,25.62c-2.64,-0.04 -5.33,0.44 -7.93,1.5 -1.4,0.57 -2.7,1.27 -3.89,2.1 -7.68,5.29 -10.94,15.38 -7.28,24.38 0.72,1.77 1.67,3.39 2.79,4.83l5.88,-10.07c0.58,-1 0.46,-2.48 -0.26,-3.31h-0l-0.4,-0.97c-1.31,-3.22 -0,-6.85 2.92,-8.55 0.27,-0.16 0.56,-0.3 0.86,-0.42 3.52,-1.43 7.53,0.26 8.97,3.79l0.25,0.61c0.12,0.69 1.15,1.39 2.3,1.55l1.18,0.17c1.14,0.16 2.52,-0.54 3.06,-1.56 0,0 0.5,-0.95 2.06,-1.59 2.64,-1.07 5.66,0.2 6.73,2.84 0.07,0.17 0.12,0.34 0.17,0.5 0.18,0.39 0.5,0.59 0.81,0.69l1.49,0.13c-0.25,-1.33 -0.63,-2.65 -1.16,-3.96 -3.17,-7.8 -10.63,-12.56 -18.55,-12.67zM62.09,43.75c-1.07,-0.01 -2.26,0.65 -2.77,1.56 0,0 -0.97,1.73 -2.97,2.55 -1.64,0.66 -2.85,0.46 -2.85,0.46 -1.14,-0.2 -2.54,0.46 -3.13,1.46l-1.95,3.34c-0.59,1.02 -0.99,2.36 0.61,2.36h1.36c1.31,0 2.96,-0.92 3.64,-2.04 0,0 1.24,-2.02 3.69,-2.07 2.85,-0.06 5.21,2.21 5.27,5.06 0,0.04 0,0.07 0,0.11h-0c-0,2.8 -2.24,5.1 -5.06,5.16 -2.52,0.05 -3.88,-2.09 -3.88,-2.09 -0.7,-1.11 -2.36,-2.02 -3.67,-2.02l-3.34,0.02c-0.63,0.03 -1.29,0.17 -1.74,0.83l-1.23,2.11c-0.15,0.26 -0.3,0.52 -0.46,0.78 -0.58,1 -1.98,1.63 -3.12,1.41 0,0 -1.87,-0.36 -3.83,0.44 -4.07,1.66 -6.03,6.3 -4.38,10.37 1.66,4.07 6.3,6.03 10.37,4.38s6.03,-6.3 4.38,-10.37c-0.49,-1.2 -0.73,-1.46 -0.73,-1.46 -0.78,-0.85 -0.94,-2.36 -0.36,-3.35l0.18,-0.46c5.5,4.06 12.93,5.25 19.72,2.48 4.19,-1.7 7.5,-4.65 9.69,-8.24 2.06,-3.38 3.12,-7.34 2.97,-11.38l-2.02,-0.18s-0.74,0.15 -1.18,0.61c-0.08,0.12 -0.16,0.25 -0.24,0.36 -0.03,0.07 -0.07,0.11 -0.12,0.15 -0.53,0.67 -1.24,1.21 -2.09,1.55 -1.24,0.5 -2.55,0.49 -3.71,0.07 -0,-0 -0,-0 -0,-0h-0c-0.01,-0.01 -0.03,-0.01 -0.04,-0.02 -0.06,-0.02 -0.13,-0.05 -0.19,-0.07 -0.08,-0.03 -0.15,-0.07 -0.22,-0.1h-0c-0.07,-0.04 -0.15,-0.07 -0.22,-0.11 -0.07,-0.04 -0.14,-0.08 -0.21,-0.12h-0c-0.07,-0.04 -0.14,-0.09 -0.21,-0.13 -0.07,-0.05 -0.14,-0.1 -0.2,-0.14 -0.07,-0.05 -0.13,-0.1 -0.2,-0.15v-0c-0.04,-0.04 -0.09,-0.07 -0.13,-0.11 -0.02,-0.02 -0.04,-0.03 -0.06,-0.05 -0.06,-0.06 -0.12,-0.11 -0.18,-0.17 -0.06,-0.06 -0.12,-0.12 -0.17,-0.18 -0.11,-0.12 -0.22,-0.26 -0.32,-0.39 -0.05,-0.07 -0.1,-0.14 -0.15,-0.21 -0.19,-0.29 -0.35,-0.6 -0.49,-0.93l-0.07,-0.18c-0,-0.01 -0.01,-0.03 -0.02,-0.04 -0.02,-0.02 -0.05,-0.04 -0.08,-0.06 -0.01,-0.01 -0.02,-0.01 -0.03,-0.02 -0.02,-0.01 -0.05,-0.03 -0.08,-0.04 -0.03,-0.01 -0.06,-0.03 -0.1,-0.04 -0.14,-0.06 -0.32,-0.12 -0.54,-0.18v-0c-0.05,-0.01 -0.11,-0.03 -0.17,-0.04 -0,-0 -0.01,-0 -0.01,-0 -0.11,-0.03 -0.22,-0.05 -0.35,-0.08 -0,-0 -0.01,-0 -0.01,-0 -0.25,-0.05 -0.53,-0.1 -0.81,-0.14l-1.46,-0.21c-0.11,-0.02 -0.22,-0.02 -0.33,-0.02z"
|
||||
android:strokeWidth="2"
|
||||
android:strokeColor="#12d663"
|
||||
android:strokeLineCap="round"
|
||||
android:strokeLineJoin="round" />
|
||||
<path
|
||||
android:fillColor="#fff"
|
||||
android:pathData="m75.54,56.53c2.06,-3.38 3.12,-7.34 2.97,-11.38l-2.02,-0.18s-0.74,0.15 -1.18,0.61c-0.08,0.12 -0.16,0.25 -0.24,0.36h-0c-0.03,0.07 -0.07,0.11 -0.12,0.15 -0.53,0.67 -1.24,1.21 -2.08,1.55 -1.24,0.5 -2.55,0.49 -3.72,0.07 -0,-0 -0,-0 -0,-0 0,-0 0,-0 -0,-0 -0.01,-0.01 -0.03,-0.01 -0.04,-0.02 -0.06,-0.02 -0.13,-0.05 -0.19,-0.07 -0.08,-0.03 -0.15,-0.07 -0.23,-0.1 0,-0 0,-0 -0,-0 -0.07,-0.04 -0.15,-0.07 -0.22,-0.11 0,-0 0,-0 -0,-0 -0.07,-0.04 -0.14,-0.08 -0.21,-0.12 0,-0 0,-0 -0,-0 -0.07,-0.04 -0.14,-0.09 -0.21,-0.13 -0,-0 0,-0 0,-0 -0.07,-0.05 -0.14,-0.09 -0.2,-0.14 0,-0 0,-0 -0,-0 -0.07,-0.05 -0.13,-0.1 -0.2,-0.15 0,-0 0,-0 -0,-0 -0.04,-0.04 -0.09,-0.07 -0.13,-0.11 -0.02,-0.02 -0.04,-0.03 -0.06,-0.05 -0.06,-0.06 -0.12,-0.11 -0.18,-0.17 -0.06,-0.06 -0.12,-0.12 -0.17,-0.18v-0c-0.11,-0.12 -0.22,-0.26 -0.32,-0.39 -0.05,-0.07 -0.1,-0.14 -0.15,-0.21v-0c-0.19,-0.29 -0.36,-0.59 -0.49,-0.92l-0.07,-0.18c-0,-0.01 -0.01,-0.03 -0.02,-0.04 -0.02,-0.02 -0.05,-0.04 -0.08,-0.06 -0.01,-0.01 -0.02,-0.01 -0.02,-0.02 -0.02,-0.01 -0.05,-0.03 -0.08,-0.04 0,-0 0,-0 -0,-0 -0.03,-0.01 -0.06,-0.03 -0.1,-0.04 -0.14,-0.06 -0.32,-0.12 -0.54,-0.18 -0,-0 0,-0 0,-0 -0.05,-0.01 -0.11,-0.03 -0.17,-0.04v-0c-0,-0 -0.01,-0 -0.01,-0 -0.11,-0.03 -0.23,-0.05 -0.35,-0.08 -0,-0 -0.01,-0 -0.01,-0 -0.25,-0.05 -0.53,-0.1 -0.81,-0.14l-1.46,-0.21c-0.11,-0.02 -0.22,-0.02 -0.33,-0.02l0,-0c-1.07,-0.01 -2.26,0.65 -2.77,1.56 0,0 -0.97,1.73 -2.97,2.55 -1.64,0.66 -2.85,0.46 -2.85,0.46 -1.14,-0.2 -2.54,0.46 -3.12,1.46l-1.95,3.34c-0.59,1.02 -0.99,2.36 0.61,2.36h1.36c1.31,0 2.95,-0.92 3.64,-2.04 0,0 1.24,-2.02 3.69,-2.07 2.85,-0.06 5.21,2.21 5.27,5.06 0,0.04 0,0.07 0,0.11" />
|
||||
<path
|
||||
android:fillColor="#009639"
|
||||
android:pathData="m62.99,56.53c-0,2.8 -2.24,5.1 -5.06,5.16 -2.52,0.05 -3.88,-2.08 -3.88,-2.08 -0.7,-1.11 -2.36,-2.02 -3.67,-2.02l-3.34,0.02c-0.63,0.03 -1.29,0.17 -1.74,0.83l-1.23,2.11c-0.15,0.26 -0.3,0.52 -0.46,0.78 -0.58,1 -1.98,1.63 -3.12,1.41 0,0 -1.87,-0.36 -3.83,0.44 -4.07,1.66 -6.03,6.3 -4.37,10.37 1.66,4.07 6.3,6.03 10.37,4.38s6.03,-6.3 4.37,-10.37c-0.49,-1.2 -0.73,-1.46 -0.73,-1.46 -0.78,-0.85 -0.94,-2.36 -0.36,-3.35l0.18,-0.46c5.5,4.06 12.92,5.24 19.72,2.48 4.19,-1.7 7.5,-4.65 9.69,-8.23" />
|
||||
<path
|
||||
android:fillColor="#ed2e38"
|
||||
android:pathData="m46.65,29.21c-7.68,5.29 -10.94,15.38 -7.28,24.38 0.72,1.77 1.67,3.39 2.79,4.83l5.88,-10.06c0.58,-1 0.46,-2.49 -0.26,-3.31l-0,0 -0.4,-0.97c-1.31,-3.22 -0,-6.85 2.92,-8.55z" />
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="m50.29,35.53c0.27,-0.16 0.56,-0.3 0.86,-0.42 3.52,-1.43 7.54,0.26 8.97,3.78l0.25,0.61c0.12,0.69 1.15,1.39 2.3,1.55l1.18,0.17c1.14,0.16 2.52,-0.54 3.06,-1.56 0,0 0.5,-0.95 2.06,-1.59 2.64,-1.07 5.65,0.2 6.73,2.84 0.07,0.17 0.12,0.33 0.17,0.5 0.18,0.39 0.49,0.59 0.81,0.69l1.49,0.14c-0.25,-1.33 -0.63,-2.66 -1.16,-3.96 -4.23,-10.4 -16.08,-15.4 -26.48,-11.17 -1.4,0.57 -2.7,1.27 -3.89,2.1z" />
|
||||
</vector>
|
|
@ -0,0 +1,22 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillAlpha="1"
|
||||
android:fillColor="#000"
|
||||
android:pathData="m75.54,56.53c2.06,-3.38 3.12,-7.34 2.97,-11.38l-2.02,-0.18s-0.74,0.15 -1.18,0.61c-0.08,0.12 -0.16,0.25 -0.24,0.36h-0c-0.03,0.07 -0.07,0.11 -0.12,0.15 -0.53,0.67 -1.24,1.21 -2.08,1.55 -1.24,0.5 -2.55,0.49 -3.72,0.07 -0,-0 -0,-0 -0,-0 0,-0 0,-0 -0,-0 -0.01,-0.01 -0.03,-0.01 -0.04,-0.02 -0.06,-0.02 -0.13,-0.05 -0.19,-0.07 -0.08,-0.03 -0.15,-0.07 -0.23,-0.1 0,-0 0,-0 -0,-0 -0.07,-0.04 -0.15,-0.07 -0.22,-0.11 0,-0 0,-0 -0,-0 -0.07,-0.04 -0.14,-0.08 -0.21,-0.12 0,-0 0,-0 -0,-0 -0.07,-0.04 -0.14,-0.09 -0.21,-0.13 -0,-0 0,-0 0,-0 -0.07,-0.05 -0.14,-0.09 -0.2,-0.14 0,-0 0,-0 -0,-0 -0.07,-0.05 -0.13,-0.1 -0.2,-0.15 0,-0 0,-0 -0,-0 -0.04,-0.04 -0.09,-0.07 -0.13,-0.11 -0.02,-0.02 -0.04,-0.03 -0.06,-0.05 -0.06,-0.06 -0.12,-0.11 -0.18,-0.17 -0.06,-0.06 -0.12,-0.12 -0.17,-0.18v-0c-0.11,-0.12 -0.22,-0.26 -0.32,-0.39 -0.05,-0.07 -0.1,-0.14 -0.15,-0.21v-0c-0.19,-0.29 -0.36,-0.59 -0.49,-0.92l-0.07,-0.18c-0,-0.01 -0.01,-0.03 -0.02,-0.04 -0.02,-0.02 -0.05,-0.04 -0.08,-0.06 -0.01,-0.01 -0.02,-0.01 -0.02,-0.02 -0.02,-0.01 -0.05,-0.03 -0.08,-0.04 0,-0 0,-0 -0,-0 -0.03,-0.01 -0.06,-0.03 -0.1,-0.04 -0.14,-0.06 -0.32,-0.12 -0.54,-0.18 -0,-0 0,-0 0,-0 -0.05,-0.01 -0.11,-0.03 -0.17,-0.04v-0c-0,-0 -0.01,-0 -0.01,-0 -0.11,-0.03 -0.23,-0.05 -0.35,-0.08 -0,-0 -0.01,-0 -0.01,-0 -0.25,-0.05 -0.53,-0.1 -0.81,-0.14l-1.46,-0.21c-0.11,-0.02 -0.22,-0.02 -0.33,-0.02l0,-0c-1.07,-0.01 -2.26,0.65 -2.77,1.56 0,0 -0.97,1.73 -2.97,2.55 -1.64,0.66 -2.85,0.46 -2.85,0.46 -1.14,-0.2 -2.54,0.46 -3.12,1.46l-1.95,3.34c-0.59,1.02 -0.99,2.36 0.61,2.36h1.36c1.31,0 2.95,-0.92 3.64,-2.04 0,0 1.24,-2.02 3.69,-2.07 2.85,-0.06 5.21,2.21 5.27,5.06 0,0.04 0,0.07 0,0.11" />
|
||||
<path
|
||||
android:fillAlpha="0.8"
|
||||
android:fillColor="#000"
|
||||
android:pathData="m62.99,56.53c-0,2.8 -2.24,5.1 -5.06,5.16 -2.52,0.05 -3.88,-2.08 -3.88,-2.08 -0.7,-1.11 -2.36,-2.02 -3.67,-2.02l-3.34,0.02c-0.63,0.03 -1.29,0.17 -1.74,0.83l-1.23,2.11c-0.15,0.26 -0.3,0.52 -0.46,0.78 -0.58,1 -1.98,1.63 -3.12,1.41 0,0 -1.87,-0.36 -3.83,0.44 -4.07,1.66 -6.03,6.3 -4.37,10.37 1.66,4.07 6.3,6.03 10.37,4.38s6.03,-6.3 4.37,-10.37c-0.49,-1.2 -0.73,-1.46 -0.73,-1.46 -0.78,-0.85 -0.94,-2.36 -0.36,-3.35l0.18,-0.46c5.5,4.06 12.92,5.24 19.72,2.48 4.19,-1.7 7.5,-4.65 9.69,-8.23" />
|
||||
<path
|
||||
android:fillAlpha="0.6"
|
||||
android:fillColor="#000"
|
||||
android:pathData="m46.65,29.21c-7.68,5.29 -10.94,15.38 -7.28,24.38 0.72,1.77 1.67,3.39 2.79,4.83l5.88,-10.06c0.58,-1 0.46,-2.49 -0.26,-3.31l-0,0 -0.4,-0.97c-1.31,-3.22 -0,-6.85 2.92,-8.55z" />
|
||||
<path
|
||||
android:fillAlpha="0.4"
|
||||
android:fillColor="#000"
|
||||
android:pathData="m50.29,35.53c0.27,-0.16 0.56,-0.3 0.86,-0.42 3.52,-1.43 7.54,0.26 8.97,3.78l0.25,0.61c0.12,0.69 1.15,1.39 2.3,1.55l1.18,0.17c1.14,0.16 2.52,-0.54 3.06,-1.56 0,0 0.5,-0.95 2.06,-1.59 2.64,-1.07 5.65,0.2 6.73,2.84 0.07,0.17 0.12,0.33 0.17,0.5 0.18,0.39 0.49,0.59 0.81,0.69l1.49,0.14c-0.25,-1.33 -0.63,-2.66 -1.16,-3.96 -4.23,-10.4 -16.08,-15.4 -26.48,-11.17 -1.4,0.57 -2.7,1.27 -3.89,2.1z" />
|
||||
</vector>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_bubbles_ps_background">#FFFFFF</color>
|
||||
</resources>
|
|
@ -0,0 +1,12 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="108"
|
||||
android:viewportHeight="108">
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="m88.49,53.86c0,6.8 -1.98,13.32 -5.37,18.71l13.86,13.89c6.79,-9.07 11.03,-20.41 11.03,-32.6 0,-12.19 -4.24,-23.53 -11.03,-32.6l-13.85,13.89c3.39,5.38 5.37,11.62 5.37,18.71z" />
|
||||
<path
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="m54.01,88.44c-18.95,0 -34.5,-15.59 -34.5,-34.58 0,-18.99 15.55,-34.58 34.49,-34.58 7.07,0 13.29,1.98 18.67,5.67l13.85,-13.89c-9.05,-6.81 -20.36,-11.06 -32.52,-11.06 -29.69,0 -54.01,24.09 -54.01,54.14 0,30.05 24.32,53.86 54.01,53.86 12.44,0 23.75,-4.25 32.8,-11.06l-13.85,-13.89c-5.37,3.4 -11.88,5.38 -18.94,5.38z" />
|
||||
</vector>
|
|
@ -24,104 +24,104 @@
|
|||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
android:paddingHorizontal="12dp"
|
||||
android:paddingVertical="24dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="150dp"
|
||||
android:layout_gravity="center"
|
||||
app:srcCompat="@drawable/fedilab_logo_bubbles" />
|
||||
|
||||
<!-- About app name -->
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center_horizontal"
|
||||
android:text="@string/app_name"
|
||||
android:textSize="20sp" />
|
||||
<!-- About version -->
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/about_version"
|
||||
tools:text="x.y.z"
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center_horizontal"
|
||||
android:textSize="16sp" />
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_version_copy"
|
||||
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||
android:layout_width="36dp"
|
||||
android:layout_height="36dp"
|
||||
app:iconGravity="textStart"
|
||||
app:iconPadding="0dp"
|
||||
android:layout_marginStart="10dp"
|
||||
android:contentDescription="@string/copy_version"
|
||||
app:icon="@drawable/ic_copy_link"/>
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="@string/app_name"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@style/TextAppearance.Material3.TitleLarge" />
|
||||
|
||||
|
||||
<!-- About developer -->
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/developer_title"
|
||||
<!-- About version -->
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/about_version"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_marginTop="10dp"
|
||||
android:gravity="center_vertical"
|
||||
android:padding="5dp"
|
||||
android:text="@string/about_developer"
|
||||
android:textColor="?colorPrimary"
|
||||
android:textSize="16sp"
|
||||
android:visibility="gone" />
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="6dp"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodyLarge"
|
||||
tools:text="X.Y.Z" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_version_copy"
|
||||
style="@style/Widget.Material3.Button.IconButton.Outlined"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="6dp"
|
||||
android:contentDescription="@string/copy_version"
|
||||
app:icon="@drawable/ic_copy_link" />
|
||||
|
||||
<!-- About developer -->
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/about_fediverse"
|
||||
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
style="@style/Widget.Material3.CardView.Elevated"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/acccount_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="20dp"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
android:padding="12dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/account_pp"
|
||||
android:layout_width="60dp"
|
||||
android:layout_height="60dp"
|
||||
android:layout_margin="10dp"
|
||||
android:contentDescription="@string/profile_picture" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="12dp"
|
||||
android:layout_weight="1"
|
||||
android:orientation="vertical"
|
||||
android:padding="10dp">
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/account_dn"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
android:textSize="16sp" />
|
||||
android:text="Fedilab Apps"
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodyLarge"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:id="@+id/account_un"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/TextAppearance.AppCompat.Body1"
|
||||
android:textSize="14sp" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
android:textAppearance="@style/TextAppearance.Material3.BodyMedium"
|
||||
tools:text="apps@toot.fedilab.app" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/account_follow"
|
||||
style="@style/Widget.Material3.Button.Icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_margin="10dp"
|
||||
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/make_an_action"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
|
@ -132,119 +132,123 @@
|
|||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/txt_developers"
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/donate_links"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:textSize="18sp"
|
||||
android:visibility="gone" />
|
||||
android:layout_marginTop="12dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_support"
|
||||
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="@string/support_the_app_on_liberapay" />
|
||||
|
||||
android:text="@string/about_donate"
|
||||
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_support_paypal"
|
||||
style="@style/Widget.Material3.Button.OutlinedButton"
|
||||
android:id="@+id/donate_liberapay"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:text="PayPal"
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="Liberapay"
|
||||
app:icon="@drawable/ic_liberapay"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/about_website"
|
||||
android:layout_width="match_parent"
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/donate_opencollective"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="OpenCollective"
|
||||
app:icon="@drawable/ic_opencollective"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/donate_paypal"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="PayPal"
|
||||
app:icon="@drawable/ic_paypal"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/about_website"
|
||||
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_website"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:autoLink="web"
|
||||
android:gravity="center"
|
||||
android:padding="10dp"
|
||||
android:text="https://fedilab.app"
|
||||
android:textSize="16sp"
|
||||
android:text="fedilab.app"
|
||||
app:icon="@drawable/ic_open_external"
|
||||
tools:ignore="HardcodedText" />
|
||||
|
||||
<!-- About license -->
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="5dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="2"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/about_license"
|
||||
android:textSize="16sp" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_license"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="3"
|
||||
android:text="@string/about_license_action" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="@string/about_license_action"
|
||||
app:icon="@drawable/ic_open_external" />
|
||||
|
||||
<!-- About license -->
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
<!-- Source code -->
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="5dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="2"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/about_code"
|
||||
android:textSize="16sp" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_code"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="3"
|
||||
android:text="@string/about_code_action" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="@string/about_code_action"
|
||||
app:icon="@drawable/ic_open_external" />
|
||||
|
||||
<!-- About The Kinrar\'s API -->
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="match_parent"
|
||||
<com.google.android.material.textview.MaterialTextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:padding="5dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:layout_weight="2"
|
||||
android:gravity="center"
|
||||
android:layout_marginTop="12dp"
|
||||
android:text="@string/about_thekinrar"
|
||||
android:textSize="16sp" />
|
||||
android:textAppearance="@style/TextAppearance.Material3.LabelLarge" />
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/about_thekinrar"
|
||||
android:layout_width="0dp"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="3"
|
||||
android:text="@string/about_thekinrar_action" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
android:layout_marginTop="6dp"
|
||||
android:text="@string/about_thekinrar_action"
|
||||
app:icon="@drawable/ic_open_external" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</ScrollView>
|
||||
|
|
|
@ -41,6 +41,11 @@
|
|||
android:fitsSystemWindows="true"
|
||||
app:layout_scrollFlags="scroll|enterAlways">
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/profile_picture"
|
||||
android:layout_width="30dp"
|
||||
|
@ -56,6 +61,9 @@
|
|||
android:layout_gravity="center_vertical"
|
||||
android:ellipsize="end"
|
||||
android:maxLines="1" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
</androidx.appcompat.widget.Toolbar>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
android:visibility="gone"
|
||||
tools:visibility="visible"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:importantForAccessibility="noHideDescendants"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
<TextView
|
||||
|
@ -51,9 +52,8 @@
|
|||
android:paddingTop="10dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:paddingEnd="10dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxHeight="300dp"
|
||||
android:scrollbars="vertical"
|
||||
android:layout_gravity="center_horizontal"
|
||||
|
@ -74,7 +74,7 @@
|
|||
android:paddingEnd="10dp"
|
||||
android:maxHeight="300dp"
|
||||
android:scrollbars="vertical"
|
||||
android:layout_height="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:gravity="center"
|
||||
android:textColor="#ffffffff"
|
||||
|
|
|
@ -64,16 +64,14 @@
|
|||
tools:src="@tools:sample/backgrounds/scenic" />
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/qr_code_generator"
|
||||
style="@style/Widget.Material3.Button.ElevatedButton"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="36dp"
|
||||
style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:iconGravity="textStart"
|
||||
app:iconPadding="0dp"
|
||||
android:contentDescription="@string/qr_code_generator"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_marginBottom="5dp"
|
||||
app:icon="@drawable/baseline_qr_code_24"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_alignParentEnd="true"
|
||||
|
@ -108,13 +106,12 @@
|
|||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/account_follow"
|
||||
style="@style/Widget.Material3.Button.Icon"
|
||||
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:contentDescription="@string/make_an_action"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintStart_toEndOf="@id/avatar_container"
|
||||
app:layout_constraintTop_toBottomOf="@id/banner_container"
|
||||
|
@ -123,13 +120,12 @@
|
|||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/account_notification"
|
||||
style="@style/Widget.Material3.Button.Icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:contentDescription="@string/set_notify"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
app:icon="@drawable/ic_baseline_notifications_off_24"
|
||||
app:layout_constraintEnd_toStartOf="@id/avatar_container"
|
||||
|
@ -138,13 +134,12 @@
|
|||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/header_edit_profile"
|
||||
style="@style/Widget.Material3.Button.Icon"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
style="@style/Widget.Material3.Button.IconButton.Filled"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:contentDescription="@string/edit_profile"
|
||||
android:scaleType="fitCenter"
|
||||
android:visibility="gone"
|
||||
app:icon="@drawable/ic_baseline_edit_24"
|
||||
app:layout_constraintStart_toEndOf="@id/avatar_container"
|
||||
|
@ -441,6 +436,9 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal"
|
||||
android:visibility="gone"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginHorizontal="6dp"
|
||||
android:gravity="center_vertical"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/familiar_followers"
|
||||
|
@ -457,11 +455,10 @@
|
|||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/open_remote_profile"
|
||||
style="@style/Widget.Material3.Button.Icon"
|
||||
style="@style/Widget.Material3.Button.IconButton.Outlined"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_marginStart="6dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:contentDescription="@string/display_remote_profile"
|
||||
android:scaleType="fitCenter"
|
||||
app:icon="@drawable/ic_baseline_manage_search_24" />
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center"
|
||||
android:contentDescription="@string/instance_logo"
|
||||
android:importantForAccessibility="no"
|
||||
android:scaleType="center"
|
||||
tools:src="@drawable/ic_baseline_home_24" />
|
||||
|
||||
|
@ -57,7 +57,7 @@
|
|||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_gravity="center"
|
||||
android:contentDescription="@string/move_timeline"
|
||||
android:importantForAccessibility="no"
|
||||
android:scaleType="center"
|
||||
android:src="@drawable/ic_baseline_drag_handle_24"
|
||||
tools:ignore="RtlHardcoded" />
|
||||
|
|
|
@ -310,6 +310,8 @@
|
|||
android:layout_marginStart="48dp"
|
||||
android:layout_marginTop="6dp"
|
||||
android:layout_marginEnd="6dp"
|
||||
android:focusable="true"
|
||||
android:importantForAccessibility="yes"
|
||||
android:orientation="vertical"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible">
|
||||
|
@ -332,12 +334,12 @@
|
|||
|
||||
<TextView
|
||||
android:id="@+id/translation_label"
|
||||
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:background="?colorSurface"
|
||||
android:elevation="2dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:paddingStart="2dp"
|
||||
android:paddingEnd="2dp"
|
||||
android:text="@string/translation"
|
||||
|
@ -352,9 +354,13 @@
|
|||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="4dp"
|
||||
android:importantForAccessibility="no"
|
||||
android:minHeight="48dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/translation_label"
|
||||
app:layout_goneMarginBottom="8dp" />
|
||||
app:layout_goneMarginBottom="8dp"
|
||||
tools:maxLines="4"
|
||||
tools:text="@tools:sample/lorem/random" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
@ -562,51 +568,34 @@
|
|||
android:layout_height="wrap_content"
|
||||
tools:text="1 January 2021, 12:00" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/reblog_info"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/repeat_info"
|
||||
android:contentDescription="@string/reblog"
|
||||
android:layout_width="20dp"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="12dp"
|
||||
app:srcCompat="@drawable/ic_repeat" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/reblogs_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="48dp"
|
||||
android:textColor="?attr/colorControlNormal"
|
||||
app:icon="@drawable/ic_repeat"
|
||||
app:iconTint="?attr/colorControlNormal"
|
||||
tools:text="10" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/favourite_info"
|
||||
style="@style/Widget.Material3.Button.TextButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/fav_info"
|
||||
android:layout_width="20dp"
|
||||
android:contentDescription="@string/favourite"
|
||||
android:layout_height="20dp"
|
||||
android:layout_marginStart="12dp"
|
||||
app:srcCompat="@drawable/ic_star_outline" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/favorites_count"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="48dp"
|
||||
android:textColor="?attr/colorControlNormal"
|
||||
app:icon="@drawable/ic_star_outline"
|
||||
app:iconTint="?attr/colorControlNormal"
|
||||
tools:text="10" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
android:id="@+id/language"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="12dp"
|
||||
tools:text="EN" />
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
|
|
|
@ -60,15 +60,14 @@
|
|||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/media" />
|
||||
|
||||
<ImageView
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/view_hide"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_alignParentTop="true"
|
||||
android:layout_margin="5dp"
|
||||
style="@style/Widget.Material3.Button.IconButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:contentDescription="@string/visibility"
|
||||
android:src="@drawable/ic_baseline_visibility_24"
|
||||
android:importantForAccessibility="no"
|
||||
app:icon="@drawable/ic_baseline_visibility_24"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/media" />
|
||||
|
||||
|
|
|
@ -8,7 +8,8 @@
|
|||
<ImageButton
|
||||
android:layout_gravity="center"
|
||||
android:id="@id/exo_play_pause"
|
||||
style="@style/ExoMediaButton.Pause" />
|
||||
style="@style/ExoMediaButton.Pause"
|
||||
app:tint="?colorPrimary" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/seekbar_controller"
|
||||
|
@ -32,7 +33,10 @@
|
|||
android:layout_width="wrap_content"
|
||||
app:bar_height="6dp"
|
||||
android:layout_height="26dp"
|
||||
android:layout_weight="1" />
|
||||
android:layout_weight="1"
|
||||
app:buffered_color="?colorSecondaryContainer"
|
||||
app:played_color="?colorPrimary"
|
||||
app:scrubber_color="?colorPrimary" />
|
||||
|
||||
<TextView
|
||||
android:id="@id/exo_duration"
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_bubbles_ps_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_bubbles_ps_foreground" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_bubbles_ps_monochrome" />
|
||||
</adaptive-icon>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_bubbles_ps_background" />
|
||||
<foreground android:drawable="@drawable/ic_launcher_bubbles_ps_foreground" />
|
||||
<monochrome android:drawable="@drawable/ic_launcher_bubbles_ps_monochrome" />
|
||||
</adaptive-icon>
|
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_bubbles_ps.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
app/src/main/res/mipmap-hdpi/ic_launcher_bubbles_ps_round.png
Normal file
After Width: | Height: | Size: 5 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_bubbles_ps.png
Normal file
After Width: | Height: | Size: 1.8 KiB |
BIN
app/src/main/res/mipmap-mdpi/ic_launcher_bubbles_ps_round.png
Normal file
After Width: | Height: | Size: 3 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_bubbles_ps.png
Normal file
After Width: | Height: | Size: 4.1 KiB |
BIN
app/src/main/res/mipmap-xhdpi/ic_launcher_bubbles_ps_round.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_bubbles_ps.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/ic_launcher_bubbles_ps_round.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_bubbles_ps.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
app/src/main/res/mipmap-xxxhdpi/ic_launcher_bubbles_ps_round.png
Normal file
After Width: | Height: | Size: 17 KiB |
|
@ -571,8 +571,6 @@
|
|||
<string name="check_redirect">تحقّق مِن إعادة التوجيه</string>
|
||||
<string name="no_redirect">هذا العنوان لا يحوّل إلى عنوان آخر</string>
|
||||
<string name="redirect_detected">%1$s \n\nيُحوّل إلى\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">أزل معلّمات UTM</string>
|
||||
<string name="set_utm_parameters_indication">يقوم التطبيق تلقائيا بإزالة معلمات UTM مِن عناوين المواقع قبل زيارة الرابط.</string>
|
||||
<string name="talking_about">%d أشخاص يتحدثون عن ذلك</string>
|
||||
<string name="twitter_accounts">حسابات تويتر (عبر Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">أسماء حسابات تويتر مُفرّقة بمسافة بيضاء</string>
|
||||
|
|
|
@ -518,8 +518,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -579,8 +579,6 @@
|
|||
\nredirects to
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -551,8 +551,6 @@
|
|||
<string name="check_redirect">Comprovar la redirecció</string>
|
||||
<string name="no_redirect">El redireccionament de la URL no funciona</string>
|
||||
<string name="redirect_detected">%1$s \n\nredireccions a\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Eliminar seguiments de màrketing (UTM)</string>
|
||||
<string name="set_utm_parameters_indication">L\'aplicació eliminarà automàticament els seguiments de màrketing (UTM) dels URL abans de seguir un enllaç.</string>
|
||||
<string name="talking_about">%d persones parlant</string>
|
||||
<string name="twitter_accounts">Comptes de Twitter (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Usuaris de Twitter separats per espais</string>
|
||||
|
@ -1097,4 +1095,19 @@
|
|||
<string name="set_mention_booster_indication">En respondre a un impuls, s\'esmenta en la resposta la persona impulsora</string>
|
||||
<string name="no_cached_messages">No hi fa brams d\'inici guardats a la cau!</string>
|
||||
<string name="icons_visibility_summary">Podeu ocultar amb tranquil·litat aquestes icones a baix de tot per tenir més espai. També estan en el submenú.</string>
|
||||
<string name="links">Enllaços</string>
|
||||
<string name="cd_open_profile">Obrir pàgina del perfil</string>
|
||||
<string name="cd_switch_account">Canviar a %s</string>
|
||||
<string name="cd_translated_media_description">Descripció traduïda de mèdia: %s</string>
|
||||
<string name="add_featured_hashtag">Afegir etiqueta destacada</string>
|
||||
<string name="no_feature_hashtag_suggestion">Sense suggeriments per a les etiquetes destacades!</string>
|
||||
<string name="fields_title">Afegir o suprimir camps</string>
|
||||
<string name="featured_hashtags_title">Afegir o suprimir etiquetes destacades</string>
|
||||
<string name="delete_featured_hashtag">Esborrar etiqueta destacada</string>
|
||||
<string name="delete_featured_hashtag_confirm">Estàs segura d\'esborrar aquesta etiqueta destacada?</string>
|
||||
<string name="link_image">Imatge associada a l\'enllaç</string>
|
||||
<string name="followed_tag_success">Ja estàs seguint aquesta etiqueta!</string>
|
||||
<string name="action_follow_tag_confirm">Estàs segura de seguir l\'etiqueta %1$s??</string>
|
||||
<string name="underline_bottom_hashtags">Ressaltar etiquetes inferiors</string>
|
||||
<string name="remaining_tags">…i %d més</string>
|
||||
</resources>
|
||||
|
|
|
@ -568,8 +568,6 @@
|
|||
\npřesměrovává na
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">Odstranit parametry UTM</string>
|
||||
<string name="set_utm_parameters_indication">Aplikace bude před otevřením odkazu automaticky odstraňovat parametry UTM.</string>
|
||||
<string name="talking_about">Hovoří %d lidí</string>
|
||||
<string name="twitter_accounts">Účty Twitteru (přes Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Uživatelská jména Twitteru oddělená mezerou</string>
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
<item quantity="two">eiliad</item>
|
||||
<item quantity="few">%d eiliadau</item>
|
||||
<item quantity="many">%d eiliadau</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="date_minutes_polls">
|
||||
<item quantity="zero">%d minutes</item>
|
||||
|
@ -125,7 +125,7 @@
|
|||
<item quantity="two">%d awr</item>
|
||||
<item quantity="few">%d oriau</item>
|
||||
<item quantity="many">%d oriau</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<plurals name="date_day_polls">
|
||||
<item quantity="zero">%d days</item>
|
||||
|
@ -133,7 +133,7 @@
|
|||
<item quantity="two">%d dydd</item>
|
||||
<item quantity="few">%d dyddiau</item>
|
||||
<item quantity="many">%d dyddiau</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<!-- TOOT -->
|
||||
<string name="toot_select_image_error">Roedd gwall!</string>
|
||||
|
@ -503,7 +503,7 @@
|
|||
<item quantity="two">%d pleidleisiwr</item>
|
||||
<item quantity="few">%d pleidleisiwyr</item>
|
||||
<item quantity="many">%d pleidleisiwyr</item>
|
||||
<item quantity="other"></item>
|
||||
<item quantity="other"/>
|
||||
</plurals>
|
||||
<string-array name="poll_choice_type">
|
||||
<item>Single choice</item>
|
||||
|
@ -571,8 +571,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nyn ailgyfeirio i\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d pobl yn sôn</string>
|
||||
<string name="twitter_accounts">Cyfrifon Twitter (trwy Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -546,8 +546,6 @@
|
|||
<string name="check_redirect">Tjek omdiregering</string>
|
||||
<string name="no_redirect">Denne URL omdirigerer ikke</string>
|
||||
<string name="redirect_detected">%1$s\n\nomdirigerer til\n\n%2$s</string>
|
||||
<string name="set_utm_parameters">Fjern UTM-parametre</string>
|
||||
<string name="set_utm_parameters_indication">App\'en fjerner automatisk UTM-parametre fra URL\'er, inden du følger et link.</string>
|
||||
<string name="talking_about">%d folk snakker</string>
|
||||
<string name="twitter_accounts">Twitter-kontoer (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter-brugernavne, adskilt af mellemrum</string>
|
||||
|
|
|
@ -63,7 +63,7 @@
|
|||
<string name="no_emoji">Die App verfügt derzeit nicht über benutzerdefinierte Emojis.</string>
|
||||
<string name="logout_account_confirmation">Bist Du sicher, dass Du Dich von @%1$s@%2$s abmelden möchtest\?</string>
|
||||
<!-- Status -->
|
||||
<string name="no_status">Kein Beitrag zum Anzeigen</string>
|
||||
<string name="no_status">Keine Nachricht zum Anzeigen</string>
|
||||
<string name="favourite_add">Diesen Beitrag Deinen Favoriten hinzufügen\?</string>
|
||||
<string name="favourite_remove">Diesen Beitrag aus Deinen Favoriten entfernen\?</string>
|
||||
<string name="reblog_add">Diesen Beitrag teilen\?</string>
|
||||
|
@ -558,8 +558,6 @@
|
|||
<string name="check_redirect">Weiterleitung prüfen</string>
|
||||
<string name="no_redirect">Diese URL wird nicht weitergeleitet</string>
|
||||
<string name="redirect_detected">%1$s \n\nweitergeleitet zu\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">UTM-Parameter entfernen</string>
|
||||
<string name="set_utm_parameters_indication">Die App wird UTM-Parameter automatisch von URLs entfernen, bevor sie einen Link besucht.</string>
|
||||
<string name="talking_about">%d Leute sprechen</string>
|
||||
<string name="twitter_accounts">Twitter-Konten (über Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter-Benutzernamen durch ein Leerzeichen getrennt</string>
|
||||
|
@ -1099,4 +1097,5 @@
|
|||
<string name="add_poll">Umfrage anhängen</string>
|
||||
<string name="links">Links</string>
|
||||
<string name="toast_error_internet">Es gibt keine Verbindung zum Internet!</string>
|
||||
<string name="cd_translated_content">Übersetzter Inhalt: %s</string>
|
||||
</resources>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -551,8 +551,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Forigi UTM-parametrojn</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter-kontoj (per Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -555,8 +555,6 @@
|
|||
<string name="check_redirect">Comprobar redirección</string>
|
||||
<string name="no_redirect">El redireccionamiento de la URL no funciona</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirige a\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Eliminar parámetros UTM</string>
|
||||
<string name="set_utm_parameters_indication">La aplicación eliminará automáticamente los parámetros UTM de las URLs antes de visitar un enlace.</string>
|
||||
<string name="talking_about">%d personas hablando</string>
|
||||
<string name="twitter_accounts">Cuentas de Twitter (vía Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Nombres de usuario de Twitter separados por un espacio</string>
|
||||
|
|
|
@ -91,4 +91,68 @@
|
|||
<string name="shared_via">Jagatud Fedilabi abil</string>
|
||||
<string name="cd_open_profile">Ava profiili leht</string>
|
||||
<string name="cd_switch_account">Vaheta %s kontole</string>
|
||||
<string name="logout_account_confirmation">Kas sa oled kindel, et soovid @%1$s@%2$s konto välja logida?</string>
|
||||
<string name="no_status">Pole ühtegi näidatavat sõnumit</string>
|
||||
<string name="favourite_add">Kas lisad selle sõnumi lemmikute hulka?</string>
|
||||
<string name="favourite_remove">Kas eemaldad selle sõnumi lemmikute seast?</string>
|
||||
<string name="reblog_add">Kas annad sellele sõnumite hoogu?</string>
|
||||
<string name="more_action_1">Summuta</string>
|
||||
<string name="more_action_2">Blokeeri</string>
|
||||
<string name="more_action_3">Teata haldajale</string>
|
||||
<string name="more_action_4">Kustuta</string>
|
||||
<string name="more_action_5">Kopeeri</string>
|
||||
<string name="more_action_6">Jaga</string>
|
||||
<string name="more_action_7">Maini</string>
|
||||
<string name="more_action_8">Ajastatud summutamine</string>
|
||||
<string name="more_action_9">Kustuta ja koosta uuesti</string>
|
||||
<string name="bookmarks">Järjehoidjad</string>
|
||||
<string name="bookmark_add">Lisa järjehoidjaks</string>
|
||||
<string name="bookmark_remove">Eemalda järjehoidja</string>
|
||||
<string name="status_bookmarked">Olek on lisatud järjehoidjaks!</string>
|
||||
<string name="status_unbookmarked">Olek on eemaldatud järjehoidjate seast!</string>
|
||||
<string name="add_content_warning">Lisa sisuhoiatus</string>
|
||||
<string name="remove_content_warning">Eemalda sisuhoiatus</string>
|
||||
<string name="change_visibility">Muuda nähtavust</string>
|
||||
<string name="set_language">Vali keel</string>
|
||||
<string name="action_publish">Avalda</string>
|
||||
<string name="open_new_attachment_panel">Ava uus manuste riba</string>
|
||||
<string name="close_new_attachment_panel">Sulge uus manuste riba</string>
|
||||
<string name="attach_images">Lisa pilte manuseks</string>
|
||||
<string name="attach_audio">Lisa helifaile manuseks</string>
|
||||
<string name="attach_videos">Lisa videoid manuseks</string>
|
||||
<string name="attach_files">Lisa faile manuseks</string>
|
||||
<string name="add_poll">Lisa küsitlus</string>
|
||||
<string name="date_seconds">%d sek</string>
|
||||
<string name="date_minutes">%d min</string>
|
||||
<string name="date_hours">%d t</string>
|
||||
<string name="date_day">%d pv</string>
|
||||
<string name="about_vesrion">Versioon %1$s</string>
|
||||
<string name="about_developer">Arendaja:</string>
|
||||
<string name="about_license">Litsents:</string>
|
||||
<string name="about_license_action">GNU GPL versioon 3</string>
|
||||
<string name="about_code">Lähtekood:</string>
|
||||
<string name="exit">Välju</string>
|
||||
<string name="track_selection_title">Vali meediavood</string>
|
||||
<string name="auto">Automaatne</string>
|
||||
<string name="thumbnail">Pisipilt</string>
|
||||
<string name="cd_translated_media_description">Tõlgitud meediumi kirjeldus: %s</string>
|
||||
<string name="reblog_remove">Kas lõpetad sellele sõnumile hooandmise?</string>
|
||||
<string name="toot_select_image_error">Meediumi valimisel tekkis viga!</string>
|
||||
<string name="toot_delete_media">Kas eemaldad selle meediumi?</string>
|
||||
<string name="toot_error_no_content">Sinu sõnum on tühi!</string>
|
||||
<string name="toots_visibility_title">Vaikimisi on sõnumite nähtavus:</string>
|
||||
<string name="toot_sent">Sõnum on saadetud!</string>
|
||||
<string name="status_cnt">Sõnumid \n %1$s</string>
|
||||
<string name="remove_scheduled">Kas kustutad ajastatud sõnumid?</string>
|
||||
<string name="no_scheduled_toots">Pole ajastatud sõnumeid, mida kuvada!</string>
|
||||
<string name="toot_scheduled">See sõnum on ajastatud!</string>
|
||||
<string name="notif_status">kirjutas uue sõnumi</string>
|
||||
<string name="toast_reblog">Sõnumile lisati hoogu!</string>
|
||||
<string name="toast_unreblog">Sõnumile lõpetati hoo lisamine!</string>
|
||||
<string name="toast_favourite">Sõnum lisati sinu lemmikute hulka!</string>
|
||||
<string name="toast_unfavourite">Sõnum eemaldati sinu lemmikute seast!</string>
|
||||
<string name="toast_bookmark">Sõnum lisati sinu järjehoidjate hulka!</string>
|
||||
<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>
|
||||
</resources>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Egiaztatu birbideratzea</string>
|
||||
<string name="no_redirect">URL honek ez du birbideratzen</string>
|
||||
<string name="redirect_detected">%1$s \n\n helbideak \n\n %2$s helbidera birbideratzen du</string>
|
||||
<string name="set_utm_parameters">Kendu UTM parametroak</string>
|
||||
<string name="set_utm_parameters_indication">Aplikazioak automatikoki kenduko ditu URL baten UTM parametroak hau bisitatu aurretik.</string>
|
||||
<string name="talking_about">%d pertsona hitz egiten</string>
|
||||
<string name="twitter_accounts">Twitter kontuak (Nitter bidez)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter erabiltzaile-izenak zuriunez bereizita</string>
|
||||
|
|
|
@ -546,8 +546,6 @@
|
|||
<string name="check_redirect">بررسی تغییر مسیر</string>
|
||||
<string name="no_redirect">این نشانی تغییر مسیر نمیدهد</string>
|
||||
<string name="redirect_detected">%1$s \n\nبه\n\n %2$s تغییر مسیر میدهد</string>
|
||||
<string name="set_utm_parameters">پاککردن پارامترهای UTM</string>
|
||||
<string name="set_utm_parameters_indication">برنامه بهطور خودکار پارامترهای UTM را از نشانیها پیش از بازدید پیوند پاک میکند.</string>
|
||||
<string name="talking_about">%d نفر در حال گفتگو</string>
|
||||
<string name="twitter_accounts">حسابهای توییتر (از طریق Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">نامهای کاربری توییتر با فاصله جدا شده</string>
|
||||
|
@ -722,7 +720,7 @@
|
|||
<string name="label_rectangle">مستطیل</string>
|
||||
<string name="messages_in_cache_for_other_timelines">بوقهای نهانشده برای دیگر خطهای زمانی</string>
|
||||
<string name="delete_cache_message">آیا مطمئنید که میخواهید حافظه نهان را پاک کنید؟ اگر پیشنویسهایی با رسانه دارید، رسانههای پیوست از دست میروند.</string>
|
||||
<string name="change_logo_description">تغییر لوگوی برنامه در دستگاه شما</string>
|
||||
<string name="change_logo_description">تغییر نماد برنامه در دستگاه شما</string>
|
||||
<string name="action_pin">سنجاق بوق</string>
|
||||
<string name="set_unlisted_replies">پاسخهای فهرستنشده</string>
|
||||
<string name="notification_remove_from_cache">آگاهسازیها از حافظه نهان پاک شدند.</string>
|
||||
|
@ -878,7 +876,7 @@
|
|||
<string name="set_display_bookmark_indication">همیشه دکمه نشانهگذاری را نمایش بده</string>
|
||||
<string name="fetch_more_messages">دریافت بوقهای بیشتر…</string>
|
||||
<string name="label_oval">بیضی</string>
|
||||
<string name="pickup_logo">انتخاب لوگو</string>
|
||||
<string name="pickup_logo">انتخاب نماد</string>
|
||||
<string name="restart">بازآغاز</string>
|
||||
<string name="chart_home_cache">سوابق حافظه نهان خانه در هر ساعت</string>
|
||||
<string name="auto">خودکار</string>
|
||||
|
@ -936,7 +934,7 @@
|
|||
<string name="poll_type_single">تکگزینهای</string>
|
||||
<string name="poll_duration">مدت نظرسنجی:</string>
|
||||
<string name="set_display_translate_indication">همیشه دکمه ترجمه را نمایش بده</string>
|
||||
<string name="change_logo">تغییر لوگو</string>
|
||||
<string name="change_logo">تغییر نماد</string>
|
||||
<string name="toast_unpin">بوق دیگر سنجاق نیست!</string>
|
||||
<string name="keep_notifications">نگهداری آگاهسازیها</string>
|
||||
<string name="set_notif_update">آگاهسازی برای بهروزرسانیها</string>
|
||||
|
|
|
@ -562,8 +562,6 @@
|
|||
<string name="check_redirect">Vérifier la redirection</string>
|
||||
<string name="no_redirect">Cette URL ne redirige pas</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirige vers\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Supprimer les paramètres UTM</string>
|
||||
<string name="set_utm_parameters_indication">L’application supprimera automatiquement les paramètres UTM des URL avant de visiter un lien.</string>
|
||||
<string name="talking_about">%d personnes en parlent</string>
|
||||
<string name="twitter_accounts">Comptes Twitter (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Noms d\'utilisateurs Twitter séparés par un espace</string>
|
||||
|
|
|
@ -453,8 +453,6 @@
|
|||
\nath-stiùireadh gu
|
||||
\n
|
||||
\n%2$s</string>
|
||||
<string name="set_utm_parameters">Thoir air falbh paramadairean UTM</string>
|
||||
<string name="set_utm_parameters_indication">Bheir an aplacaid air falbh paramadairean UTM o URLaichean gu fèin-obrachail mus tadhail i air a’ cheangal.</string>
|
||||
<string name="talking_about">Tha %d a’ bruidhinn</string>
|
||||
<string name="twitter_accounts">Cunntasan Twitter (slighe Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Ainmean-cleachdaiche Twitter, sgaraichte le beàrnan</string>
|
||||
|
|
|
@ -549,8 +549,6 @@
|
|||
<string name="check_redirect">Comproba redirección</string>
|
||||
<string name="no_redirect">Este URL non redirixe</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirixe a\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Eliminar parámetros UTM</string>
|
||||
<string name="set_utm_parameters_indication">A app borrará automáticamente os parámetros UTM dos URLs antes de visitar a ligazón.</string>
|
||||
<string name="talking_about">%d persoas comentando</string>
|
||||
<string name="twitter_accounts">Contas de Twitter (vía Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Nomes de usuaria Twitter separados por vírgulas</string>
|
||||
|
@ -1111,4 +1109,13 @@
|
|||
<string name="followed_tag_success">Agora segues esta etiqueta!</string>
|
||||
<string name="action_follow_tag_confirm">Tes certeza de querer seguir a etiqueta %1$s??</string>
|
||||
<string name="remaining_tags">…e %d máis</string>
|
||||
<string name="tab_public_timeline">Cronoloxía pública</string>
|
||||
<string name="tab_private_mentions">Mencións privadas</string>
|
||||
<string name="cd_translated_content">Contido traducido: %s</string>
|
||||
<string name="set_tracking_parameters">Retirar parámetros de rastrexo</string>
|
||||
<string name="set_tracking_parameters_indication">A app quitará automaticamente os parámetros do URL que permiten rastrexarte ao premer nunha ligazón.</string>
|
||||
<string name="cd_list_timeline">%s. Cronoloxía da lista</string>
|
||||
<string name="cd_hash_tag_timeline">%s. Cronoloxía do cancelo</string>
|
||||
<string name="cd_hide_media">Ocultar multimedia</string>
|
||||
<string name="cd_show_media">Mostrar multimedia</string>
|
||||
</resources>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -546,8 +546,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -560,8 +560,6 @@
|
|||
<string name="check_redirect">Controlla reindirizzamento</string>
|
||||
<string name="no_redirect">Questo URL non reindirizza</string>
|
||||
<string name="redirect_detected">%1$s \n\nreindirizza verso\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Rimuovi parametri UTM</string>
|
||||
<string name="set_utm_parameters_indication">L\'app rimuoverà automaticamente i parametri UTM dagli URL prima di aprire un collegamento.</string>
|
||||
<string name="talking_about">%d persone ne parlano</string>
|
||||
<string name="twitter_accounts">Account Twitter (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Nomi utente Twitter separati da spazio</string>
|
||||
|
|
|
@ -120,7 +120,7 @@
|
|||
<string name="toot_delete_media">このメディアを削除しますか?</string>
|
||||
<string name="toot_error_no_content">メッセージが入力されていません!</string>
|
||||
<string name="toot_sent">投稿しました!</string>
|
||||
<string name="toot_sensitive">メディアを閲覧注意にする</string>
|
||||
<string name="toot_sensitive">センシティブな情報ですか?</string>
|
||||
<string name="no_draft">下書きはありません!</string>
|
||||
<string name="choose_accounts">アカウントを選択</string>
|
||||
<string name="select_accounts">複数のアカウントを選択</string>
|
||||
|
@ -142,7 +142,7 @@
|
|||
<string name="status_cnt">投稿
|
||||
\n %1$s</string>
|
||||
<string name="following_cnt">フォロー中 \n %1$s</string>
|
||||
<string name="followers_cnt">フォロワー\n %1$s</string>
|
||||
<string name="followers_cnt">フォロワー \n %1$s</string>
|
||||
<string name="reject">拒否</string>
|
||||
<!-- Scheduled toots -->
|
||||
<string name="no_scheduled_toots">投稿予約はありません!</string>
|
||||
|
@ -195,7 +195,7 @@
|
|||
<string name="set_notif_status">新しい投稿を通知する</string>
|
||||
<string name="set_share_validation">ブースト前に確認ダイアログを表示する</string>
|
||||
<string name="set_share_validation_fav">お気に入りに登録する前に確認ダイアログを表示する</string>
|
||||
<string name="set_notify">通知する</string>
|
||||
<string name="set_notify">通知しますか?</string>
|
||||
<string name="set_notif_silent">サイレント通知</string>
|
||||
<string name="set_nsfw_timeout">NSFW表示のタイムアウト(単位は秒、0でオフ)</string>
|
||||
<string name="set_med_desc_timeout">メディアの説明のタイムアウト(単位は秒、0でオフ)</string>
|
||||
|
@ -547,11 +547,9 @@
|
|||
<string name="open_other_app">別のアプリで開く</string>
|
||||
<string name="check_redirect">リダイレクト先を確認する</string>
|
||||
<string name="no_redirect">このURLはリダイレクトではありません</string>
|
||||
<string name="redirect_detected">%1$s\n\nは\n\n%2$sにリダイレクトしています</string>
|
||||
<string name="set_utm_parameters">UTMパラメータを削除する</string>
|
||||
<string name="set_utm_parameters_indication">リンクを開く前に自動的にURLからUTMパラメータを取り除きます。</string>
|
||||
<string name="redirect_detected">%1$s \n\nは\n\n%2$sにリダイレクトしています</string>
|
||||
<string name="talking_about">%d人が話題にしています</string>
|
||||
<string name="twitter_accounts">Twitterアカウント(via Nitter)</string>
|
||||
<string name="twitter_accounts">Twitterアカウント(Nitter経由)</string>
|
||||
<string name="list_of_twitter_accounts">Twitterのユーザー名をスペースで区切って入力</string>
|
||||
<string name="identity_proofs">身分証明</string>
|
||||
<string name="verified_user">認証済み</string>
|
||||
|
@ -571,7 +569,7 @@
|
|||
\n
|
||||
\nまた、そのメッセージを無視するように設定からプッシュ通知を無効にすることもできます。</string>
|
||||
<string name="select_distributors">ディストリビューターを選択</string>
|
||||
<string name="hide_content">コンテンツを非表示にする <</string>
|
||||
<string name="hide_content"><![CDATA[内容を非表示 <]]></string>
|
||||
<string name="stop_recording">レコーディングを停止</string>
|
||||
<string name="report_title">%1$sを報告しています</string>
|
||||
<string name="report_indication_title_status">この投稿で何が起こっているのか教えてください</string>
|
||||
|
@ -629,7 +627,7 @@
|
|||
<string name="post_message_text">投稿を送信中 %d/%d</string>
|
||||
<string name="instance_health_checkedat">%sでチェック</string>
|
||||
<string name="instance_health_uptime">稼働時間: %,.2f</string>
|
||||
<string name="show_content">コンテンツを表示 ></string>
|
||||
<string name="show_content"><![CDATA[内容を表示 >]]></string>
|
||||
<string name="is_up">稼働しています!</string>
|
||||
<string name="report_val1">この投稿が嫌いです</string>
|
||||
<string name="report_1_block_title">%1$sをブロックする</string>
|
||||
|
@ -1018,7 +1016,7 @@
|
|||
<string name="frequency_minutes">頻度(分)</string>
|
||||
<string name="fetching_messages">投稿を取得中</string>
|
||||
<string name="add_description">説明を追加</string>
|
||||
<string name="retrieve_remote_account">リモートアカウントを取得する</string>
|
||||
<string name="retrieve_remote_account">リモートアカウントを取得!</string>
|
||||
<string name="exit">終了</string>
|
||||
<string name="reblog_missing_description">この投稿のメディアには説明がありません。ブーストしますか?</string>
|
||||
<string name="total_fetched">取得した投稿の総数</string>
|
||||
|
@ -1068,4 +1066,64 @@
|
|||
<string name="Pronouns">代名詞</string>
|
||||
<string name="pronouns_support">代名詞のサポート</string>
|
||||
<string name="qr_code_generator">QRコード作成</string>
|
||||
<string name="links">リンク</string>
|
||||
<string name="instance_token">あなたのトークン</string>
|
||||
<string name="more_options">他のオプション</string>
|
||||
<string name="cd_open_profile">プロフィールページを開く</string>
|
||||
<string name="cd_switch_account">%sに切り替え</string>
|
||||
<string name="cd_translated_media_description">メディアの翻訳された説明: %s</string>
|
||||
<string name="action_favourite">お気に入り</string>
|
||||
<string name="action_reblog">ブースト</string>
|
||||
<string name="action_quote">引用</string>
|
||||
<string name="add_content_warning">閲覧警告を追加</string>
|
||||
<string name="remove_content_warning">閲覧警告を削除</string>
|
||||
<string name="change_visibility">表示の切り替え</string>
|
||||
<string name="set_language">言語を設定</string>
|
||||
<string name="action_publish">投稿</string>
|
||||
<string name="open_new_attachment_panel">新しい添付ファイルパネルを開く</string>
|
||||
<string name="close_new_attachment_panel">新しい添付ファイルパネルを閉じる</string>
|
||||
<string name="attach_images">画像を添付</string>
|
||||
<string name="attach_audio">音声を添付</string>
|
||||
<string name="attach_videos">動画を添付</string>
|
||||
<string name="attach_files">ファイルを添付</string>
|
||||
<string name="add_poll">投票を追加</string>
|
||||
<string name="toast_error_internet">インターネット接続がありません!</string>
|
||||
<string name="toast_error_token_empty">トークンは空にすることはできません!</string>
|
||||
<string name="set_pixelfed_full_media">フルスクリーンメディア</string>
|
||||
<string name="set_pixelfed_full_media_indication">メディアはスクリーンの幅いっぱいに表示され、高さはアスペクト比を保って表示されます。</string>
|
||||
<string name="instance_information">インスタンス情報</string>
|
||||
<string name="network">ネットワーク</string>
|
||||
<string name="twitter_tags">Twitterタグ(Nitter経由)</string>
|
||||
<string name="add_featured_hashtag">おすすめするハッシュタグを追加</string>
|
||||
<string name="no_feature_hashtag_suggestion">おすすめのハッシュタグ候補はありません!</string>
|
||||
<string name="fields_title">フィールドを追加または削除</string>
|
||||
<string name="featured_hashtags_title">おすすめのハッシュタグを追加または削除</string>
|
||||
<string name="delete_featured_hashtag">おすすめのハッシュタグを削除</string>
|
||||
<string name="delete_featured_hashtag_confirm">このおすすめしたハッシュタグを削除しますか?</string>
|
||||
<string name="use_token">トークンを使用</string>
|
||||
<string name="toast_fail_authenticate">アカウントの認証に失敗しました!</string>
|
||||
<string name="link_image">リンクに添付された画像</string>
|
||||
<string name="set_audo_hide_compose_title">投稿ボタンを自動的に隠す</string>
|
||||
<string name="set_audo_hide_compose_summary">タイムラインを上にスクロールしたときに投稿ボタンを自動的に隠します</string>
|
||||
<string name="followed_tag_success">このタグをフォローしました!</string>
|
||||
<string name="action_follow_tag_confirm">タグ%1$sをフォローしますか?</string>
|
||||
<string name="set_mention_booster">ブーストしたユーザーをメンションする</string>
|
||||
<string name="set_mention_booster_indication">ブーストされた投稿に返信するとき、その投稿をブーストしたユーザーを返信でメンションします</string>
|
||||
<string name="underline_bottom_hashtags">下部のハッシュタグをハイライトする</string>
|
||||
<string name="remaining_tags">…さらに%d件</string>
|
||||
<string name="tab_public_timeline">公開タイムライン</string>
|
||||
<string name="tab_private_mentions">プライベートメンション</string>
|
||||
<string name="tab_home_timeline">\@string/context_home</string>
|
||||
<string name="tab_local_timeline">\@string/local_menu</string>
|
||||
<string name="cd_translated_content">翻訳済みコンテンツ: %s</string>
|
||||
<string name="set_tracking_parameters">トラッキングパラメーターを削除</string>
|
||||
<string name="set_tracking_parameters_indication">アプリはリンクを踏む前に自動的にURLからトラッキングパラメーターを削除します。</string>
|
||||
<string name="tab_bubble_timeline">バブル・タイムライン</string>
|
||||
<string name="cd_list_timeline">%s. リスト・タイムライン</string>
|
||||
<string name="cd_hash_tag_timeline">%s. ハッシュタグ・タイムライン</string>
|
||||
<string name="cd_hide_media">メディアを非表示</string>
|
||||
<string name="cd_show_media">メディアを表示</string>
|
||||
<string name="about_fediverse">フェディバース:</string>
|
||||
<string name="about_website">ウェブサイト:</string>
|
||||
<string name="about_donate">寄付:</string>
|
||||
</resources>
|
||||
|
|
|
@ -551,8 +551,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -545,8 +545,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
97
app/src/main/res/values-lv/strings.xml
Normal file
|
@ -0,0 +1,97 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="action_about">Par lietotni</string>
|
||||
<string name="action_privacy">Konfidencialitāte</string>
|
||||
<string name="action_cache">Kešatmiņa</string>
|
||||
<string name="close">Aizvērt</string>
|
||||
<string name="yes">Jā</string>
|
||||
<string name="no">Nē</string>
|
||||
<string name="cancel">Atcelt</string>
|
||||
<string name="download">Lejupielādēt</string>
|
||||
<string name="password">Parole</string>
|
||||
<string name="email">E-pasts</string>
|
||||
<string name="accounts">Konti</string>
|
||||
<string name="toots">Ziņojumi</string>
|
||||
<string name="links">Saites</string>
|
||||
<string name="tags">Birkas</string>
|
||||
<string name="save">Saglabāt</string>
|
||||
<string name="instance">Serveris (Instance)</string>
|
||||
<string name="camera">Kamera</string>
|
||||
<string name="replies">Atbildes</string>
|
||||
<string name="drafts">Melnraksti</string>
|
||||
<string name="translate">Tulkot</string>
|
||||
<string name="notifications">Paziņojumi</string>
|
||||
<string name="settings">Iestatījumi</string>
|
||||
<string name="tab_home_timeline">\@string/context_home</string>
|
||||
<string name="tab_local_timeline">\@string/local_menu</string>
|
||||
<string name="action_quote">Citēt</string>
|
||||
<string name="more_action_2">Bloķēt</string>
|
||||
<string name="more_action_4">Dzēst</string>
|
||||
<string name="more_action_5">Kopēt</string>
|
||||
<string name="bookmarks">Grāmatzīmes</string>
|
||||
<string name="action_publish">Publicēt</string>
|
||||
<string name="about_developer">Izstrādātājs:</string>
|
||||
<string name="about_license">Licence:</string>
|
||||
<string name="followers">Sekotāji</string>
|
||||
<string name="set_notify">Paziņot?</string>
|
||||
<string name="settings_time_to">un</string>
|
||||
<string name="action_follow">Sekot</string>
|
||||
s
|
||||
<string name="action_unblock">Atbloķēt</string>
|
||||
<string name="languages">Valodas</string>
|
||||
<string name="context_conversation">Sarunas</string>
|
||||
<string name="information">Informācija</string>
|
||||
<string name="category">Kategorija</string>
|
||||
<string name="description">Apraksts</string>
|
||||
<string name="settings_category_label_interface">Saskarne</string>
|
||||
<string name="vote">Balsot</string>
|
||||
<string name="settings_category_notif_categories">Kategorijas</string>
|
||||
<string name="label_emoji">Emocijzīmes</string>
|
||||
<string name="label_text">Teksts</string>
|
||||
<string name="label_brush">Ota</string>
|
||||
<string name="saving">Saglabā…</string>
|
||||
<string name="category_regional">Reģionālā (Vietējā)</string>
|
||||
<string name="category_art">Māksla</string>
|
||||
<string name="category_music">Mūzika</string>
|
||||
<string name="category_tech">Tehnoloğijas</string>
|
||||
<string name="category_food">Ēdiens</string>
|
||||
<string name="reports">Atskaites</string>
|
||||
<string name="active">Aktīvs</string>
|
||||
<string name="account">Konts</string>
|
||||
<string name="select">Atlasīt</string>
|
||||
<string name="replace_youtube">YouTube</string>
|
||||
<string name="replace_twitter">Twitter</string>
|
||||
<string name="replace_instagram">Instagram</string>
|
||||
<string name="replace_reddit">Reddit</string>
|
||||
<string name="link_color_title">Saites</string>
|
||||
<string name="icons_color_title">Ikonas</string>
|
||||
<string name="translation">Tulkojums</string>
|
||||
<string name="network">Tīkls</string>
|
||||
<string name="set_watermark">Ūdenszīmes</string>
|
||||
<string name="keepon">Turpināt</string>
|
||||
<string name="approve">Apstiprināt</string>
|
||||
<string name="status">Statuss</string>
|
||||
<string name="resolved">Atrisināts</string>
|
||||
<string name="label_shape">Forma</string>
|
||||
<string name="label_oval">Ovāls</string>
|
||||
<string name="label_rectangle">Taisnstūris</string>
|
||||
<string name="label_line">Līnija</string>
|
||||
<string name="reply">Atbildēt</string>
|
||||
<string name="allow">Atļaut</string>
|
||||
<string name="user">Lietotājs</string>
|
||||
<string name="moderator">Moderators</string>
|
||||
<string name="administrator">Administrators</string>
|
||||
<string name="confirmed">Apstiprināts</string>
|
||||
<string name="unconfirmed">Neapstiprināts</string>
|
||||
<string name="profiles">Profili</string>
|
||||
<string name="notif_display_updates">Atjauninājumi</string>
|
||||
<string name="domains">Domēni</string>
|
||||
<string name="translator">Tulkotājs</string>
|
||||
<string name="set_translator">Tulkotājs</string>
|
||||
<string name="version">Versija</string>
|
||||
<string name="v_list">Saraksts</string>
|
||||
<string name="following">Seko</string>
|
||||
<string name="exit">Iziet</string>
|
||||
<string name="download_file">Lejupielādēt %1$s</string>
|
||||
<string name="download_from" formatted="false">Datne: %1$s</string>
|
||||
</resources>
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -559,8 +559,6 @@
|
|||
\nverwijst naar
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">UTM-parameters verwijderen</string>
|
||||
<string name="set_utm_parameters_indication">De app verwijdert automatisch UTM parameters van URLs voordat een link bezocht wordt.</string>
|
||||
<string name="talking_about">%d pratende mensen</string>
|
||||
<string name="twitter_accounts">Twitteraccounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter gebruikersnamen gescheiden door spatie</string>
|
||||
|
|
|
@ -932,7 +932,6 @@
|
|||
<string name="action_unfollow_tag">Slutt å følge emneknagg</string>
|
||||
<string name="followed_tags">Følgte emneknagger</string>
|
||||
<string name="set_unlisted_replies_indication">Det gjelder kun \"offentlige\" svar. Når aktivert, vil svarene dine automatisk ha synligheten «uopført» i stedet for «offentlig»</string>
|
||||
<string name="set_utm_parameters_indication">Appen vil automatisk fjerne UTM-parametere fra URL-er før du besøker en lenke.</string>
|
||||
<string name="login_status">Påloggingsstatus</string>
|
||||
<string name="change_logo_description">Endre logoen til appen på enheten din</string>
|
||||
<string name="action_pin">Fest melding</string>
|
||||
|
@ -963,7 +962,6 @@
|
|||
<string name="report_more">Er det noe mer du mener vi bør vite\?</string>
|
||||
<string name="report_more_remote">Kontoen er fra en annen server. Send en anonymisert kopi av rapporten til den andre serveren\?</string>
|
||||
<string name="administrator">Administrator</string>
|
||||
<string name="set_utm_parameters">Fjern UTM parameter</string>
|
||||
<string name="pinned">Festet</string>
|
||||
<string name="about_mastodon">\"Mastodon er ikke et enkelt nettsted som Twitter eller Facebook, det er et nettverk av tusenvis av fellesskap som drives av forskjellige organisasjoner og enkeltpersoner som gir en sømløs opplevelse av sosiale medier.\"</string>
|
||||
<string name="notif_display_follows">Følger</string>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -571,8 +571,6 @@
|
|||
\nprzekierowuje do
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">Usuń parametry UTM</string>
|
||||
<string name="set_utm_parameters_indication">Aplikacja automatycznie usunie parametry UTM z adresów URL przed odwiedzeniem linku.</string>
|
||||
<string name="talking_about">%d ludzi o tym pisze</string>
|
||||
<string name="twitter_accounts">Konta Twitter (przez Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Nazwy użytkowników Twittera oddzielone spacjami</string>
|
||||
|
|
|
@ -564,8 +564,6 @@
|
|||
\nredireciona para
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remover parâmetros UTM</string>
|
||||
<string name="set_utm_parameters_indication">O aplicativo removerá automaticamente os parâmetros UTM das URLs antes de visitar um link.</string>
|
||||
<string name="talking_about">%d pessoas conversando</string>
|
||||
<string name="twitter_accounts">Contas do Twitter (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Nomes de usuários do Twitter separados por um espaço</string>
|
||||
|
|
|
@ -556,8 +556,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -563,8 +563,6 @@
|
|||
<string name="check_redirect">Проверить перенаправление</string>
|
||||
<string name="no_redirect">Этот URL не перенаправляет</string>
|
||||
<string name="redirect_detected">%1$s \n\nперенаправляет на\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Удалить UTM параметры</string>
|
||||
<string name="set_utm_parameters_indication">Приложение будет автоматически удалять UTM параметры из URL-адреса, перед посещением ссылки.</string>
|
||||
<string name="talking_about">%d люди говорят</string>
|
||||
<string name="twitter_accounts">Аккаунты Twitter (с помощью Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Имена пользователей Twitter разделённые пробелом</string>
|
||||
|
|
|
@ -555,8 +555,6 @@
|
|||
<string name="check_redirect">Verìfica sa deviatzione</string>
|
||||
<string name="no_redirect">Custu URL non torrat a indiritzare</string>
|
||||
<string name="redirect_detected">%1$s \n \n torrat a imbiare cara a\n \n %2$s</string>
|
||||
<string name="set_utm_parameters">Boga is paràmetros UTM</string>
|
||||
<string name="set_utm_parameters_indication">S\'aplicatzione at a bogare in manera automàtica is paràmetros UTM dae is URL in antis de abèrrere unu ligàmene.</string>
|
||||
<string name="talking_about">%d persones nde sunt chistionende</string>
|
||||
<string name="twitter_accounts">Contos de Twitter (pro mèdiu de Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Nùmenes de utente de Twitter separados dae ispàtzios</string>
|
||||
|
|
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -560,8 +560,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -555,8 +555,6 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter usernames space separated</string>
|
||||
|
|
|
@ -57,17 +57,17 @@
|
|||
<string name="follow_request">Följförfrågningar</string>
|
||||
<string name="settings">Inställningar</string>
|
||||
<string name="send_email">Skicka e-post</string>
|
||||
<string name="scheduled_toots">Schemalagda toots</string>
|
||||
<string name="disclaimer_full">Informationen nedan kan avspegla användarens profil ofullständigt.</string>
|
||||
<string name="insert_emoji">Infoga emoji</string>
|
||||
<string name="no_emoji">Appen kunde inte samla anpassade emojis för tillfället.</string>
|
||||
<string name="logout_account_confirmation">Är du säker på att du vill logga ut @%1$s@%2$s?</string>
|
||||
<string name="scheduled_toots">Schemalagda meddelanden</string>
|
||||
<string name="disclaimer_full">Nedanstående information kan ge en ofullständig bild av användarens profil.</string>
|
||||
<string name="insert_emoji">Infoga emotikon(er)</string>
|
||||
<string name="no_emoji">Appen kan inte visa anpassade emotikoner för tillfället.</string>
|
||||
<string name="logout_account_confirmation">Vill du verkligen logga ut från @%1$s@%2$s?</string>
|
||||
<!-- Status -->
|
||||
<string name="no_status">Ingen toot att visa</string>
|
||||
<string name="favourite_add">Lägg till detta toot till dina favoriter?</string>
|
||||
<string name="favourite_remove">Ta bort detta toot från dina favoriter?</string>
|
||||
<string name="reblog_add">Knuffa detta toot?</string>
|
||||
<string name="reblog_remove">Ta bort knuff av denna toot?</string>
|
||||
<string name="no_status">Inga meddelanden</string>
|
||||
<string name="favourite_add">Ska detta meddelande läggas till i dina favoriter?</string>
|
||||
<string name="favourite_remove">Ska detta meddelande inte vara favoriserat längre?</string>
|
||||
<string name="reblog_add">Knuffa detta meddelande?</string>
|
||||
<string name="reblog_remove">Ska detta meddelande inte knuffas längre?</string>
|
||||
<string name="more_action_1">Tysta</string>
|
||||
<string name="more_action_2">Blockera</string>
|
||||
<string name="more_action_3">Rapportera</string>
|
||||
|
@ -76,7 +76,7 @@
|
|||
<string name="more_action_6">Dela</string>
|
||||
<string name="more_action_7">Omnämn</string>
|
||||
<string name="more_action_8">Tidsinställd tystning</string>
|
||||
<string name="more_action_9">Ta bort & nytt utkast</string>
|
||||
<string name="more_action_9">Ta bort & skriv nytt utkast</string>
|
||||
<string-array name="more_action_confirm">
|
||||
<item>Tysta detta konto?</item>
|
||||
<item>Blockera detta konto?</item>
|
||||
|
@ -94,10 +94,10 @@
|
|||
<item>Ta bort & skriv om denna toot?</item>
|
||||
</string-array>
|
||||
<string name="bookmarks">Bokmärken</string>
|
||||
<string name="bookmark_add">Lägger till bokmärke</string>
|
||||
<string name="bookmark_add">Lägg till ett bokmärke</string>
|
||||
<string name="bookmark_remove">Ta bort bokmärke</string>
|
||||
<string name="status_bookmarked">Status har lagts till bokmärken!</string>
|
||||
<string name="status_unbookmarked">Status togs bort från bokmärken!</string>
|
||||
<string name="status_bookmarked">Statusen har bokmärkts!</string>
|
||||
<string name="status_unbookmarked">Statusen togs bort från bokmärkena!</string>
|
||||
<!-- Date -->
|
||||
<string name="date_seconds">%d s</string>
|
||||
<string name="date_minutes">%d m</string>
|
||||
|
@ -112,7 +112,7 @@
|
|||
<item quantity="other">%d minuter</item>
|
||||
</plurals>
|
||||
<plurals name="date_hours_polls">
|
||||
<item quantity="one">%d timma</item>
|
||||
<item quantity="one">%d timme</item>
|
||||
<item quantity="other">%d timmar</item>
|
||||
</plurals>
|
||||
<plurals name="date_day_polls">
|
||||
|
@ -120,18 +120,18 @@
|
|||
<item quantity="other">%d dagar</item>
|
||||
</plurals>
|
||||
<!-- TOOT -->
|
||||
<string name="toot_select_image_error">Ett fel uppstod när du valde media!</string>
|
||||
<string name="toot_delete_media">Ta bort denna media?</string>
|
||||
<string name="toot_error_no_content">Din toot är tom!</string>
|
||||
<string name="toot_sent">Tooten har skickats!</string>
|
||||
<string name="toot_select_image_error">Ett fel uppstod när du valde medium!</string>
|
||||
<string name="toot_delete_media">Ta bort detta medium?</string>
|
||||
<string name="toot_error_no_content">Ditt meddelande är tomt!</string>
|
||||
<string name="toot_sent">Meddelandet har skickats!</string>
|
||||
<string name="toot_sensitive">Känsligt innehåll?</string>
|
||||
<string name="no_draft">Inga utkast!</string>
|
||||
<string name="choose_accounts">Välj ett konto</string>
|
||||
<string name="select_accounts">Välj några konton</string>
|
||||
<string name="remove_draft">Ta bort utkast?</string>
|
||||
<string name="upload_form_description">Beskriv för synskadade</string>
|
||||
<string name="remove_draft">Ta bort utkastet?</string>
|
||||
<string name="upload_form_description">Beskriv för personer med nedsatt syn</string>
|
||||
<!-- Instance -->
|
||||
<string name="instance_no_description">Ingen beskrivning tillgänglig!</string>
|
||||
<string name="instance_no_description">Beskrivning saknas!</string>
|
||||
<!-- About -->
|
||||
<string name="about_vesrion">Version %1$s</string>
|
||||
<string name="about_developer">Utvecklare:</string>
|
||||
|
@ -550,8 +550,6 @@
|
|||
<string name="check_redirect">Kontrollera omdirigering</string>
|
||||
<string name="no_redirect">Denna URL kan inte omdirigera</string>
|
||||
<string name="redirect_detected">%1$s \n\nomdirigerar till\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Ta bort UTM parametrar</string>
|
||||
<string name="set_utm_parameters_indication">Appen kommer automatiskt ta bort UTM-parametrar från webbadresser innan du besöker en länk.</string>
|
||||
<string name="talking_about">%d personer pratar</string>
|
||||
<string name="twitter_accounts">Twitter-konton (via Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitteranvändarnamn separerade med mellanslag</string>
|
||||
|
@ -588,4 +586,33 @@
|
|||
<string name="delete_featured_hashtag">Ta bort vald tagg</string>
|
||||
<string name="no_feature_hashtag_suggestion">Förslag saknas för vald tagg.</string>
|
||||
<string name="fields_title">Lägg till eller ta bort fält</string>
|
||||
<string name="cd_open_profile">Profilsida öppen för allmänheten</string>
|
||||
<string name="cd_switch_account">Byt till %s</string>
|
||||
<string name="cd_translated_media_description">Översatt mediebeskrivning: %s</string>
|
||||
<string name="tab_home_timeline">\@sträng/kontext_hem</string>
|
||||
<string name="tab_public_timeline">Tidslinje öppen för allmänheten</string>
|
||||
<string name="tab_private_mentions">Privata omnämnanden</string>
|
||||
<string name="cd_translated_content">Översatt innehåll: %s</string>
|
||||
<string name="action_favourite">Favorit</string>
|
||||
<string name="action_reblog">Knuffa</string>
|
||||
<string name="action_quote">Citera</string>
|
||||
<string name="warn_boost_no_media_description">Om meddelandet saknar beskrivning vill jag bli varnad innan jag knuffar det</string>
|
||||
<string name="reblog_missing_description">Detta meddelande saknar mediebeskrivning. Vill du verkligen knuffa det ändå?</string>
|
||||
<string name="add_content_warning">Lägg till en innehållsvarning</string>
|
||||
<string name="remove_content_warning">Ta bort innehållsvarningen</string>
|
||||
<string name="change_visibility">Ändra hur detta visas</string>
|
||||
<string name="set_language">Ställ in språk</string>
|
||||
<string name="action_publish">Publicera</string>
|
||||
<string name="attach_images">Bifoga bilder</string>
|
||||
<string name="attach_audio">Bifoga ljudfil</string>
|
||||
<string name="attach_videos">Bifoga en film</string>
|
||||
<string name="attach_files">Bifoga filer</string>
|
||||
<string name="add_poll">Lägg till en omröstning</string>
|
||||
<string name="toots_visibility_title">Förvald visningsgrupp för meddelanden:</string>
|
||||
<string name="clipboard_version">Informationen har kopierats till urklipp</string>
|
||||
<string name="tag_already_followed">Den taggen följer du redan!</string>
|
||||
<string name="icon_size">Piktogramstorlekar</string>
|
||||
<string name="show_my_messages">Visa mina meddelanden</string>
|
||||
<string name="show_privates">Visa direktmeddelanden</string>
|
||||
<string name="more_options">Fler inställningar</string>
|
||||
</resources>
|
||||
|
|
|
@ -560,8 +560,6 @@
|
|||
<string name="check_redirect">Wybadej przekerowanie</string>
|
||||
<string name="no_redirect">Ta adresa URL niy przekerowuje</string>
|
||||
<string name="redirect_detected">%1$s \n\nprzekerowuje do\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Wymaż parametry UTM</string>
|
||||
<string name="set_utm_parameters_indication">Aplikacyjo autōmatycznie wymaże parametry UTM ze adresy URL przed ôtwarciym linku.</string>
|
||||
<string name="talking_about">%d ludzi godo</string>
|
||||
<string name="twitter_accounts">Kōnta Twitter (bez Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Miana używoczōw Twittera ôddzielōne spacyjami</string>
|
||||
|
|
|
@ -464,14 +464,12 @@
|
|||
<string name="check_redirect">திருப்பி விடுங்கள்</string>
|
||||
<string name="no_redirect">இந்த முகவரி திருப்பிவிடாது</string>
|
||||
<string name="redirect_detected">%1$s\n\n திருப்பிவிடுகிறது\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">யுடிஎம் அளவுருக்களை அகற்று</string>
|
||||
<string name="talking_about">%d மக்கள் பேசுகிறார்கள்</string>
|
||||
<string name="twitter_accounts">ட்விட்டர் கணக்குகள் (நிட்டர் வழியாக)</string>
|
||||
<string name="list_of_twitter_accounts">ட்விட்டர் பயனர்பெயர்கள் இடம் பிரிக்கப்பட்டது</string>
|
||||
<string name="identity_proofs">அடையாள சான்றுகள்</string>
|
||||
<string name="verified_user">சரிபார்க்கப்பட்ட அடையாளம்</string>
|
||||
<string name="verified_by">%1$s ( %2$s) ஆல் சரிபார்க்கப்பட்டது</string>
|
||||
<string name="set_utm_parameters_indication">இணைப்பைப் பார்வையிடுவதற்கு முன்பு பயன்பாடு தானாகவே UTM அளவுருக்களை UTM அளவுருக்களை அகற்றும்.</string>
|
||||
<string name="action_disabled">நடவடிக்கை முடக்கப்பட்டது</string>
|
||||
<string name="action_unfollow">பின்தொடரவும்</string>
|
||||
<string name="error_destination_path">ஏதோ தவறு நடந்தது, தயவுசெய்து உங்கள் பதிவிறக்க கோப்பகத்தை அமைப்புகளில் சரிபார்க்கவும்.</string>
|
||||
|
@ -1030,4 +1028,10 @@
|
|||
<string name="set_mention_booster">பூச்டரைக் குறிப்பிடவும்</string>
|
||||
<string name="set_mention_booster_indication">ஒரு ஊக்கத்திற்கு பதிலளிக்கும் போது, உயர்த்தப்பட்ட நபர் பதிலில் குறிப்பிடப்படுவார்</string>
|
||||
<string name="underline_bottom_hashtags">கீழே உள்ள ஏச்டேக்குகளை முன்னிலைப்படுத்தவும்</string>
|
||||
<string name="cd_open_profile">தன்விவரப் பக்கத்தைத் திற</string>
|
||||
<string name="cd_switch_account">%s க்கு மாறு</string>
|
||||
<string name="cd_translated_media_description">மொழிபெயர்க்கப்பட்ட ஊடக விளக்கம்: %s</string>
|
||||
<string name="followed_tag_success">நீங்கள் இப்போது இந்தக் குறிச்சொல்லைப் பின்பற்றுங்கள்!</string>
|
||||
<string name="action_follow_tag_confirm">நீங்கள் %1$s குறிச்சொல்லைப் பின்பற்ற விரும்புகிறீர்களா??</string>
|
||||
<string name="remaining_tags">…மற்றும் %d மேலும்</string>
|
||||
</resources>
|
||||
|
|
|
@ -559,8 +559,6 @@
|
|||
\nyönlendirir
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">UTM parametrelerini kaldır</string>
|
||||
<string name="set_utm_parameters_indication">Uygulama, bir bağlantıyı ziyaret etmeden önce bağlantılardan UTM parametrelerini otomatik olarak kaldıracak.</string>
|
||||
<string name="talking_about">%d kişi konuşuyor</string>
|
||||
<string name="twitter_accounts">Twitter hesapları (Nitter üzerinden)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter kullanıcı adları boşlukla ayrılmış</string>
|
||||
|
|
|
@ -559,8 +559,6 @@
|
|||
<string name="check_redirect">Перевірити перенаправлення</string>
|
||||
<string name="no_redirect">Ця URL-адреса не переспрямовує</string>
|
||||
<string name="redirect_detected">%1$s \n\nперенаправляє на\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Видалити параметри UTM</string>
|
||||
<string name="set_utm_parameters_indication">Програма автоматично видалить параметри UTM з URL-адрес перед переходом за посиланням.</string>
|
||||
<string name="talking_about">%d люди говорять</string>
|
||||
<string name="twitter_accounts">Акаунти Twitter (через Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Імена користувачів Twitter розділені пробілами</string>
|
||||
|
@ -1121,4 +1119,19 @@
|
|||
<string name="remaining_tags">…і ще %d</string>
|
||||
<string name="followed_tag_success">Тепер ви підписані на цей тег!</string>
|
||||
<string name="action_follow_tag_confirm">Ви впевнені, що хочете підписатися на тег %1$s??</string>
|
||||
<string name="tab_home_timeline">\@string/context_home</string>
|
||||
<string name="tab_local_timeline">\@string/local_menu</string>
|
||||
<string name="tab_public_timeline">Публічна хронологія</string>
|
||||
<string name="tab_private_mentions">Приватні згадки</string>
|
||||
<string name="cd_translated_content">Перекладений вміст: %s</string>
|
||||
<string name="set_tracking_parameters">Вилучити параметри відстеження</string>
|
||||
<string name="set_tracking_parameters_indication">Додаток автоматично видалятиме параметри відстеження з URL-адрес перед переходом за посиланням.</string>
|
||||
<string name="tab_bubble_timeline">Хронологія бульбашок</string>
|
||||
<string name="cd_list_timeline">%s. Хронологія списку</string>
|
||||
<string name="cd_hash_tag_timeline">%s. Хронологія хештегів</string>
|
||||
<string name="cd_hide_media">Приховати медіафайли</string>
|
||||
<string name="cd_show_media">Показати медіа</string>
|
||||
<string name="about_fediverse">Федіверс:</string>
|
||||
<string name="about_website">Вебсайт:</string>
|
||||
<string name="about_donate">Пожертвувати:</string>
|
||||
</resources>
|
||||
|
|
|
@ -584,8 +584,6 @@
|
|||
\nchuyển hướng tới
|
||||
\n
|
||||
\n %2$s</string>
|
||||
<string name="set_utm_parameters">Xóa UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">Ứng dụng sẽ tự động xóa UTM parameters khỏi những URL trước khi mở một liên kết.</string>
|
||||
<string name="talking_about">%d người đang thảo luận</string>
|
||||
<string name="twitter_accounts">Tài khoản Twitter (qua Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Tên người dùng Twitter phân cách bằng dấu cách</string>
|
||||
|
|
|
@ -443,7 +443,7 @@
|
|||
<string name="password_too_short">密码应至少包含 8 个字符</string>
|
||||
<string name="username_error">用户名只能包含字母、数字和下划线</string>
|
||||
<string name="account_created">账号已创建!</string>
|
||||
<string name="account_created_message">您的账号已创建! \n \n 请考虑在接下来的 48 小时内验证您的电子邮件。 \n \n 您现在可以通过在第一个字段中写入 <b>%1$s</b> 并轻按 <b>连接</b> 来连接你的账户。 \n \n <b>重要</b>:如果您的实例需要验证,您将在验证后收到一封电子邮件!</string>
|
||||
<string name="account_created_message">您的账号已创建! \n \n 请考虑在接下来的 48 小时内验证您的电子邮件。 \n \n 您现在可以通过在第一个字段中写入 <b>%1$s</b> 并轻按 <b>连接</b> 来连接您的账号。 \n \n <b>重要</b>:如果您的实例需要验证,您将在验证后收到一封电子邮件!</string>
|
||||
<string name="save_draft">将消息保存在草稿中?</string>
|
||||
<string name="administration">管理</string>
|
||||
<string name="reports">举报</string>
|
||||
|
@ -548,8 +548,6 @@
|
|||
<string name="check_redirect">检查重定向</string>
|
||||
<string name="no_redirect">此 URL 不重定向</string>
|
||||
<string name="redirect_detected">%1$s \n\n重定向到\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">删除 UTM 参数</string>
|
||||
<string name="set_utm_parameters_indication">在访问链接之前,应用会自动从 URL 中删除 UTM 参数。</string>
|
||||
<string name="talking_about">%d 人正在讨论</string>
|
||||
<string name="twitter_accounts">Twitter 账号(来自 Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">Twitter 用户名空格分隔</string>
|
||||
|
@ -722,7 +720,7 @@
|
|||
<string name="set_timelines_in_a_list_title">列表中的时间线</string>
|
||||
<string name="set_use_cache_indication">时间线将被缓存,因此应用会更快。</string>
|
||||
<string name="load_media_type_title">加载媒体缩略图</string>
|
||||
<string name="display_media">展示媒体</string>
|
||||
<string name="display_media">显示媒体</string>
|
||||
<string name="cached_messages">缓存消息</string>
|
||||
<string name="aggregate_notifications">聚合通知</string>
|
||||
<string name="aggregate_notifications_summary">开启时,应用会收起相关通知</string>
|
||||
|
@ -837,7 +835,7 @@
|
|||
<string name="pref_custom_theme_new_summary">允许创建您的自定义主题</string>
|
||||
<string name="pref_contributor_summary">选择一个由贡献者构建的主题</string>
|
||||
<string name="messages_stored_in_drafts">存储在草稿中的消息</string>
|
||||
<string name="display">展示</string>
|
||||
<string name="display">显示</string>
|
||||
<string name="also_boosted_by">也转发自:</string>
|
||||
<string name="admin_scope">我是监察员</string>
|
||||
<string name="location">地点</string>
|
||||
|
@ -1069,9 +1067,9 @@
|
|||
<string name="underline_links">带下划线的可点击元素</string>
|
||||
<string name="qr_code_generator">二维码生成器</string>
|
||||
<string name="toast_error_internet">没有互联网连接!</string>
|
||||
<string name="instance_token">你的令牌</string>
|
||||
<string name="instance_token">您的令牌</string>
|
||||
<string name="toast_error_token_empty">令牌不能为空!</string>
|
||||
<string name="toast_fail_authenticate">应用验证账户失败!</string>
|
||||
<string name="toast_fail_authenticate">应用验证账号失败!</string>
|
||||
<string name="use_token">使用令牌</string>
|
||||
<string name="twitter_tags">Twitter 标签(通过 Nitter)</string>
|
||||
<string name="set_pixelfed_full_media">全屏媒体</string>
|
||||
|
@ -1110,7 +1108,17 @@
|
|||
<string name="cd_open_profile">打开个人资料页</string>
|
||||
<string name="cd_switch_account">切换到 %s</string>
|
||||
<string name="cd_translated_media_description">翻译的媒体描述:%s</string>
|
||||
<string name="followed_tag_success">你现在关注这个标签了!</string>
|
||||
<string name="followed_tag_success">您现在关注这个标签了!</string>
|
||||
<string name="action_follow_tag_confirm">确定要关注 %1$s 标签吗?</string>
|
||||
<string name="remaining_tags">…及另外 %d 个</string>
|
||||
<string name="tab_public_timeline">公共时间线</string>
|
||||
<string name="tab_private_mentions">私下提及</string>
|
||||
<string name="cd_translated_content">已翻译的内容:%s</string>
|
||||
<string name="set_tracking_parameters">删除跟踪参数</string>
|
||||
<string name="set_tracking_parameters_indication">访问链接前应用会自动从 URL 删除跟踪参数。</string>
|
||||
<string name="tab_bubble_timeline">气泡时间线</string>
|
||||
<string name="cd_list_timeline">%s. 列表时间线</string>
|
||||
<string name="cd_hash_tag_timeline">%s. 话题标签时间线</string>
|
||||
<string name="cd_hide_media">隐藏媒体</string>
|
||||
<string name="cd_show_media">显示媒体</string>
|
||||
</resources>
|
||||
|
|
|
@ -545,8 +545,6 @@
|
|||
<string name="check_redirect">檢查重新導向</string>
|
||||
<string name="no_redirect">此 URL 不會重新導向</string>
|
||||
<string name="redirect_detected">%1$s \n\n重新導向到\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">移除 UTM 參數</string>
|
||||
<string name="set_utm_parameters_indication">應用程式將會在造訪連結前自動移除 UTM 參數</string>
|
||||
<string name="talking_about">%d 個正在談論</string>
|
||||
<string name="twitter_accounts">Twitter 帳號(透過 Nitter)</string>
|
||||
<string name="list_of_twitter_accounts">以空格分開的 Twitter 使用者名稱</string>
|
||||
|
|
|
@ -78,6 +78,14 @@
|
|||
<string name="cd_open_profile">Open profile page</string>
|
||||
<string name="cd_switch_account">Switch to %s</string>
|
||||
<string name="cd_translated_media_description">Translated media description: %s</string>
|
||||
<string name="tab_home_timeline">@string/context_home</string>
|
||||
<string name="tab_local_timeline">@string/local_menu</string>
|
||||
<string name="tab_public_timeline">Public timeline</string>
|
||||
<string name="tab_private_mentions">Private mentions</string>
|
||||
<string name="tab_bubble_timeline">Bubble timeline</string>
|
||||
<string name="cd_translated_content">Translated content: %s</string>
|
||||
<string name="cd_list_timeline">%s. List timeline</string>
|
||||
<string name="cd_hash_tag_timeline">%s. Hash tag timeline</string>
|
||||
|
||||
<!-- Status -->
|
||||
<string name="no_status">No message to display</string>
|
||||
|
@ -120,6 +128,8 @@
|
|||
<string name="bookmark_remove">Remove bookmark</string>
|
||||
<string name="status_bookmarked">Status has been added to bookmarks!</string>
|
||||
<string name="status_unbookmarked">Status was removed from bookmarks!</string>
|
||||
<string name="cd_hide_media">Hide media</string>
|
||||
<string name="cd_show_media">Show media</string>
|
||||
|
||||
<!-- Compose -->
|
||||
<string name="add_content_warning">Add content warning</string>
|
||||
|
@ -176,9 +186,12 @@
|
|||
<string name="about_license">License: </string>
|
||||
<string name="about_license_action">GNU GPL V3</string>
|
||||
<string name="about_code">Source code: </string>
|
||||
<string name="about_code_action" translatable="false">CodeBerg</string>
|
||||
<string name="about_code_action" translatable="false">Codeberg</string>
|
||||
<string name="about_thekinrar">Search instances:</string>
|
||||
<string name="about_thekinrar_action" translatable="false">instances.social</string>
|
||||
<string name="about_fediverse">Fediverse:</string>
|
||||
<string name="about_website">Website:</string>
|
||||
<string name="about_donate">Donate:</string>
|
||||
<!-- Conversation -->
|
||||
<!-- Accounts -->
|
||||
<string name="no_accounts">No account to display</string>
|
||||
|
@ -646,8 +659,8 @@
|
|||
<string name="check_redirect">Check redirect</string>
|
||||
<string name="no_redirect">This URL does not redirect</string>
|
||||
<string name="redirect_detected">%1$s \n\nredirects to\n\n %2$s</string>
|
||||
<string name="set_utm_parameters">Remove UTM parameters</string>
|
||||
<string name="set_utm_parameters_indication">The app will automatically remove UTM parameters from URLs before visiting a link.</string>
|
||||
<string name="set_tracking_parameters">Remove tracking parameters</string>
|
||||
<string name="set_tracking_parameters_indication">The app will automatically remove tracking parameters from URLs before visiting a link.</string>
|
||||
<string name="talking_about">%d people talking</string>
|
||||
<string name="twitter_accounts">Twitter accounts (via Nitter)</string>
|
||||
<string name="twitter_tags">Twitter tags (via Nitter)</string>
|
||||
|
@ -819,6 +832,7 @@
|
|||
<string-array name="set_logo_type_value" translatable="false">
|
||||
<item>Fedilab</item>
|
||||
<item>Fedilab UA</item>
|
||||
<item>Fedilab PS</item>
|
||||
<item>Fedilab Pea Green</item>
|
||||
<item>FediPride</item>
|
||||
<item>FediPink</item>
|
||||
|
@ -842,6 +856,7 @@
|
|||
<string-array name="SET_LOGO_TYPE_VALUE" translatable="false">
|
||||
<item>Bubbles</item>
|
||||
<item>BubblesUA</item>
|
||||
<item>BubblesPS</item>
|
||||
<item>BubblesPeaGreen</item>
|
||||
<item>BubblesPride</item>
|
||||
<item>BubblesPink</item>
|
||||
|
@ -866,6 +881,7 @@
|
|||
<string-array name="SET_LOGO_DRAWABLE" translatable="false">
|
||||
<item>@drawable/ic_launcher_bubbles_foreground</item>
|
||||
<item>@drawable/ic_launcher_bubbles_ua_foreground</item>
|
||||
<item>@drawable/ic_launcher_bubbles_ps_foreground</item>
|
||||
<item>@drawable/ic_launcher_bubbles_pea_green_foreground</item>
|
||||
<item>@drawable/ic_launcher_bubbles_pride_foreground</item>
|
||||
<item>@drawable/ic_launcher_bubbles_pink_foreground</item>
|
||||
|
@ -1024,6 +1040,7 @@
|
|||
<item>pl</item>
|
||||
<item>sr</item>
|
||||
<item>uk</item>
|
||||
<item>fa</item>
|
||||
<item>ru</item>
|
||||
<item>no</item>
|
||||
<item>kab</item>
|
||||
|
@ -1120,6 +1137,7 @@
|
|||
<item>Polski</item>
|
||||
<item>Српски</item>
|
||||
<item>Українська</item>
|
||||
<item>فارسی</item>
|
||||
<item>Русский</item>
|
||||
<item>Norsk</item>
|
||||
<item>Taqbaylit</item>
|
||||
|
@ -1302,7 +1320,7 @@
|
|||
<string name="DEFAULT_THREAD_VALUE" translatable="false">ASK</string>
|
||||
<string name="SET_INVIDIOUS_HOST" translatable="false">SET_INVIDIOUS_HOST</string>
|
||||
<string name="DEFAULT_INVIDIOUS_HOST" translatable="false">invidious.snopyta.org</string>
|
||||
<string name="SET_FILTER_UTM" translatable="false">SET_FILTER_UTM</string>
|
||||
<string name="SET_FILTER_TRACKING" translatable="false">SET_FILTER_TRACKING</string>
|
||||
<string name="SET_NITTER" translatable="false">SET_NITTER</string>
|
||||
<string name="SET_NITTER_HOST" translatable="false">SET_NITTER_HOST</string>
|
||||
<string name="DEFAULT_NITTER_HOST" translatable="false">nitter.net</string>
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
app:entryValues="@array/SET_TRANSLATE_ENTRIES"
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="@string/SET_DEFAULT_LOCALE_NEW"
|
||||
app:summary="@string/set_push_notifications"
|
||||
app:title="@string/set_change_locale"
|
||||
app:useSimpleSummaryProvider="true" />
|
||||
|
||||
|
|
|
@ -91,10 +91,10 @@
|
|||
|
||||
<SwitchPreferenceCompat
|
||||
app:iconSpaceReserved="false"
|
||||
app:key="@string/SET_FILTER_UTM"
|
||||
app:key="@string/SET_FILTER_TRACKING"
|
||||
app:singleLineTitle="false"
|
||||
app:summary="@string/set_utm_parameters_indication"
|
||||
app:title="@string/set_utm_parameters" />
|
||||
app:summary="@string/set_tracking_parameters_indication"
|
||||
app:title="@string/set_tracking_parameters" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
|
|
19
src/fdroid/fastlane/metadata/android/ca/changelogs/534.txt
Normal file
|
@ -0,0 +1,19 @@
|
|||
Afegits:
|
||||
- Ressaltat de hashtags inferiors
|
||||
- Enllaços en les tendències
|
||||
- Etiquetes destacades als perfils
|
||||
- Afegir/eliminar les etiquetes a l'editor de perfils
|
||||
|
||||
Canvis:
|
||||
- Diàleg de confirmació en aguantar impulsar
|
||||
- Obre missatges en tocar Difusions programades
|
||||
- Millor selector d'idioma en filtratges
|
||||
|
||||
Correccions:
|
||||
- Límit de resultats en filtres
|
||||
- Selecció de mèdia a Pleroma
|
||||
- Eliminacions errònies en missatges i impulsos temporitzats
|
||||
- Fallides en enfilalls llargs
|
||||
- Problema potencial de memòria en mèdia no retallats
|
||||
- Les cites incrustades ja es veuen
|
||||
- Algunes fallides
|
10
src/fdroid/fastlane/metadata/android/ca/changelogs/535.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
Afegits:
|
||||
- Suport per a cites a Mastodon
|
||||
- Aguantar sobre etiqueta: Seguir / Silenciar
|
||||
|
||||
Canvis:
|
||||
- Límit d'etiquetes ressaltades al final del missatge
|
||||
|
||||
Correccions:
|
||||
- Error amb els enfilalls
|
||||
- Etiquetes que sortien buides
|
16
src/fdroid/fastlane/metadata/android/ca/changelogs/536.txt
Normal file
|
@ -0,0 +1,16 @@
|
|||
Afegits:
|
||||
- Menú de 3 punts per a converses remotes (Federació en segon pla)
|
||||
- Suport per cites a Mastodon
|
||||
- Aguantar sobre etiqueta: Seguir / Silenciar
|
||||
|
||||
Canvis:
|
||||
- Millor accessibilitat amb els mèdia
|
||||
- Millors descripcions de contingut
|
||||
- Actualització d'idiomes
|
||||
- Actualització d'icones de llançadors, més icones monocromes
|
||||
- Límitació d'etiquetes ressaltades al final dels missatges
|
||||
|
||||
Correccions:
|
||||
- Error amb la selecció de text en redactar
|
||||
- Error amb els enfilalls
|
||||
- Correcció d'etiquetes buides
|
18
src/fdroid/fastlane/metadata/android/ca/changelogs/537.txt
Normal file
|
@ -0,0 +1,18 @@
|
|||
Afegits:
|
||||
- Menú de 3 punts per a converses remotes (Federació en segon pla)
|
||||
- Suport per cites a Mastodon
|
||||
- Aguantar sobre etiqueta: Seguir / Silenciar
|
||||
|
||||
Canvis:
|
||||
- Millor accessibilitat amb els mèdia
|
||||
- Millors descripcions de contingut
|
||||
- Actualització d'idiomes
|
||||
- Actualització d'icones de llançadors: més de monocromes
|
||||
- Límitació d'etiquetes ressaltades al final dels missatges
|
||||
|
||||
Corregit:
|
||||
- Error amb la selecció de text en redactar
|
||||
- Error amb els enfilalls
|
||||
- Correcció d'etiquetes buides
|
||||
- Falles amb l'expansió automàtica de mèdia amb Pixelfed
|
||||
- Fallides amb la funcionalitat d'encabir imatges de previsionat
|