Compare commits
No commits in common. "214b50e78109713274cf2ec6e54814f5706883c3" and "da62460078277605cc20b8441c125674448109e3" have entirely different histories.
214b50e781
...
da62460078
10 changed files with 35 additions and 257 deletions
|
|
@ -190,6 +190,22 @@
|
|||
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
|
||||
</activity-alias>
|
||||
|
||||
<activity-alias
|
||||
android:enabled="false"
|
||||
android:name="org.telegram.messenger.NoxIcon"
|
||||
android:targetActivity="org.telegram.ui.LaunchActivity"
|
||||
android:icon="@mipmap/icon_2_launcher"
|
||||
android:roundIcon="@mipmap/icon_2_launcher"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
<category android:name="android.intent.category.MULTIWINDOW_LAUNCHER" />
|
||||
</intent-filter>
|
||||
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts" />
|
||||
</activity-alias>
|
||||
|
||||
<activity-alias
|
||||
android:enabled="false"
|
||||
android:name="org.telegram.messenger.RainbowIcon"
|
||||
|
|
|
|||
|
|
@ -44,9 +44,6 @@ import org.telegram.ui.Components.RecyclerListView;
|
|||
import org.telegram.ui.LauncherIconController;
|
||||
import org.telegram.ui.PremiumPreviewFragment;
|
||||
|
||||
import tw.nekomimi.nekogram.helpers.SponsorHelper;
|
||||
import tw.nekomimi.nekogram.settings.FoxPremiumActivity;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
|
@ -112,8 +109,8 @@ public class AppIconsSelectorCell extends RecyclerListView implements Notificati
|
|||
setOnItemClickListener((view, position) -> {
|
||||
IconHolderView holderView = (IconHolderView) view;
|
||||
LauncherIconController.LauncherIcon icon = availableIcons.get(position);
|
||||
if (icon.premium && !SponsorHelper.isCurrentUserSponsor()) {
|
||||
fragment.presentFragment(new FoxPremiumActivity());
|
||||
if (icon.premium && !UserConfig.hasPremiumOnAccounts()) {
|
||||
fragment.showDialog(new PremiumFeatureBottomSheet(fragment, PremiumPreviewFragment.PREMIUM_FEATURE_APPLICATION_ICONS, true));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -154,6 +151,14 @@ public class AppIconsSelectorCell extends RecyclerListView implements Notificati
|
|||
private void updateIconsVisibility() {
|
||||
availableIcons.clear();
|
||||
availableIcons.addAll(Arrays.asList(LauncherIconController.LauncherIcon.values()));
|
||||
if (MessagesController.getInstance(currentAccount).premiumFeaturesBlocked()) {
|
||||
for (int i = 0; i < availableIcons.size(); i++) {
|
||||
if (availableIcons.get(i).premium) {
|
||||
availableIcons.remove(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
}
|
||||
getAdapter().notifyDataSetChanged();
|
||||
invalidateItemDecorations();
|
||||
|
||||
|
|
@ -270,7 +275,7 @@ public class AppIconsSelectorCell extends RecyclerListView implements Notificati
|
|||
iconView.setImageResource(icon.background);
|
||||
|
||||
MarginLayoutParams params = (MarginLayoutParams) titleView.getLayoutParams();
|
||||
if (icon.premium && !SponsorHelper.isCurrentUserSponsor()) {
|
||||
if (icon.premium && !UserConfig.hasPremiumOnAccounts()) {
|
||||
SpannableString str = new SpannableString("d " + LocaleController.getString(icon.title));
|
||||
ColoredImageSpan span = new ColoredImageSpan(R.drawable.msg_mini_premiumlock);
|
||||
span.setTopOffset(1);
|
||||
|
|
|
|||
|
|
@ -43,8 +43,9 @@ public class LauncherIconController {
|
|||
DEFAULT("DefaultIcon", R.color.ic_launcher_background, R.drawable.ic_launcher_foreground, R.string.AppIconDefault),
|
||||
//VINTAGE("VintageIcon", R.drawable.icon_6_background_sa, R.drawable.ic_launcher_foreground, R.string.AppIconVintage),
|
||||
AQUA("AquaIcon", R.drawable.icon_4_background_sa, R.mipmap.icon_4_launcher_foreground, R.string.AppIconAqua),
|
||||
PREMIUM("PremiumIcon", R.drawable.icon_3_background_sa, R.mipmap.icon_3_launcher_foreground, R.string.AppIconPremium, true),
|
||||
PREMIUM("PremiumIcon", R.drawable.icon_3_background_sa, R.mipmap.icon_3_launcher_foreground, R.string.AppIconPremium),
|
||||
TURBO("TurboIcon", R.drawable.icon_5_background_sa, R.mipmap.icon_5_launcher_foreground, R.string.AppIconTurbo),
|
||||
NOX("NoxIcon", R.drawable.icon_2_background_sa, R.drawable.ic_launcher_foreground, R.string.AppIconNox),
|
||||
RAINBOW("RainbowIcon", R.drawable.icon_8_background_sa, R.mipmap.icon_8_launcher_foreground, R.string.AppIconRainbow),
|
||||
SPACE("SpaceIcon", R.mipmap.icon_11_launcher_background, R.mipmap.icon_11_launcher_foreground, R.string.AppIconSpace),
|
||||
CLOUD("CloudIcon", R.color.ic_launcher_background, R.mipmap.icon_12_launcher_foreground, R.string.AppIconCloud);
|
||||
|
|
|
|||
|
|
@ -206,8 +206,7 @@ public class ShimmerHeartDrawable extends Drawable {
|
|||
|
||||
@Override
|
||||
public void setColorFilter(ColorFilter colorFilter) {
|
||||
// Ignore external tint (e.g. TextCell's gray MULTIPLY filter) so the
|
||||
// heart always keeps its original artwork colors.
|
||||
bitmapPaint.setColorFilter(colorFilter);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -1,152 +0,0 @@
|
|||
package tw.nekomimi.nekogram.settings;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import org.telegram.messenger.AndroidUtilities;
|
||||
import org.telegram.messenger.ApplicationLoader;
|
||||
import org.telegram.messenger.LocaleController;
|
||||
import org.telegram.messenger.MessagesController;
|
||||
import org.telegram.messenger.R;
|
||||
import org.telegram.messenger.SendMessagesHelper;
|
||||
import org.telegram.messenger.UserConfig;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ChatActivity;
|
||||
import org.telegram.ui.Components.AnimatedFileDrawable;
|
||||
import org.telegram.ui.Components.BackupImageView;
|
||||
import org.telegram.ui.Components.LayoutHelper;
|
||||
import org.telegram.ui.Components.UItem;
|
||||
import org.telegram.ui.Components.UniversalAdapter;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.InputStream;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import tw.nekomimi.nekogram.helpers.ShimmerHeartDrawable;
|
||||
|
||||
public class FoxPremiumActivity extends BaseNekoSettingsActivity {
|
||||
|
||||
private final int serversRow = rowId++;
|
||||
private final int sponsorRow = rowId++;
|
||||
private final int iconsRow = rowId++;
|
||||
private final int buttonRow = rowId++;
|
||||
|
||||
private FrameLayout topView;
|
||||
private BackupImageView stickerView;
|
||||
private AnimatedFileDrawable stickerDrawable;
|
||||
|
||||
@Override
|
||||
public View createView(Context context) {
|
||||
topView = new FrameLayout(context);
|
||||
|
||||
stickerView = new BackupImageView(context);
|
||||
topView.addView(stickerView, LayoutHelper.createFrame(130, 130, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, 16, 0, 0));
|
||||
|
||||
var titleView = new TextView(context);
|
||||
titleView.setTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, 22);
|
||||
titleView.setTypeface(AndroidUtilities.bold());
|
||||
titleView.setGravity(Gravity.CENTER);
|
||||
titleView.setText(LocaleController.getString(R.string.FoxPremiumTitle));
|
||||
titleView.setTextColor(0xFFFF8C00);
|
||||
topView.addView(titleView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 16, 158, 16, 0));
|
||||
|
||||
var subtitleView = new TextView(context);
|
||||
subtitleView.setTextSize(android.util.TypedValue.COMPLEX_UNIT_DIP, 14);
|
||||
subtitleView.setGravity(Gravity.CENTER);
|
||||
subtitleView.setText(LocaleController.getString(R.string.FoxPremiumSubtitle));
|
||||
subtitleView.setTextColor(getThemedColor(Theme.key_windowBackgroundWhiteGrayText));
|
||||
topView.addView(subtitleView, LayoutHelper.createFrame(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL | Gravity.TOP, 24, 192, 24, 0));
|
||||
|
||||
var fragmentView = super.createView(context);
|
||||
loadSticker();
|
||||
return fragmentView;
|
||||
}
|
||||
|
||||
private void loadSticker() {
|
||||
try {
|
||||
File cacheFile = new File(AndroidUtilities.getCacheDir(), "foxi_premium.webm");
|
||||
if (!cacheFile.exists() || cacheFile.length() == 0) {
|
||||
try (InputStream in = ApplicationLoader.applicationContext.getResources().openRawResource(R.raw.foxi_premium);
|
||||
FileOutputStream out = new FileOutputStream(cacheFile)) {
|
||||
byte[] buffer = new byte[16 * 1024];
|
||||
int len;
|
||||
while ((len = in.read(buffer)) > 0) {
|
||||
out.write(buffer, 0, len);
|
||||
}
|
||||
}
|
||||
}
|
||||
stickerDrawable = new AnimatedFileDrawable(cacheFile, true, 0, 0, null, null, null, 0, UserConfig.selectedAccount, true, 260, 260, null);
|
||||
stickerView.setImageDrawable(stickerDrawable);
|
||||
stickerView.getImageReceiver().setAutoRepeat(1);
|
||||
stickerDrawable.start();
|
||||
stickerView.setOnClickListener(v -> {
|
||||
if (stickerDrawable != null) {
|
||||
stickerDrawable.start();
|
||||
}
|
||||
});
|
||||
} catch (Throwable ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean needActionBarPadding() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void fillItems(ArrayList<UItem> items, UniversalAdapter adapter) {
|
||||
items.add(UItem.asCustomShadow(topView, 240));
|
||||
items.add(UItem.asButtonSubtext(serversRow, R.drawable.msg2_devices, LocaleController.getString(R.string.FoxPremiumFeatureServersTitle), LocaleController.getString(R.string.FoxPremiumFeatureServersAbout)));
|
||||
UItem sponsorItem = UItem.asButton(sponsorRow, new ShimmerHeartDrawable(AndroidUtilities.dp(24)), LocaleController.getString(R.string.FoxPremiumFeatureSponsorTitle));
|
||||
sponsorItem.subtext = LocaleController.getString(R.string.FoxPremiumFeatureSponsorAbout);
|
||||
items.add(sponsorItem);
|
||||
items.add(UItem.asButtonSubtext(iconsRow, R.drawable.msg_emoji_smiles, LocaleController.getString(R.string.FoxPremiumFeatureIconsTitle), LocaleController.getString(R.string.FoxPremiumFeatureIconsAbout)));
|
||||
items.add(UItem.asShadow(null));
|
||||
items.add(UItem.asButton(buttonRow, R.drawable.msg_input_like, LocaleController.getString(R.string.FoxPremiumButton)));
|
||||
items.add(UItem.asShadow(null));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onItemClick(UItem item, View view, int position, float x, float y) {
|
||||
if (item.id == buttonRow) {
|
||||
openBotWithCommand("vpnghostbot", "/quickreg");
|
||||
}
|
||||
}
|
||||
|
||||
private void openBotWithCommand(String username, String command) {
|
||||
int account = UserConfig.selectedAccount;
|
||||
MessagesController mc = MessagesController.getInstance(account);
|
||||
mc.getUserNameResolver().resolve(username, peerId -> {
|
||||
if (peerId == null || peerId == 0) {
|
||||
return;
|
||||
}
|
||||
AndroidUtilities.runOnUIThread(() -> {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("user_id", peerId);
|
||||
presentFragment(new ChatActivity(args));
|
||||
AndroidUtilities.runOnUIThread(() ->
|
||||
SendMessagesHelper.getInstance(account).sendMessage(
|
||||
SendMessagesHelper.SendMessageParams.of(command, peerId)), 150);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getActionBarTitle() {
|
||||
return LocaleController.getString(R.string.FoxPremiumTitle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFragmentDestroy() {
|
||||
super.onFragmentDestroy();
|
||||
if (stickerDrawable != null) {
|
||||
stickerDrawable.recycle();
|
||||
stickerDrawable = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,10 +3,6 @@ package tw.nekomimi.nekogram.settings;
|
|||
import android.content.Context;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Outline;
|
||||
import android.os.Bundle;
|
||||
import android.text.Spannable;
|
||||
import android.text.SpannableString;
|
||||
import android.text.style.ForegroundColorSpan;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewOutlineProvider;
|
||||
|
|
@ -21,15 +17,11 @@ import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
|
|||
import org.telegram.messenger.AndroidUtilities;
|
||||
import org.telegram.messenger.FileLog;
|
||||
import org.telegram.messenger.LocaleController;
|
||||
import org.telegram.messenger.MessagesController;
|
||||
import org.telegram.messenger.R;
|
||||
import org.telegram.messenger.SendMessagesHelper;
|
||||
import org.telegram.messenger.UserConfig;
|
||||
import org.telegram.messenger.browser.Browser;
|
||||
import org.telegram.ui.ActionBar.BaseFragment;
|
||||
import org.telegram.ui.ActionBar.BottomSheet;
|
||||
import org.telegram.ui.ActionBar.Theme;
|
||||
import org.telegram.ui.ChatActivity;
|
||||
import org.telegram.ui.Components.BulletinFactory;
|
||||
import org.telegram.ui.Components.ItemOptions;
|
||||
import org.telegram.ui.Components.LayoutHelper;
|
||||
|
|
@ -42,14 +34,12 @@ import java.util.ArrayList;
|
|||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import tw.nekomimi.nekogram.helpers.ShimmerHeartDrawable;
|
||||
import tw.nekomimi.nekogram.helpers.remote.ConfigHelper;
|
||||
|
||||
public class NekoDonateActivity extends BaseNekoSettingsActivity {
|
||||
private final List<ConfigHelper.Crypto> cryptos = ConfigHelper.getCryptos();
|
||||
|
||||
private final int supportProjectRow = 1;
|
||||
private final int premiumRow = 3;
|
||||
private final int topSponsorsRow = 2;
|
||||
private final int cryptoRow = 200;
|
||||
|
||||
|
|
@ -62,12 +52,7 @@ public class NekoDonateActivity extends BaseNekoSettingsActivity {
|
|||
|
||||
@Override
|
||||
protected void fillItems(ArrayList<UItem> items, UniversalAdapter adapter) {
|
||||
items.add(UItem.asButtonSubtext(supportProjectRow, R.drawable.msg_payment_card, LocaleController.getString(R.string.FoxSupportProject), LocaleController.getString(R.string.FoxSupportProjectAbout)));
|
||||
SpannableString premiumTitle = new SpannableString(LocaleController.getString(R.string.FoxPremiumTitle));
|
||||
premiumTitle.setSpan(new ForegroundColorSpan(0xFFFF8C00), 0, premiumTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
|
||||
UItem premiumItem = UItem.asButton(premiumRow, new ShimmerHeartDrawable(AndroidUtilities.dp(24)), premiumTitle);
|
||||
premiumItem.subtext = LocaleController.getString(R.string.FoxPremiumSubtitle);
|
||||
items.add(premiumItem);
|
||||
items.add(UItem.asButtonSubtext(supportProjectRow, R.drawable.msg_input_like, LocaleController.getString(R.string.FoxSupportProject), LocaleController.getString(R.string.FoxSupportProjectAbout)));
|
||||
items.add(UItem.asButtonSubtext(topSponsorsRow, R.drawable.msg_premium_liststar, LocaleController.getString(R.string.FoxTopSponsors), LocaleController.getString(R.string.FoxTopSponsorsAbout)));
|
||||
items.add(UItem.asShadow(null));
|
||||
|
||||
|
|
@ -85,9 +70,7 @@ public class NekoDonateActivity extends BaseNekoSettingsActivity {
|
|||
protected void onItemClick(UItem item, View view, int position, float x, float y) {
|
||||
var id = item.id;
|
||||
if (id == supportProjectRow) {
|
||||
openBotWithCommand("vpnghostbot", "/quickreg");
|
||||
} else if (id == premiumRow) {
|
||||
presentFragment(new FoxPremiumActivity());
|
||||
Browser.openUrl(getParentActivity(), "https://t.me/vpnghostbot");
|
||||
} else if (id == topSponsorsRow) {
|
||||
presentFragment(new FoxSponsorsActivity());
|
||||
} else if (id >= cryptoRow) {
|
||||
|
|
@ -96,25 +79,6 @@ public class NekoDonateActivity extends BaseNekoSettingsActivity {
|
|||
}
|
||||
}
|
||||
|
||||
private void openBotWithCommand(String username, String command) {
|
||||
int account = UserConfig.selectedAccount;
|
||||
MessagesController mc = MessagesController.getInstance(account);
|
||||
mc.getUserNameResolver().resolve(username, peerId -> {
|
||||
if (peerId == null || peerId == 0) {
|
||||
return;
|
||||
}
|
||||
AndroidUtilities.runOnUIThread(() -> {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("user_id", peerId);
|
||||
ChatActivity chatActivity = new ChatActivity(args);
|
||||
presentFragment(chatActivity);
|
||||
AndroidUtilities.runOnUIThread(() ->
|
||||
SendMessagesHelper.getInstance(account).sendMessage(
|
||||
SendMessagesHelper.SendMessageParams.of(command, peerId)), 150);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onItemLongClick(UItem item, View view, int position, float x, float y) {
|
||||
var id = item.id;
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -218,9 +218,8 @@
|
|||
<string name="MarkdownAbout">Изменяйте текст сообщений, используя markdown: ^1**жирный**^1, ^2__курсив__^2, ^3~~зачёркнутый~~^3, ^4`моноширинный`^4, ^5||скрытый||^5, ^6текст^7url^8.</string>
|
||||
<string name="MarkdownAbout2">Изменяйте текст сообщений, используя markdown: ^1**жирный**^1, ^2__курсив__^2, ^3~~зачёркнутый~~^3, ^4`моноширинный`^4, ^5||скрытый||^5.</string>
|
||||
<string name="AppIconOldSchool">Old School</string>
|
||||
<string name="AppIconTurbo">Сакура</string>
|
||||
<string name="AppIconMerio">Мерио</string>
|
||||
<string name="AppIconRainbow">Ночь</string>
|
||||
<string name="AppIconRainbow">Радуга</string>
|
||||
<string name="AppIconMusheen">Мушин</string>
|
||||
<string name="AppIconSpace">Космос</string>
|
||||
<string name="AppIconCloud">Облако</string>
|
||||
|
|
@ -325,15 +324,6 @@
|
|||
<!-- Accessibility -->
|
||||
<string name="AccessibilitySettings">Настройки специальных возможностей</string>
|
||||
<string name="FoxSponsorBadge">Спонсор GhostCloud</string>
|
||||
<string name="FoxPremiumTitle">Спонсор FoxiGram</string>
|
||||
<string name="FoxPremiumSubtitle">Поддержите проект и откройте эксклюзивные возможности</string>
|
||||
<string name="FoxPremiumFeatureServersTitle">Больше LTE и Wi-Fi серверов</string>
|
||||
<string name="FoxPremiumFeatureServersAbout">Доступ к дополнительным быстрым LTE и Wi-Fi серверам</string>
|
||||
<string name="FoxPremiumFeatureSponsorTitle">Сердечко спонсора</string>
|
||||
<string name="FoxPremiumFeatureSponsorAbout">Значок сердечка рядом с вашим именем в чатах</string>
|
||||
<string name="FoxPremiumFeatureIconsTitle">Эксклюзивные иконки приложения</string>
|
||||
<string name="FoxPremiumFeatureIconsAbout">Иконки приложения Premium, Космос и Облако</string>
|
||||
<string name="FoxPremiumButton">Поддержать FoxiGram</string>
|
||||
<string name="FoxSponsorBadgeInfo">Эта отметка выдана за поддержание проекта на 444+ рублей.</string>
|
||||
<string name="FoxSupportProject">Поддержать проект</string>
|
||||
<string name="FoxSupportProjectAbout">Оформите GhostCloud через нашего бота</string>
|
||||
|
|
@ -351,19 +341,4 @@
|
|||
<string name="HidePhoneNumberShow">Показывать</string>
|
||||
<string name="HidePhoneNumberBlur">Размыть</string>
|
||||
<string name="HidePhoneNumberHide">Скрыть</string>
|
||||
<string name="CenterChatTitle">Центрировать название чата</string>
|
||||
<string name="UseSystemFont">Системный шрифт</string>
|
||||
<string name="EmojiPacksAvailable">Доступные наборы</string>
|
||||
<string name="EmojiPackDownload">Скачать</string>
|
||||
<string name="EmojiPackDownloadError">Не удалось скачать набор эмодзи. Проверьте подключение к интернету и попробуйте ещё раз.</string>
|
||||
<string name="FontSettings">Шрифт</string>
|
||||
<string name="FontSelectTitle">Выбор шрифта</string>
|
||||
<string name="FontSelectHint">Выбранный шрифт применяется к полужирному и среднему тексту во всём приложении. Все шрифты поддерживают латиницу и кириллицу.</string>
|
||||
<string name="FontAddTitle">Добавить шрифт</string>
|
||||
<string name="FontAddFile">Установить из файла (TTF/OTF)</string>
|
||||
<string name="FontAddGoogleFonts">Скачать с Google Fonts</string>
|
||||
<string name="FontGoogleFontsHint">Введите название семейства шрифта точно как на fonts.google.com (например: «Open Sans», «Nunito», «Roboto Slab»).</string>
|
||||
<string name="FontDownloadError">Не удалось скачать шрифт.</string>
|
||||
<string name="UseNewLayout">Новый макет FoxiGram</string>
|
||||
<string name="UseNewLayoutHint">Заголовок по центру, аватар справа, кнопки звонка внутри меню ⋮. После переключения может потребоваться перезапуск.</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -5702,7 +5702,7 @@
|
|||
<string name="AppIconVintage">Vintage</string>
|
||||
<string name="AppIconAqua">Aqua</string>
|
||||
<string name="AppIconPremium">Premium</string>
|
||||
<string name="AppIconTurbo">Sakura</string>
|
||||
<string name="AppIconTurbo">Turbo</string>
|
||||
<string name="AppIconNox">Nox</string>
|
||||
<string name="AppIconChangedTo">App icon has been changed to %1$s</string>
|
||||
<string name="FileTooLarge">File Too Large</string>
|
||||
|
|
|
|||
|
|
@ -155,15 +155,6 @@
|
|||
<string name="NekogramVersion">FoxiGram %1$s\nBased on Telegram %2$s\nDesigned by %3$s</string>
|
||||
<string name="UpdateInstalling">Installing update...</string>
|
||||
<string name="FoxSponsorBadge">Sponsor GhostCloud</string>
|
||||
<string name="FoxPremiumTitle">Спонсор FoxiGram</string>
|
||||
<string name="FoxPremiumSubtitle">Support the project and unlock exclusive perks</string>
|
||||
<string name="FoxPremiumFeatureServersTitle">More LTE and Wi-Fi servers</string>
|
||||
<string name="FoxPremiumFeatureServersAbout">Get access to additional fast LTE and Wi-Fi servers</string>
|
||||
<string name="FoxPremiumFeatureSponsorTitle">Sponsor heart</string>
|
||||
<string name="FoxPremiumFeatureSponsorAbout">A heart badge next to your name in chats</string>
|
||||
<string name="FoxPremiumFeatureIconsTitle">Exclusive app icons</string>
|
||||
<string name="FoxPremiumFeatureIconsAbout">Premium, Space and Cloud app icons</string>
|
||||
<string name="FoxPremiumButton">Support FoxiGram</string>
|
||||
<string name="FoxSponsorBadgeInfo">This badge is granted for supporting the project with 444+ rubles.</string>
|
||||
<string name="FoxSupportProject">Support the project</string>
|
||||
<string name="FoxSupportProjectAbout">Subscribe to GhostCloud via our bot</string>
|
||||
|
|
@ -251,7 +242,7 @@
|
|||
<string name="MarkdownAbout2">Edit text in messages using markdown: ^1**bold**^1, ^2__italic__^2, ^3~~strikethrough~~^3, ^4`monospace`^4, ^5||spoiler||^5.</string>
|
||||
<string name="AppIconOldSchool">Old School</string>
|
||||
<string name="AppIconMerio">Merio</string>
|
||||
<string name="AppIconRainbow">Night</string>
|
||||
<string name="AppIconRainbow">Rainbow</string>
|
||||
<string name="AppIconMusheen">Musheen</string>
|
||||
<string name="AppIconSpace">Space</string>
|
||||
<string name="AppIconCloud">Cloud</string>
|
||||
|
|
@ -360,25 +351,4 @@
|
|||
|
||||
<!-- Accessibility -->
|
||||
<string name="AccessibilitySettings">Accessibility settings</string>
|
||||
|
||||
<!-- Appearance extras -->
|
||||
<string name="CenterChatTitle">Center chat title</string>
|
||||
<string name="UseSystemFont">Use system font</string>
|
||||
<string name="UseNewLayout">New FoxiGram layout</string>
|
||||
<string name="UseNewLayoutHint">Centered title, avatar on the right, call buttons inside the ⋮ menu. Restart may be needed after switching.</string>
|
||||
|
||||
<!-- Font settings -->
|
||||
<string name="FontSettings">Font</string>
|
||||
<string name="FontSelectTitle">Select font</string>
|
||||
<string name="FontSelectHint">The selected font is applied to bold and medium text throughout the app. All fonts support Latin and Cyrillic (Russian).</string>
|
||||
<string name="FontAddTitle">Add font</string>
|
||||
<string name="FontAddFile">Install from file (TTF/OTF)</string>
|
||||
<string name="FontAddGoogleFonts">Download from Google Fonts</string>
|
||||
<string name="FontGoogleFontsHint">Enter the font family name exactly as it appears on fonts.google.com (e.g. "Open Sans", "Nunito", "Roboto Slab").</string>
|
||||
<string name="FontDownloadError">Failed to download font.</string>
|
||||
|
||||
<!-- Built-in emoji packs -->
|
||||
<string name="EmojiPacksAvailable">Available packs</string>
|
||||
<string name="EmojiPackDownload">Download</string>
|
||||
<string name="EmojiPackDownloadError">Failed to download emoji pack. Check your internet connection and try again.</string>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Reference in a new issue