From 29486e9d035c22b9ac5053e3bd1b0fce57be363c Mon Sep 17 00:00:00 2001 From: qwq233 Date: Sat, 18 Feb 2023 19:45:59 +0800 Subject: [PATCH 01/25] chore: bump AGP version to v7.4.1 Signed-off-by: qwq233 --- build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e820d18126..e796b4b72a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,8 +2,8 @@ @file:Suppress("UnstableApiUsage") plugins { - id("com.android.application") version "7.3.1" apply false - id("com.android.library") version "7.3.1" apply false + id("com.android.application") version "7.4.1" apply false + id("com.android.library") version "7.4.1" apply false id("com.google.gms.google-services") version "4.3.13" apply false id("org.jetbrains.kotlin.android") version Version.kotlin apply false kotlin("plugin.serialization") version Version.kotlin apply false From 32b52d071f5c35326b6d1a39fada4da101ae2307 Mon Sep 17 00:00:00 2001 From: qwq233 Date: Sun, 19 Feb 2023 00:10:09 +0800 Subject: [PATCH 02/25] feat: override Device Performance Signed-off-by: qwq233 --- TMessagesProj/proguard-dic.txt | 122 ++++++++---------- .../org/telegram/messenger/SharedConfig.java | 6 + .../activity/GeneralSettingActivity.java | 74 +++++++++-- .../top/qwq2333/nullgram/utils/Defines.java | 7 + .../src/main/res/values/strings_nullgram.xml | 6 + 5 files changed, 138 insertions(+), 77 deletions(-) diff --git a/TMessagesProj/proguard-dic.txt b/TMessagesProj/proguard-dic.txt index a96bf4b94a..cd3784006c 100644 --- a/TMessagesProj/proguard-dic.txt +++ b/TMessagesProj/proguard-dic.txt @@ -1,79 +1,65 @@ 你说得对 -但是《原神》 -是由米哈游自主研发的一款全新开放世界冒险游戏。 -游戏发生在一个被称作“提瓦特”的幻想世界 -在这里 -被神选中的人将被授予“神之眼” -导引元素之力。 -你将扮演一位名为“旅行者”的神秘角色 -在自由的旅行中邂逅性格各异、能力独特的同伴们 +但是原神是由米哈游自主研发的一款全新开放世界冒险游戏 +游戏发生在一个被称作提瓦特的幻想世界 +在这里被神选中的人将被授予神之眼 +导引元素之力 +你将扮演一位名为旅行者的神秘角色 +在自由的旅行中邂逅性格各异能力独特的同伴们 和他们一起击败强敌 -找回失散的亲人——同时 -逐步发掘“原神”的真相。 -但是《星际战甲》 -是由DE自主研发的一款全新科幻类冒险游戏。 -游戏发生在一个被称作「始源星系」的幻想世界 -被lotus选中的人将被授予「warframe」 -导引虚空之力。 -你将扮演一位名为「指挥官」的神秘角色 -阻止克隆尼 -科普斯 -灵煞 -异变体的侵袭——同时 -逐步发掘「虚空与墙中人」的真相。 -你说的对 -但是《烟神》 -是由丁真珍珠自主研发的一款全新开放世界冒险游戏。 -游戏发生在一个被称作「理塘」的幻想世界 -被神选中的人将被授予「电子烟」 -引导尼古丁之力。 -你将扮演一位名为「芙蓉王」的神秘角色 -在自由的旅行中邂逅性格各异、能力独特的动物朋友 +找回失散的亲人同时 +逐步发掘原神的真相 +但是烟神 +是由丁真珍珠自主研发的一款全新开放世界冒险游戏 +游戏发生在一个被称作理塘的幻想世界 +被神选中的人将被授予电子烟 +引导尼古丁之力 +你将扮演一位名为芙蓉王的神秘角色 +在自由的旅行中邂逅性格各异能力独特的动物朋友 和它们一起击败强敌 找回不存在的亲人的同时 -逐步发掘「理塘」的真相。 -但是《命运二》 -是由棒鸡自主研发的一款全新开放世界冒险游戏。 -游戏发生在一个被称作「太阳系」的幻想世界 -被旅行者选中的人将被授予「机灵」 -导引光能之力。 -你将扮演一位名为「守护者」的神秘角色 -阻止暗影的侵袭——同时 -逐步发掘「光能与暗影」的真相。 -但是《贴吧》 -是由百度自主研发的一款全新嘴炮论坛喷人平台。 -贴吧含有一个被称作「孙笑川吧」的贴吧世界 -被吧主选中的人将被授予「米线」 -引导「团建」之力。 -你将扮演一位名为「8u」的神秘用户 +逐步发掘理塘的真相 +但是命运二 +是由棒鸡自主研发的一款全新开放世界冒险游戏 +游戏发生在一个被称作太阳系的幻想世界 +被旅行者选中的人将被授予机灵 +导引光能之力 +你将扮演一位名为守护者的神秘角色 +阻止暗影的侵袭同时 +逐步发掘光能与暗影的真相 +但是贴吧 +是由百度自主研发的一款全新嘴炮论坛喷人平台 +贴吧含有一个被称作孙笑川吧的贴吧世界 +被吧主选中的人将被授予米线 +引导团建之力 +你将扮演一位名为8u的神秘用户 在自由的发帖中邂逅性格各异的贴吧老鼠们 和它们一起无中生有 找回被抄的游戏的同时 -逐步降低「贴吧」的素质。 -但是《CS:GO》 -是由valve自主研发的一款全新竞技类FPS游戏。 -游戏发生在一个被称作「炙热沙城」的幻想世界 -被FBI选中的人将被授予「经济」 -导引反恐之力。 -你将扮演一位名为「反恐精英」的神秘角色 -在自由的对局中邂逅性格各异、能力独特的同伴们 +逐步降低贴吧的素质 +但是CSGO +是由valve自主研发的一款全新竞技类FPS游戏 +游戏发生在一个被称作炙热沙城的幻想世界 +被FBI选中的人将被授予经济 +导引反恐之力 +你将扮演一位名为反恐精英的神秘角色 +在自由的对局中邂逅性格各异能力独特的同伴们 找回挂B的亲m的同时 -逐步发掘「急停与拉枪」的真相。 -但是《鬼泣五》 -是由卡普空自主研发的一款全新动作类冒险游戏。 -游戏发生在一个被称作「红墓市」的幻想世界 -被斯巴达选中的人将被授予「魔人」 -导引恶魔之力。 -你将扮演一位名为「恶魔猎人」的神秘角色 -在自由的旅行中邂逅性格各异、能力独特同伴们 +逐步发掘急停与拉枪的真相 +但是鬼泣五 +是由卡普空自主研发的一款全新动作类冒险游戏 +游戏发生在一个被称作红墓市的幻想世界 +被斯巴达选中的人将被授予魔人 +导引恶魔之力 +你将扮演一位名为恶魔猎人的神秘角色 +在自由的旅行中邂逅性格各异能力独特同伴们 阻止魔树侵袭的同时 -逐步发掘「V」的真相。 -但是《巫师三:狂猎》 -是由波兰蠢驴自主研发的一款全新RPG冒险游戏。 -游戏发生在一个被称作「北部王国」的幻想世界 -被维瑟米尔选中的人将被授予「青草试炼」 -导引狩魔猎人之力。 -你将扮演一位名为「狩魔猎人」的神秘角色 +逐步发掘V的真相 +但是巫师三狂猎 +是由波兰蠢驴自主研发的一款全新RPG冒险游戏 +游戏发生在一个被称作北部王国的幻想世界 +被维瑟米尔选中的人将被授予青草试炼 +导引狩魔猎人之力 +你将扮演一位名为狩魔猎人的神秘角色 和他们一起打昆特牌 寻找失散女儿的同时 -逐步发掘「狂猎」的真相。 +逐步发掘狂猎的真相 diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java index 102d27c834..0bb9837899 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java @@ -48,8 +48,10 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import top.qwq2333.nullgram.config.ConfigManager; import top.qwq2333.nullgram.helpers.WebSocketHelper; import top.qwq2333.nullgram.utils.AlertUtil; +import top.qwq2333.nullgram.utils.Defines; import top.qwq2333.nullgram.utils.StringUtils; import top.qwq2333.nullgram.utils.UIUtil; @@ -1788,6 +1790,10 @@ public static void updateDayNightThemeSwitchHintCount(int count) { @PerformanceClass public static int getDevicePerformanceClass() { + if (ConfigManager.getIntOrDefault(Defines.devicePerformance, Defines.devicePerformanceAuto) != Defines.devicePerformanceAuto) { + return ConfigManager.getIntOrDefault(Defines.devicePerformance, Defines.devicePerformanceAuto); + } + if (devicePerformanceClass == -1) { int androidVersion = Build.VERSION.SDK_INT; int cpuCount = ConnectionsManager.CPU_COUNT; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java b/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java index a86383aa75..e00daf106c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java +++ b/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java @@ -69,11 +69,18 @@ public class GeneralSettingActivity extends BaseActivity { private int disableUndoRow; private int skipOpenLinkConfirmRow; private int autoProxySwitchRow; - private int useSystemEmojiRow; - private int disableVibrationRow; private int tabsTitleTypeRow; private int openArchiveOnPullRow; + + + private int devicesRow; + private int useSystemEmojiRow; + private int disableVibrationRow; private int autoDisableBuiltInProxyRow; + private int overrideDevicePerformanceRow; + private int overrideDevicePerformanceDescRow; + private int devices2Row; + private int general2Row; @@ -188,6 +195,21 @@ protected void onItemClick(View view, int position, float x, float y) { listAdapter.notifyItemChanged(tabsTitleTypeRow, PARTIAL); getNotificationCenter().postNotificationName(NotificationCenter.dialogFiltersUpdated); }); + } else if (position == overrideDevicePerformanceRow) { + ArrayList arrayList = new ArrayList<>(); + ArrayList types = new ArrayList<>(); + arrayList.add(LocaleController.getString("DevicePerformanceAuto", R.string.DevicePerformanceAuto)); + types.add(Defines.devicePerformanceAuto); + arrayList.add(LocaleController.getString("DevicePerformanceLow", R.string.DevicePerformanceLow)); + types.add(Defines.devicePerformanceLow); + arrayList.add(LocaleController.getString("DevicePerformanceMedium", R.string.DevicePerformanceMedium)); + types.add(Defines.devicePerformanceMedium); + arrayList.add(LocaleController.getString("DevicePerformanceHigh", R.string.DevicePerformanceHigh)); + types.add(Defines.devicePerformanceHigh); + PopupBuilder.show(arrayList, LocaleController.getString("OverrideDevicePerformance", R.string.OverrideDevicePerformance), types.indexOf(ConfigManager.getIntOrDefault(Defines.devicePerformance, Defines.devicePerformanceAuto)), getParentActivity(), view, i -> { + ConfigManager.putInt(Defines.devicePerformance, types.get(i)); + listAdapter.notifyItemChanged(overrideDevicePerformanceRow, PARTIAL); + }); } else if (position == openArchiveOnPullRow) { ConfigManager.toggleBoolean(Defines.openArchiveOnPull); if (view instanceof TextCheckCell) { @@ -318,12 +340,18 @@ protected void updateRows() { disableUndoRow = rowCount++; skipOpenLinkConfirmRow = rowCount++; autoProxySwitchRow = rowCount++; - useSystemEmojiRow = rowCount++; openArchiveOnPullRow = rowCount++; - autoDisableBuiltInProxyRow = rowCount++; - disableVibrationRow = rowCount++; tabsTitleTypeRow = rowCount++; general2Row = rowCount++; + + devicesRow = rowCount++; + useSystemEmojiRow = rowCount++; + autoDisableBuiltInProxyRow = rowCount++; + disableVibrationRow = rowCount++; + overrideDevicePerformanceRow = rowCount++; + overrideDevicePerformanceDescRow = rowCount++; + devices2Row = rowCount++; + if (listAdapter != null) { listAdapter.notifyDataSetChanged(); } @@ -371,6 +399,22 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, boole value = LocaleController.getString("TabTitleTypeMix", R.string.TabTitleTypeMix); } textCell.setTextAndValue(LocaleController.getString("TabTitleType", R.string.TabTitleType), value, payload, false); + } else if (position == overrideDevicePerformanceRow) { + String value; + switch (ConfigManager.getIntOrDefault(Defines.devicePerformance, Defines.devicePerformanceAuto)) { + case Defines.devicePerformanceLow: + value = LocaleController.getString("DevicePerformanceLow", R.string.DevicePerformanceLow); + break; + case Defines.devicePerformanceMedium: + value = LocaleController.getString("DevicePerformanceMedium", R.string.DevicePerformanceMedium); + break; + case Defines.devicePerformanceHigh: + value = LocaleController.getString("DevicePerformanceHigh", R.string.DevicePerformanceHigh); + break; + default: + value = LocaleController.getString("DevicePerformanceAuto", R.string.DevicePerformanceAuto); + } + textCell.setTextAndValue(LocaleController.getString("OverrideDevicePerformance", R.string.OverrideDevicePerformance), value, payload, false); } else if (position == translationProviderRow) { Pair, ArrayList> providers = TranslateHelper.getProviders(); ArrayList names = providers.first; @@ -482,6 +526,8 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, boole headerCell.setText(LocaleController.getString("General", R.string.General)); } else if (position == translatorRow) { headerCell.setText(LocaleController.getString("Translator", R.string.Translator)); + } else if (position == devicesRow) { + headerCell.setText(LocaleController.getString("Devices", R.string.Devices)); } break; } @@ -489,6 +535,13 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, boole NotificationsCheckCell textCell = (NotificationsCheckCell) holder.itemView; break; } + case 7: { + TextInfoPrivacyCell cell = (TextInfoPrivacyCell) holder.itemView; + if (position == overrideDevicePerformanceDescRow) { + cell.setText(LocaleController.getString("OverrideDevicePerformanceDesc", R.string.OverrideDevicePerformanceDesc)); + } + break; + } case 8: { DrawerProfilePreviewCell cell = (DrawerProfilePreviewCell) holder.itemView; cell.setUser(getUserConfig().getCurrentUser(), false); @@ -548,15 +601,18 @@ public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int @Override public int getItemViewType(int position) { - if (position == general2Row || position == drawer2Row || position == translator2Row) { + if (position == general2Row || position == drawer2Row || position == translator2Row || position == devices2Row) { return 1; - } else if (position == tabsTitleTypeRow || position == translationProviderRow || position == translationTargetRow || position == translatorTypeRow || position == doNotTranslateRow) { + } else if (position == tabsTitleTypeRow || position == translationProviderRow || position == translationTargetRow || position == translatorTypeRow || + position == doNotTranslateRow || position == overrideDevicePerformanceRow) { return 2; - } else if (position == generalRow || position == translatorRow) { + } else if (position == generalRow || position == translatorRow || position == devicesRow) { return 4; + } else if (position == overrideDevicePerformanceDescRow) { + return 7; } else if (position == drawerRow) { return 8; - } else if ((position > generalRow && position < general2Row) || (position > drawerRow && position < drawer2Row) || (position > translatorRow && position < translator2Row)) { + } else if ((position > generalRow && position < general2Row) || (position > devicesRow && position < devices2Row) || (position > drawerRow && position < drawer2Row) || (position > translatorRow && position < translator2Row)) { return 3; } return -1; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java b/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java index ad80228748..f4d2fa1580 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java +++ b/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java @@ -132,6 +132,13 @@ public class Defines { public static final int tabMenuMix = 1; public static final int tabMenuIcon = 2; + // Override device + public static final String devicePerformance = "devicePerformance"; + public static final int devicePerformanceAuto = -1; + public static final int devicePerformanceLow = 0; + public static final int devicePerformanceMedium = 1; + public static final int devicePerformanceHigh = 2; + // WebSocket Proxy public static final String wsEnableTLS = "wsEnableTLS"; public static final String wsUseMTP = "wsUseMTP"; diff --git a/TMessagesProj/src/main/res/values/strings_nullgram.xml b/TMessagesProj/src/main/res/values/strings_nullgram.xml index b3fc53664c..0d79130a87 100644 --- a/TMessagesProj/src/main/res/values/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values/strings_nullgram.xml @@ -256,4 +256,10 @@ Installing app from apk file in chat is not available in the Play Store version of the app.\nPlease save it manually and install from File Manager. In Message Login via sms is currently disabled for any 3rd TELEOFFICIAL client due to TELEOFFICIAL\'s policy.\nWe apologize for any inconvenience caused. + Default + Low + Medium + High + Override performance detect + Override TELEOFFICIAL\'s device performance detector.\nLow mode will reduce animation effects and other stuff as much as possible, which may help to save power in the foreground.\nHigh mode may greatly increase power consumption and performance burden and cause stuttering. From 733fd05e07fb7186de1ad41b8fc2709d9a7a6812 Mon Sep 17 00:00:00 2001 From: qwq233 Date: Sun, 19 Feb 2023 03:01:20 +0800 Subject: [PATCH 03/25] fix: status bar color Signed-off-by: qwq233 --- .../main/java/org/telegram/ui/ActionBar/ActionBarLayout.java | 5 ++--- .../main/java/org/telegram/ui/ActionBar/BaseFragment.java | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java index 6a24c892f5..e06162e3f4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java @@ -1657,9 +1657,8 @@ public void closeLastFragment(boolean animated, boolean forceNoAnimation) { } if (previousFragment != null) { - AndroidUtilities.setLightStatusBar(parentActivity.getWindow(), - previousFragment.isLightStatusBar() || Theme.getColor(Theme.key_actionBarDefault) == Color.WHITE || (previousFragment.hasForceLightStatusBar() && !Theme.getCurrentTheme().isDark()), - previousFragment.hasForceLightStatusBar()); + // Fix status bar color + AndroidUtilities.setLightStatusBar(parentActivity.getWindow(), Theme.getColor(Theme.key_actionBarDefault) == Color.WHITE || (previousFragment.hasForceLightStatusBar() && !Theme.getCurrentTheme().isDark()), previousFragment.hasForceLightStatusBar()); LayoutContainer temp = containerView; containerView = containerViewBack; containerViewBack = temp; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java index 02dca5c27f..454262fde7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java @@ -850,7 +850,8 @@ public void setRemovingFromStack(boolean b) { } public boolean isLightStatusBar() { - if (hasForceLightStatusBar() && !Theme.getActiveTheme().isDark()) { + // Fix status bar color + if (hasForceLightStatusBar() && !Theme.getCurrentTheme().isDark()) { return true; } Theme.ResourcesProvider resourcesProvider = getResourceProvider(); From a14fdb7a7884fa8f4b0d49afc335d121371f7c0e Mon Sep 17 00:00:00 2001 From: qwq233 Date: Sun, 19 Feb 2023 03:10:57 +0800 Subject: [PATCH 04/25] chore: bump gradle version to v8.0.1 Signed-off-by: qwq233 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 26811862df..2450417ae0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Jun 02 00:03:05 CST 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME From 6fcdd3d838bb000c2dd907befe62968d175caad1 Mon Sep 17 00:00:00 2001 From: qwq233 Date: Sun, 19 Feb 2023 03:29:18 +0800 Subject: [PATCH 05/25] chore: bump dependencies version Signed-off-by: qwq233 --- TMessagesProj/build.gradle.kts | 12 ++++++------ build.gradle.kts | 4 ++-- buildSrc/src/main/kotlin/Version.kt | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/TMessagesProj/build.gradle.kts b/TMessagesProj/build.gradle.kts index 40b7ac1d7b..16eb97df8e 100644 --- a/TMessagesProj/build.gradle.kts +++ b/TMessagesProj/build.gradle.kts @@ -39,7 +39,7 @@ dependencies { implementation("androidx.core:core-ktx:1.9.0") implementation("androidx.palette:palette-ktx:1.0.0") - implementation("androidx.exifinterface:exifinterface:1.3.5") + implementation("androidx.exifinterface:exifinterface:1.3.6") implementation("androidx.dynamicanimation:dynamicanimation:1.0.0") implementation("androidx.multidex:multidex:2.0.1") implementation("androidx.interpolator:interpolator:1.0.0") @@ -47,14 +47,14 @@ dependencies { compileOnly("org.checkerframework:checker-qual:3.28.0") compileOnly("org.checkerframework:checker-compat-qual:2.5.5") - implementation("com.google.firebase:firebase-messaging:23.1.0") - implementation("com.google.firebase:firebase-config:21.1.2") + implementation("com.google.firebase:firebase-messaging:23.1.1") + implementation("com.google.firebase:firebase-config:21.2.1") implementation("com.google.firebase:firebase-datatransport:18.1.7") implementation("com.google.firebase:firebase-appindexing:20.0.0") - implementation("com.google.android.gms:play-services-auth:20.3.0") + implementation("com.google.android.gms:play-services-auth:20.4.1") implementation("com.google.android.gms:play-services-vision:20.1.3") - implementation("com.google.android.gms:play-services-wearable:17.1.0") - implementation("com.google.android.gms:play-services-location:20.0.0") + implementation("com.google.android.gms:play-services-wearable:18.0.0") + implementation("com.google.android.gms:play-services-location:21.0.1") implementation("com.google.android.gms:play-services-wallet:19.1.0") // implementation("com.google.android.gms:play-services-safetynet:18.0.1") implementation("com.googlecode.mp4parser:isoparser:1.1.22") diff --git a/build.gradle.kts b/build.gradle.kts index e796b4b72a..e820d18126 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,8 +2,8 @@ @file:Suppress("UnstableApiUsage") plugins { - id("com.android.application") version "7.4.1" apply false - id("com.android.library") version "7.4.1" apply false + id("com.android.application") version "7.3.1" apply false + id("com.android.library") version "7.3.1" apply false id("com.google.gms.google-services") version "4.3.13" apply false id("org.jetbrains.kotlin.android") version Version.kotlin apply false kotlin("plugin.serialization") version Version.kotlin apply false diff --git a/buildSrc/src/main/kotlin/Version.kt b/buildSrc/src/main/kotlin/Version.kt index f5ba6d91fc..7aa58fb504 100644 --- a/buildSrc/src/main/kotlin/Version.kt +++ b/buildSrc/src/main/kotlin/Version.kt @@ -1,7 +1,7 @@ object Version { @JvmStatic - val kotlin = "1.8.0" + val kotlin = "1.8.10" @JvmStatic val ktor = "2.2.1" From 421511041c2aa4c41680b76ee9e2436397317e88 Mon Sep 17 00:00:00 2001 From: Next Alone <12210746+NextAlone@users.noreply.github.com> Date: Sun, 19 Feb 2023 01:04:56 +0800 Subject: [PATCH 06/25] refactor: make it nagram, thou nnngram now Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com> --- README.md | 7 +- TMessagesProj/build.gradle.kts | 66 ++--- TMessagesProj/config/release.keystore | Bin 8495 -> 2165 bytes TMessagesProj/google-services.json | 75 +---- TMessagesProj/jni/integrity/genuine.h | 6 +- TMessagesProj/jni/jni.c | 2 +- TMessagesProj/src/main/AndroidManifest.xml | 2 +- .../recyclerview/widget/ItemTouchHelper.java | 4 +- .../recyclerview/widget/RecyclerView.java | 6 +- .../telegram/messenger/AndroidUtilities.java | 8 +- .../telegram/messenger/ApplicationLoader.java | 6 +- .../org/telegram/messenger/BuildVars.java | 8 +- .../java/org/telegram/messenger/Emoji.java | 6 +- .../telegram/messenger/FileLoadOperation.java | 4 +- .../java/org/telegram/messenger/FileLog.java | 2 +- .../messenger/FileUploadOperation.java | 4 +- .../messenger/FilesMigrationService.java | 2 +- .../org/telegram/messenger/ImageLoader.java | 22 +- .../telegram/messenger/LocaleController.java | 10 +- .../telegram/messenger/MediaController.java | 24 +- .../messenger/MediaDataController.java | 4 +- .../org/telegram/messenger/MessageObject.java | 6 +- .../messenger/MessagesController.java | 4 +- .../telegram/messenger/MessagesStorage.java | 6 +- .../messenger/NotificationsController.java | 4 +- .../messenger/SendMessagesHelper.java | 4 +- .../org/telegram/messenger/SharedConfig.java | 18 +- .../org/telegram/messenger/UserConfig.java | 2 +- .../telegram/messenger/camera/CameraView.java | 4 +- .../telegram/tgnet/ConnectionsManager.java | 8 +- .../main/java/org/telegram/tgnet/TLRPC.java | 2 +- .../org/telegram/ui/ActionBar/ActionBar.java | 4 +- .../ui/ActionBar/ActionBarLayout.java | 6 +- .../telegram/ui/ActionBar/BaseFragment.java | 8 +- .../java/org/telegram/ui/ActionBar/Theme.java | 2 +- .../ui/Adapters/DrawerLayoutAdapter.java | 2 +- .../java/org/telegram/ui/ArticleViewer.java | 4 +- .../java/org/telegram/ui/AvatarPreviewer.java | 4 +- .../java/org/telegram/ui/BubbleActivity.java | 4 +- .../org/telegram/ui/CalendarActivity.java | 4 +- .../org/telegram/ui/CameraScanActivity.java | 2 +- .../java/org/telegram/ui/Cells/BaseCell.java | 4 +- .../telegram/ui/Cells/ChatMessageCell.java | 8 +- .../org/telegram/ui/Cells/DialogCell.java | 4 +- .../telegram/ui/Cells/DrawerProfileCell.java | 6 +- .../org/telegram/ui/Cells/SharedLinkCell.java | 4 +- .../ui/Cells/TextSelectionHelper.java | 2 +- .../telegram/ui/ChannelAdminLogActivity.java | 4 +- .../java/org/telegram/ui/ChatActivity.java | 20 +- .../org/telegram/ui/ChatUsersActivity.java | 2 +- .../telegram/ui/Components/AlertsCreator.java | 6 +- .../ui/Components/BlockingUpdateView.java | 2 +- .../ui/Components/ChatActivityEnterView.java | 6 +- .../ui/Components/ChatAttachAlert.java | 2 +- .../ChatAttachAlertLocationLayout.java | 2 +- .../ChatAttachAlertPhotoLayout.java | 8 +- .../ui/Components/EditTextCaption.java | 2 +- .../org/telegram/ui/Components/EmojiView.java | 4 +- .../ui/Components/FilterTabsView.java | 6 +- .../telegram/ui/Components/ImageUpdater.java | 2 +- .../telegram/ui/Components/PasscodeView.java | 2 +- .../ui/Components/SearchViewPager.java | 4 +- .../ui/Components/SenderSelectPopup.java | 4 +- .../telegram/ui/Components/ShareAlert.java | 4 +- .../ui/Components/SharedMediaLayout.java | 4 +- .../ui/Components/TranslateAlert.java | 6 +- .../org/telegram/ui/Components/UndoView.java | 4 +- .../ui/Components/UpdateAppAlertDialog.java | 2 +- .../ui/Components/WallpaperUpdater.java | 2 +- .../Components/spoilers/SpoilersTextView.java | 4 +- .../java/org/telegram/ui/DialogsActivity.java | 16 +- .../telegram/ui/DocumentSelectActivity.java | 4 +- .../telegram/ui/ExternalActionActivity.java | 4 +- .../org/telegram/ui/FilterCreateActivity.java | 4 +- .../org/telegram/ui/FiltersSetupActivity.java | 2 +- .../java/org/telegram/ui/LaunchActivity.java | 20 +- .../java/org/telegram/ui/LoginActivity.java | 22 +- .../org/telegram/ui/PasscodeActivity.java | 2 +- .../java/org/telegram/ui/PhotoViewer.java | 10 +- .../java/org/telegram/ui/ProfileActivity.java | 30 +- .../org/telegram/ui/ProxyListActivity.java | 12 +- .../nextalone/nnngram/NnngramPushService.kt} | 4 +- .../nnngram}/activity/BaseActivity.java | 4 +- .../activity/ChatSettingActivity.java | 16 +- .../nnngram}/activity/DatacenterActivity.java | 4 +- .../activity/ExperimentSettingActivity.java | 10 +- .../activity/GeneralSettingActivity.java | 12 +- .../activity/LanguageSelectActivity.java | 4 +- .../nnngram}/activity/LicenseActivity.java | 2 +- .../activity/MainSettingActivity.java | 28 +- .../activity/MessageDetailActivity.java | 4 +- .../activity/PasscodeSettingActivity.java | 6 +- .../nnngram}/activity/WsSettingsActivity.java | 6 +- .../nnngram}/config/ConfigManager.java | 4 +- .../nnngram}/config/DialogConfig.java | 4 +- .../nnngram}/config/ForwardContext.java | 2 +- .../nnngram}/helpers/FolderIconHelper.kt | 6 +- .../nnngram}/helpers/MonetHelper.java | 2 +- .../nnngram}/helpers/PasscodeHelper.java | 6 +- .../nnngram}/helpers/SettingsHelper.java | 16 +- .../nnngram}/helpers/TranslateHelper.kt | 18 +- .../nnngram}/helpers/UpdateHelper.java | 22 +- .../nnngram}/helpers/WebSocketHelper.java | 10 +- .../nnngram}/translate/BaseTranslator.kt | 4 +- .../translate/LanguageDetectorTimeout.java | 2 +- .../translate/providers/GoogleTranslator.kt | 8 +- .../translate/providers/LingoTranslator.kt | 6 +- .../providers/MicrosoftTranslator.kt | 8 +- .../translate/providers/TelegramTranslator.kt | 4 +- .../nnngram}/ui/AppLinkVerifyBottomSheet.java | 6 +- .../ui/AutoTranslatePopupWrapper.java | 4 +- .../nextalone/nnngram}/ui/BottomBuilder.kt | 2 +- .../nnngram}/ui/DrawerProfilePreviewCell.kt | 2 +- .../nnngram}/ui/EditTextAutoFill.java | 2 +- .../nextalone/nnngram}/ui/IconSelector.kt | 4 +- .../nextalone/nnngram}/ui/PopupBuilder.kt | 6 +- .../nnngram}/ui/SendOptionsMenuLayout.java | 4 +- .../ui/StickerSizePreviewMessagesCell.java | 2 +- .../ui/TranslatorSettingsPopupWrapper.java | 4 +- .../ui/simplemenu/CustomBoundsDrawable.java | 2 +- .../ui/simplemenu/DrawableWrapper.java | 2 +- .../simplemenu/ForegroundCheckTextView.java | 2 +- .../ui/simplemenu/PropertyHolder.java | 2 +- .../nnngram}/ui/simplemenu/RectEvaluator.java | 2 +- .../ui/simplemenu/SimpleMenuAnimation.java | 2 +- .../simplemenu/SimpleMenuBoundsProperty.java | 2 +- .../ui/simplemenu/SimpleMenuItem.java | 2 +- .../ui/simplemenu/SimpleMenuListAdapter.java | 6 +- .../ui/simplemenu/SimpleMenuPopupWindow.java | 2 +- .../syntaxhighlight/ColorHighlightSpan.java | 2 +- .../Prism4jSyntaxHighlight.java | 2 +- .../syntaxhighlight/Prism4jSyntaxVisitor.java | 2 +- .../ui/syntaxhighlight/Prism4jTheme.java | 2 +- .../ui/syntaxhighlight/Prism4jThemeBase.java | 2 +- .../syntaxhighlight/Prism4jThemeDefault.java | 2 +- .../ui/syntaxhighlight/SyntaxHighlight.java | 2 +- .../nextalone/nnngram}/utils/APKUtils.kt | 2 +- .../nextalone/nnngram}/utils/AlertUtil.kt | 4 +- .../nnngram}/utils/AppcenterUtils.java | 2 +- .../nextalone/nnngram}/utils/AudioUtils.kt | 4 +- .../nextalone/nnngram}/utils/DatabaseUtils.kt | 2 +- .../nextalone/nnngram}/utils/Defines.java | 2 +- .../nextalone/nnngram}/utils/FileUtils.kt | 2 +- .../nextalone/nnngram}/utils/JsonUtils.kt | 2 +- .../nextalone/nnngram}/utils/Log.kt | 4 +- .../nnngram}/utils/MessageUtils.java | 2 +- .../nextalone/nnngram}/utils/NumberUtils.java | 2 +- .../nnngram}/utils/PermissionUtils.kt | 2 +- .../nextalone/nnngram}/utils/PrivacyUtils.kt | 2 +- .../nextalone/nnngram}/utils/ProxyUtils.kt | 4 +- .../nextalone/nnngram}/utils/ShareUtil.kt | 2 +- .../nextalone/nnngram}/utils/StringUtils.java | 2 +- .../nextalone/nnngram}/utils/UIUtils.kt | 2 +- .../nextalone/nnngram}/utils/UpdateUtil.kt | 6 +- .../nextalone/nnngram}/utils/Utils.kt | 4 +- .../nnngram}/utils/VibrationUtils.kt | 4 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- .../strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- .../strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- .../strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- .../res/values-zh-rTW/strings_nnngram.xml | 259 +++++++++++++++++ .../res/values-zh-rTW/strings_nullgram.xml | 259 ----------------- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- TMessagesProj/src/main/res/values/strings.xml | 272 +++++++++--------- ...rings_nullgram.xml => strings_nnngram.xml} | 20 +- build.gradle.kts | 2 +- buildSrc/src/main/kotlin/ReplaceIcon.kt | 38 --- settings.gradle.kts | 2 +- 175 files changed, 981 insertions(+), 1085 deletions(-) mode change 100755 => 100644 TMessagesProj/google-services.json rename TMessagesProj/src/main/java/{top/qwq2333/nullgram/NullgramPushService.kt => xyz/nextalone/nnngram/NnngramPushService.kt} (92%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/BaseActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/ChatSettingActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/DatacenterActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/ExperimentSettingActivity.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/GeneralSettingActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/LanguageSelectActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/LicenseActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/MainSettingActivity.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/MessageDetailActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/PasscodeSettingActivity.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/activity/WsSettingsActivity.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/config/ConfigManager.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/config/DialogConfig.java (92%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/config/ForwardContext.java (96%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/FolderIconHelper.kt (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/MonetHelper.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/PasscodeHelper.java (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/SettingsHelper.java (78%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/TranslateHelper.kt (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/UpdateHelper.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/helpers/WebSocketHelper.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/translate/BaseTranslator.kt (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/translate/LanguageDetectorTimeout.java (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/translate/providers/GoogleTranslator.kt (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/translate/providers/LingoTranslator.kt (93%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/translate/providers/MicrosoftTranslator.kt (96%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/translate/providers/TelegramTranslator.kt (92%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/AppLinkVerifyBottomSheet.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/AutoTranslatePopupWrapper.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/BottomBuilder.kt (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/DrawerProfilePreviewCell.kt (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/EditTextAutoFill.java (94%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/IconSelector.kt (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/PopupBuilder.kt (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/SendOptionsMenuLayout.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/StickerSizePreviewMessagesCell.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/TranslatorSettingsPopupWrapper.java (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/CustomBoundsDrawable.java (96%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/DrawableWrapper.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/ForegroundCheckTextView.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/PropertyHolder.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/RectEvaluator.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/SimpleMenuAnimation.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/SimpleMenuBoundsProperty.java (94%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/SimpleMenuItem.java (96%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/SimpleMenuListAdapter.java (87%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/simplemenu/SimpleMenuPopupWindow.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/ColorHighlightSpan.java (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/Prism4jSyntaxHighlight.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/Prism4jSyntaxVisitor.java (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/Prism4jTheme.java (88%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/Prism4jThemeBase.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/Prism4jThemeDefault.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/ui/syntaxhighlight/SyntaxHighlight.java (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/APKUtils.kt (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/AlertUtil.kt (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/AppcenterUtils.java (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/AudioUtils.kt (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/DatabaseUtils.kt (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/Defines.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/FileUtils.kt (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/JsonUtils.kt (97%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/Log.kt (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/MessageUtils.java (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/NumberUtils.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/PermissionUtils.kt (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/PrivacyUtils.kt (99%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/ProxyUtils.kt (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/ShareUtil.kt (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/StringUtils.java (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/UIUtils.kt (95%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/UpdateUtil.kt (96%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/Utils.kt (98%) rename TMessagesProj/src/main/java/{top/qwq2333/nullgram => xyz/nextalone/nnngram}/utils/VibrationUtils.kt (93%) rename TMessagesProj/src/main/res/values-ar/{strings_nullgram.xml => strings_nnngram.xml} (97%) rename TMessagesProj/src/main/res/{values-fr/strings_nullgram.xml => values-de/strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/values-es/{strings_nullgram.xml => strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/{values-ko/strings_nullgram.xml => values-fr/strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/values-it/{strings_nullgram.xml => strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/{values-de/strings_nullgram.xml => values-ko/strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/values-nl/{strings_nullgram.xml => strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/values-pt/{strings_nullgram.xml => strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/values-ru/{strings_nullgram.xml => strings_nnngram.xml} (97%) rename TMessagesProj/src/main/res/values-tr/{strings_nullgram.xml => strings_nnngram.xml} (95%) rename TMessagesProj/src/main/res/values-uz/{strings_nullgram.xml => strings_nnngram.xml} (96%) create mode 100644 TMessagesProj/src/main/res/values-zh-rTW/strings_nnngram.xml delete mode 100644 TMessagesProj/src/main/res/values-zh-rTW/strings_nullgram.xml rename TMessagesProj/src/main/res/values-zh/{strings_nullgram.xml => strings_nnngram.xml} (96%) rename TMessagesProj/src/main/res/values/{strings_nullgram.xml => strings_nnngram.xml} (96%) delete mode 100644 buildSrc/src/main/kotlin/ReplaceIcon.kt diff --git a/README.md b/README.md index 511b55d9bf..0ce759b817 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ -# Nullgram - -[![Telegram](https://img.shields.io/static/v1?label=Telegram&message=@NullgramClient&color=0088cc)](https://t.me/NullgramClient)[![CI build](https://github.com/qwq233/Nullgram/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/qwq233/Nullgram/actions/workflows/ci.yml/)[![Crowdin](https://badges.crowdin.net/nullgram/localized.svg)](https://crowdin.com/project/nullgram) - -[中文](README_CN.md) +# Nagram-reborn based on Nullgram +## What is Nullgram Nullgram is an **free and open source** third-party Telegram client, based on Telegram, [NekoX](https://github.com/NekoX-Dev/NekoX) and [Nekogram](https://gitlab.com/Nekogram/Nekogram). the official source code for [Telegram App for Android](https://play.google.com/store/apps/details?id=org.telegram.messenger). diff --git a/TMessagesProj/build.gradle.kts b/TMessagesProj/build.gradle.kts index 16eb97df8e..5671ba622f 100644 --- a/TMessagesProj/build.gradle.kts +++ b/TMessagesProj/build.gradle.kts @@ -94,7 +94,7 @@ dependencies { } android { - defaultConfig.applicationId = "top.qwq2333.nullgram" + defaultConfig.applicationId = "xyz.nextalone.nnngram" sourceSets.getByName("main") { java.srcDir("src/main/java") @@ -181,40 +181,40 @@ android { abiFilters.add("arm64-v8a") } } - create("arm32") { - dimension = "abi" - buildConfigField("boolean", "isPlay", "false") - ndk { - abiFilters.add("armeabi-v7a") - } - } - create("x86") { - dimension = "abi" - buildConfigField("boolean", "isPlay", "false") - ndk { - abiFilters.add("x86") - } - } - create("x86_64") { - dimension = "abi" - buildConfigField("boolean", "isPlay", "false") - ndk { - abiFilters.add("x86_64") - } - } - - create("play") { - dimension = "abi" - buildConfigField("boolean", "isPlay", "true") - ndk { - abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")) - } - } +// create("arm32") { +// dimension = "abi" +// buildConfigField("boolean", "isPlay", "false") +// ndk { +// abiFilters.add("armeabi-v7a") +// } +// } +// create("x86") { +// dimension = "abi" +// buildConfigField("boolean", "isPlay", "false") +// ndk { +// abiFilters.add("x86") +// } +// } +// create("x86_64") { +// dimension = "abi" +// buildConfigField("boolean", "isPlay", "false") +// ndk { +// abiFilters.add("x86_64") +// } +// } + +// create("play") { +// dimension = "abi" +// buildConfigField("boolean", "isPlay", "true") +// ndk { +// abiFilters.addAll(listOf("armeabi-v7a", "arm64-v8a", "x86", "x86_64")) +// } +// } } applicationVariants.all { val outputFileName = - "Nullgram-${defaultConfig.versionName}-${productFlavors.first().name}.apk" + "Nnngram-${defaultConfig.versionName}-${productFlavors.first().name}.apk" outputs.all { val output = this as? com.android.build.gradle.internal.api.BaseVariantOutputImpl output?.outputFileName = outputFileName @@ -224,7 +224,3 @@ android { dependenciesInfo.includeInApk = false } - - -tasks.register("replaceIcon") {} -tasks.getByName("preBuild").dependsOn(tasks.getByName("replaceIcon")) diff --git a/TMessagesProj/config/release.keystore b/TMessagesProj/config/release.keystore index fc88f3d509f0afca2def8a32bfe8b3db291f2e9b..795a67fe05c4dc68321386011cb992a92f96c4f7 100644 GIT binary patch literal 2165 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 mORS0Oyp(TAKwP75m!xCyW1?ME?gKdiNLr diff --git a/TMessagesProj/google-services.json b/TMessagesProj/google-services.json old mode 100755 new mode 100644 index 410f8ccc1b..d3ea166b88 --- a/TMessagesProj/google-services.json +++ b/TMessagesProj/google-services.json @@ -1,92 +1,33 @@ { "project_info": { - "project_number": "218019652733", - "firebase_url": "https://nullgram-c415d-default-rtdb.firebaseio.com", - "project_id": "nullgram-c415d", - "storage_bucket": "nullgram-c415d.appspot.com" + "project_number": "286771851762", + "project_id": "nnngram-na", + "storage_bucket": "nnngram-na.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:218019652733:android:2e95d1dad87c2bc5adfd14", + "mobilesdk_app_id": "1:286771851762:android:e00b6e88e9d3ce55ea7b6b", "android_client_info": { - "package_name": "top.qwq2333.nullgram" + "package_name": "xyz.nextalone.nnngram" } }, "oauth_client": [ { - "client_id": "218019652733-s2gonc2ar19hdagkmo5fjro8vf65dna2.apps.googleusercontent.com", + "client_id": "286771851762-31r6p4ka9sq7vkfe9d7sqde02iiqsrvk.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyCPOX02ywCT9cM-KHvOTuZok77HXN8-1eI" + "current_key": "AIzaSyB6IJeWGrPhj3TgwMUNX3n8WTxwWYfrp2Q" } ], "services": { "appinvite_service": { "other_platform_oauth_client": [ { - "client_id": "218019652733-s2gonc2ar19hdagkmo5fjro8vf65dna2.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:218019652733:android:196d9b2c6f2bbdc7adfd14", - "android_client_info": { - "package_name": "top.qwq2333.nullgram.beta" - } - }, - "oauth_client": [ - { - "client_id": "218019652733-s2gonc2ar19hdagkmo5fjro8vf65dna2.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyCPOX02ywCT9cM-KHvOTuZok77HXN8-1eI" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "218019652733-s2gonc2ar19hdagkmo5fjro8vf65dna2.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:218019652733:android:8ebe5d1e5fae0953adfd14", - "android_client_info": { - "package_name": "top.qwq2333.nullgram.web" - } - }, - "oauth_client": [ - { - "client_id": "218019652733-s2gonc2ar19hdagkmo5fjro8vf65dna2.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyCPOX02ywCT9cM-KHvOTuZok77HXN8-1eI" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "218019652733-s2gonc2ar19hdagkmo5fjro8vf65dna2.apps.googleusercontent.com", + "client_id": "286771851762-31r6p4ka9sq7vkfe9d7sqde02iiqsrvk.apps.googleusercontent.com", "client_type": 3 } ] diff --git a/TMessagesProj/jni/integrity/genuine.h b/TMessagesProj/jni/integrity/genuine.h index 7d1e1e36d3..7957b7176a 100644 --- a/TMessagesProj/jni/integrity/genuine.h +++ b/TMessagesProj/jni/integrity/genuine.h @@ -1,8 +1,8 @@ #include -#define GENUINE_NAME {0x74, 0x6e, 0x72, 0x2d, 0x75, 0x72, 0x77, 0x35, 0x3b, 0x3a, 0x39, 0x25, 0x62, 0x78, 0x62, 0x63, 0x77, 0x63, 0x73, 0x7e, 0x0} -#define GENUINE_SIZE 0x057b -#define GENUINE_HASH 0xcf879070 +#define GENUINE_NAME {0x79, 0x7b, 0x79, 0x2a, 0x6b, 0x63, 0x7f, 0x7c, 0x68, 0x66, 0x64, 0x62, 0x68, 0x20, 0x61, 0x7e, 0x7f, 0x75, 0x61, 0x61, 0x6c, 0x0} +#define GENUINE_SIZE 0x032b +#define GENUINE_HASH 0xcb477ddf #define GOOGLE_PLAY_SIZE 0x058d #define GOOGLE_PLAY_HASH 0x8302fcc7 diff --git a/TMessagesProj/jni/jni.c b/TMessagesProj/jni/jni.c index a8774db5f1..a79a7bfbcd 100644 --- a/TMessagesProj/jni/jni.c +++ b/TMessagesProj/jni/jni.c @@ -12,7 +12,7 @@ #include "genuine.h" #include #include -#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, "Nullgram", __VA_ARGS__) +#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, "Nnngram", __VA_ARGS__) int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env); diff --git a/TMessagesProj/src/main/AndroidManifest.xml b/TMessagesProj/src/main/AndroidManifest.xml index abc4022b3b..d724d30e80 100644 --- a/TMessagesProj/src/main/AndroidManifest.xml +++ b/TMessagesProj/src/main/AndroidManifest.xml @@ -443,7 +443,7 @@ - + diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java index 2df54cc857..1ad7f7711e 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/ItemTouchHelper.java @@ -44,8 +44,8 @@ import java.util.ArrayList; import java.util.List; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; /** * This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView. diff --git a/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java b/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java index 18f38d82e2..63be4c78f5 100644 --- a/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java +++ b/TMessagesProj/src/main/java/androidx/recyclerview/widget/RecyclerView.java @@ -97,9 +97,9 @@ import java.util.Collections; import java.util.List; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.VibrationUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.VibrationUtils; /** * A flexible view for providing a limited window into a large data set. diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java index 2e60390c89..48e124f42e 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -185,10 +185,10 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.AppcenterUtils; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.AppcenterUtils; +import xyz.nextalone.nnngram.utils.Defines; public class AndroidUtilities { public final static int LIGHT_STATUS_BAR_OVERLAY = 0x0f000000, DARK_STATUS_BAR_OVERLAY = 0x33000000; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java index 92f001d685..21d3fa7faf 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ApplicationLoader.java @@ -47,7 +47,7 @@ import java.util.HashMap; import java.util.concurrent.CountDownLatch; -import top.qwq2333.nullgram.utils.AppcenterUtils; +import xyz.nextalone.nnngram.utils.AppcenterUtils; public class ApplicationLoader extends Application { @@ -170,7 +170,7 @@ public static File getFilesDirFixed() { } catch (Exception e) { FileLog.e(e); } - return new File("/data/data/top.qwq2333.nullgram/files"); + return new File("/data/data/xyz.nextalone.nnngram/files"); } public static void postInitApplication() { @@ -301,7 +301,7 @@ public void onActivityStarted(Activity activity) { applicationHandler = new Handler(applicationContext.getMainLooper()); - org.osmdroid.config.Configuration.getInstance().setUserAgentValue("Nullgram" + BuildConfig.VERSION_NAME); + org.osmdroid.config.Configuration.getInstance().setUserAgentValue("Nnngram" + BuildConfig.VERSION_NAME); org.osmdroid.config.Configuration.getInstance().setOsmdroidBasePath(new File(ApplicationLoader.applicationContext.getCacheDir(), "osmdroid")); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java index 7ca812829e..7b00a9f94c 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/BuildVars.java @@ -26,16 +26,16 @@ public class BuildVars { public static boolean NO_SCOPED_STORAGE = Build.VERSION.SDK_INT <= 29; public static int BUILD_VERSION = 3106; public static String BUILD_VERSION_STRING = "9.4.2"; - public static int APP_ID = 19797609; - public static String APP_HASH = "e8f1567dbbf38944a1391c4d23c34b60"; + public static int APP_ID = 11535358; + public static String APP_HASH = "33d372962fadb01df47e6ceed4e33cd6"; public static String APPCENTER_HASH = "e07b49da-11a5-46db-a780-f5cd7b9a1a5a"; public static String SAFETYNET_KEY = ""; public static String SMS_HASH = "O2P2z+/jBpJ"; - public static String PLAYSTORE_APP_URL = "https://play.google.com/store/apps/details?id=top.qwq2333.nullgram"; + public static String PLAYSTORE_APP_URL = "https://play.google.com/store/apps/details?id=xyz.nextalone.nnngram"; public static String GOOGLE_AUTH_CLIENT_ID = "760348033671-81kmi3pi84p11ub8hp9a1funsv0rn2p9.apps.googleusercontent.com"; - public static String HUAWEI_APP_ID = "101184875"; +// public static String HUAWEI_APP_ID = "101184875"; // You can use this flag to disable Google Play Billing (If you're making fork and want it to be in Google Play) public static boolean IS_BILLING_UNAVAILABLE = BuildConfig.isPlay; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java index 9364f77d0d..a4c9f187f3 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/Emoji.java @@ -36,9 +36,9 @@ import java.util.HashMap; import java.util.Locale; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Utils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Utils; public class Emoji { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java index a3960fce3a..19f55592d5 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLoadOperation.java @@ -29,8 +29,8 @@ import java.util.zip.GZIPInputStream; import java.util.zip.ZipException; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class FileLoadOperation { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java index c524455ed2..7c0d6325b9 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java @@ -16,7 +16,7 @@ import java.io.File; import java.io.OutputStreamWriter; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.utils.Log; /** * @deprecated use {@link Log} instead diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java b/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java index 9536ac9d67..c5fb44d923 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileUploadOperation.java @@ -26,8 +26,8 @@ import java.lang.reflect.Method; import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class FileUploadOperation { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/FilesMigrationService.java b/TMessagesProj/src/main/java/org/telegram/messenger/FilesMigrationService.java index 4db0164191..3c474bfd1c 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FilesMigrationService.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FilesMigrationService.java @@ -204,7 +204,7 @@ public static void checkBottomSheet(BaseFragment fragment) { } } } - File oldDirectory = new File(path, "Nullgram"); + File oldDirectory = new File(path, "Nnngram"); hasOldFolder = oldDirectory.exists(); } if (hasOldFolder) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java index 90d01ebe35..c1e61941d3 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java @@ -2230,16 +2230,16 @@ public SparseArray createMediaPaths() { try { if (ApplicationLoader.applicationContext.getExternalMediaDirs().length > 0) { publicMediaDir = ApplicationLoader.applicationContext.getExternalMediaDirs()[0]; - publicMediaDir = new File(publicMediaDir, "Nullgram"); + publicMediaDir = new File(publicMediaDir, "Nnngram"); publicMediaDir.mkdirs(); } } catch (Exception e) { FileLog.e(e); } newPath = ApplicationLoader.applicationContext.getExternalFilesDir(null); - telegramPath = new File(newPath, "Nullgram"); + telegramPath = new File(newPath, "Nnngram"); } else { - telegramPath = new File(path, "Nullgram"); + telegramPath = new File(path, "Nnngram"); } telegramPath.mkdirs(); @@ -2249,7 +2249,7 @@ public SparseArray createMediaPaths() { File dir = dirs.get(a); if (dir.getAbsolutePath().startsWith(SharedConfig.storageCacheDir)) { path = dir; - telegramPath = new File(path, "Nullgram"); + telegramPath = new File(path, "Nnngram"); telegramPath.mkdirs(); break; } @@ -2258,7 +2258,7 @@ public SparseArray createMediaPaths() { if (telegramPath.isDirectory()) { try { - File imagePath = new File(telegramPath, "Nullgram Images"); + File imagePath = new File(telegramPath, "Nnngram Images"); imagePath.mkdir(); if (imagePath.isDirectory() && canMoveFiles(cachePath, imagePath, FileLoader.MEDIA_DIR_IMAGE)) { mediaDirs.put(FileLoader.MEDIA_DIR_IMAGE, imagePath); @@ -2271,7 +2271,7 @@ public SparseArray createMediaPaths() { } try { - File videoPath = new File(telegramPath, "Nullgram Video"); + File videoPath = new File(telegramPath, "Nnngram Video"); videoPath.mkdir(); if (videoPath.isDirectory() && canMoveFiles(cachePath, videoPath, FileLoader.MEDIA_DIR_VIDEO)) { mediaDirs.put(FileLoader.MEDIA_DIR_VIDEO, videoPath); @@ -2284,7 +2284,7 @@ public SparseArray createMediaPaths() { } try { - File audioPath = new File(telegramPath, "Nullgram Audio"); + File audioPath = new File(telegramPath, "Nnngram Audio"); audioPath.mkdir(); if (audioPath.isDirectory() && canMoveFiles(cachePath, audioPath, FileLoader.MEDIA_DIR_AUDIO)) { AndroidUtilities.createEmptyFile(new File(audioPath, ".nomedia")); @@ -2298,7 +2298,7 @@ public SparseArray createMediaPaths() { } try { - File documentPath = new File(telegramPath, "Nullgram Documents"); + File documentPath = new File(telegramPath, "Nnngram Documents"); documentPath.mkdir(); if (documentPath.isDirectory() && canMoveFiles(cachePath, documentPath, FileLoader.MEDIA_DIR_DOCUMENT)) { AndroidUtilities.createEmptyFile(new File(documentPath, ".nomedia")); @@ -2312,7 +2312,7 @@ public SparseArray createMediaPaths() { } try { - File normalNamesPath = new File(telegramPath, "Nullgram Files"); + File normalNamesPath = new File(telegramPath, "Nnngram Files"); normalNamesPath.mkdir(); if (normalNamesPath.isDirectory() && canMoveFiles(cachePath, normalNamesPath, FileLoader.MEDIA_DIR_FILES)) { AndroidUtilities.createEmptyFile(new File(normalNamesPath, ".nomedia")); @@ -2327,7 +2327,7 @@ public SparseArray createMediaPaths() { } if (publicMediaDir != null && publicMediaDir.isDirectory()) { try { - File imagePath = new File(publicMediaDir, "Nullgram Images"); + File imagePath = new File(publicMediaDir, "Nnngram Images"); imagePath.mkdir(); if (imagePath.isDirectory() && canMoveFiles(cachePath, imagePath, FileLoader.MEDIA_DIR_IMAGE)) { mediaDirs.put(FileLoader.MEDIA_DIR_IMAGE_PUBLIC, imagePath); @@ -2340,7 +2340,7 @@ public SparseArray createMediaPaths() { } try { - File videoPath = new File(publicMediaDir, "Nullgram Video"); + File videoPath = new File(publicMediaDir, "Nnngram Video"); videoPath.mkdir(); if (videoPath.isDirectory() && canMoveFiles(cachePath, videoPath, FileLoader.MEDIA_DIR_VIDEO)) { mediaDirs.put(FileLoader.MEDIA_DIR_VIDEO_PUBLIC, videoPath); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java b/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java index 7b559d0d9b..ddd6447884 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/LocaleController.java @@ -42,8 +42,8 @@ import java.util.Locale; import java.util.TimeZone; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class LocaleController { @@ -1037,14 +1037,14 @@ private String getStringInternal(String key, int res) { private String getStringInternal(String key, String fallback, int res) { if (key.equals("AppName")) { try { - return ApplicationLoader.applicationContext.getString(R.string.NullgramName); + return ApplicationLoader.applicationContext.getString(R.string.NnngramName); } catch (Exception e) { FileLog.e(e); } } if (key.equals("AppNameBeta")) { try { - return ApplicationLoader.applicationContext.getString(R.string.NullgramName); + return ApplicationLoader.applicationContext.getString(R.string.NnngramName); } catch (Exception e) { FileLog.e(e); } @@ -1074,7 +1074,7 @@ private String getStringInternal(String key, String fallback, int res) { } if (value.contains("Telegram")) - value = value.replace("Telegram", "Nullgram"); + value = value.replace("Telegram", "Nnngram"); if (value.contains("TELEOFFICIAL")) value = value.replace("TELEOFFICIAL", "Telegram"); return value; diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java index 3f05698816..a8fab88740 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java @@ -98,11 +98,11 @@ import java.util.TimerTask; import java.util.concurrent.CountDownLatch; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.AudioUtils; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.AudioUtils; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.PermissionUtils; public class MediaController implements AudioManager.OnAudioFocusChangeListener, NotificationCenter.NotificationCenterDelegate, SensorEventListener { @@ -4101,11 +4101,11 @@ public static void saveFile(String fullPath, Context context, final int type, fi } else { File destFile; if (type == 0) { - destFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Nullgram"); + destFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "Nnngram"); destFile.mkdirs(); destFile = new File(destFile, AndroidUtilities.generateFileName(0, FileLoader.getFileExtension(sourceFile))); } else if (type == 1) { - destFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "Nullgram"); + destFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES), "Nnngram"); destFile.mkdirs(); destFile = new File(destFile, AndroidUtilities.generateFileName(1, FileLoader.getFileExtension(sourceFile))); } else { @@ -4115,7 +4115,7 @@ public static void saveFile(String fullPath, Context context, final int type, fi } else { dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC); } - dir = new File(dir, "Nullgram"); + dir = new File(dir, "Nnngram"); dir.mkdirs(); destFile = new File(dir, name); if (destFile.exists()) { @@ -4240,7 +4240,7 @@ private static boolean saveFileInternal(int type, File sourceFile, String filena filename = AndroidUtilities.generateFileName(0, extension); } uriToInsert = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY); - File dirDest = new File(Environment.DIRECTORY_PICTURES, "Nullgram"); + File dirDest = new File(Environment.DIRECTORY_PICTURES, "Nnngram"); contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, dirDest + File.separator); contentValues.put(MediaStore.Images.Media.DISPLAY_NAME, filename); contentValues.put(MediaStore.Images.Media.MIME_TYPE, mimeType); @@ -4248,7 +4248,7 @@ private static boolean saveFileInternal(int type, File sourceFile, String filena if (filename == null) { filename = AndroidUtilities.generateFileName(1, extension); } - File dirDest = new File(Environment.DIRECTORY_MOVIES, "Nullgram"); + File dirDest = new File(Environment.DIRECTORY_MOVIES, "Nnngram"); contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, dirDest + File.separator); uriToInsert = MediaStore.Video.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY); contentValues.put(MediaStore.Video.Media.DISPLAY_NAME, filename); @@ -4256,7 +4256,7 @@ private static boolean saveFileInternal(int type, File sourceFile, String filena if (filename == null) { filename = sourceFile.getName(); } - File dirDest = new File(Environment.DIRECTORY_DOWNLOADS, "Nullgram"); + File dirDest = new File(Environment.DIRECTORY_DOWNLOADS, "Nnngram"); contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, dirDest + File.separator); uriToInsert = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY); contentValues.put(MediaStore.Downloads.DISPLAY_NAME, filename); @@ -4264,7 +4264,7 @@ private static boolean saveFileInternal(int type, File sourceFile, String filena if (filename == null) { filename = sourceFile.getName(); } - File dirDest = new File(Environment.DIRECTORY_MUSIC, "Nullgram"); + File dirDest = new File(Environment.DIRECTORY_MUSIC, "Nnngram"); contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, dirDest + File.separator); uriToInsert = MediaStore.Audio.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY); contentValues.put(MediaStore.Audio.Media.DISPLAY_NAME, filename); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java index a9b058f648..1ef991e903 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java @@ -91,8 +91,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; @SuppressWarnings("unchecked") public class MediaDataController extends BaseController { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java index de8cca915b..516c3f5c1f 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessageObject.java @@ -77,9 +77,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.ui.syntaxhighlight.SyntaxHighlight; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.ui.syntaxhighlight.SyntaxHighlight; +import xyz.nextalone.nnngram.utils.Defines; public class MessageObject { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java index e2d4a595f7..7b94f190e4 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesController.java @@ -85,8 +85,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CountDownLatch; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class MessagesController extends BaseController implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java index 71cfa9b5b3..13e480e2f9 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java @@ -53,9 +53,9 @@ import java.util.concurrent.atomic.AtomicReference; import java.util.function.Consumer; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; public class MessagesStorage extends BaseController { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java index fe444d6daa..62f9068f05 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/NotificationsController.java @@ -75,8 +75,8 @@ import java.util.concurrent.CountDownLatch; import java.util.function.Consumer; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class NotificationsController extends BaseController { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java index 9e1cdb4350..0eede6fdab 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java @@ -91,8 +91,8 @@ import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class SendMessagesHelper extends BaseController implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java index 0bb9837899..5de2325638 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java @@ -48,12 +48,12 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.WebSocketHelper; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.StringUtils; -import top.qwq2333.nullgram.utils.UIUtil; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.WebSocketHelper; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.StringUtils; +import xyz.nextalone.nnngram.utils.UIUtil; public class SharedConfig { /** @@ -1710,10 +1710,10 @@ public static void deleteProxy(ProxyInfo proxyInfo) { public static void checkSaveToGalleryFiles() { Utilities.globalQueue.postRunnable(() -> { try { - File telegramPath = new File(Environment.getExternalStorageDirectory(), "Nullgram"); - File imagePath = new File(telegramPath, "Nullgram Images"); + File telegramPath = new File(Environment.getExternalStorageDirectory(), "Nnngram"); + File imagePath = new File(telegramPath, "Nnngram Images"); imagePath.mkdir(); - File videoPath = new File(telegramPath, "Nullgram Video"); + File videoPath = new File(telegramPath, "Nnngram Video"); videoPath.mkdir(); if (!BuildVars.NO_SCOPED_STORAGE) { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java b/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java index ac067bf76d..403225af8b 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/UserConfig.java @@ -25,7 +25,7 @@ import java.util.HashSet; import java.util.List; -import top.qwq2333.nullgram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; public class UserConfig extends BaseController { diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraView.java b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraView.java index 2acc9cfd91..9c69118327 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraView.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/camera/CameraView.java @@ -81,8 +81,8 @@ import javax.microedition.khronos.egl.EGLSurface; import javax.microedition.khronos.opengles.GL; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; @SuppressLint("NewApi") public class CameraView extends FrameLayout implements TextureView.SurfaceTextureListener { diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java index c1e37a9778..5c50ee67b9 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java @@ -56,10 +56,10 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import top.qwq2333.nullgram.helpers.WebSocketHelper; -import top.qwq2333.nullgram.utils.DatabaseUtils; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.ProxyUtils; +import xyz.nextalone.nnngram.helpers.WebSocketHelper; +import xyz.nextalone.nnngram.utils.DatabaseUtils; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.ProxyUtils; @SuppressWarnings("JavaJniMissingFunction") public class ConnectionsManager extends BaseController { diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java index 2d39dc6a44..ce0bf242a9 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java @@ -26,7 +26,7 @@ import java.util.ArrayList; import java.util.HashMap; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.utils.Defines; @SuppressWarnings("unchecked") public class TLRPC { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java index 621986dd12..a16b195311 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBar.java @@ -63,8 +63,8 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class ActionBar extends FrameLayout { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java index e06162e3f4..66b2c7c33e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java @@ -62,9 +62,9 @@ import java.util.HashMap; import java.util.List; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.VibrationUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.VibrationUtils; public class ActionBarLayout extends FrameLayout implements INavigationLayout, FloatingDebugProvider { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java index 454262fde7..8cd0bd1b51 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/BaseFragment.java @@ -54,10 +54,10 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.MessageUtils; -import top.qwq2333.nullgram.utils.VibrationUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.MessageUtils; +import xyz.nextalone.nnngram.utils.VibrationUtils; public abstract class BaseFragment { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java index f2bee9f7bb..8985295783 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java @@ -136,7 +136,7 @@ import java.util.Set; import java.util.concurrent.CountDownLatch; -import top.qwq2333.nullgram.helpers.MonetHelper; +import xyz.nextalone.nnngram.helpers.MonetHelper; public class Theme { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DrawerLayoutAdapter.java b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DrawerLayoutAdapter.java index 49aae63091..dc28f758d3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DrawerLayoutAdapter.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Adapters/DrawerLayoutAdapter.java @@ -35,7 +35,7 @@ import java.util.ArrayList; import java.util.Collections; -import top.qwq2333.nullgram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; public class DrawerLayoutAdapter extends RecyclerListView.SelectionAdapter { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java index b361aa4c5f..a3d8ee7416 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java @@ -179,8 +179,8 @@ import java.util.List; import java.util.Locale; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class ArticleViewer implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java b/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java index d1e5ec60df..7247cf42ea 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/AvatarPreviewer.java @@ -43,8 +43,8 @@ import org.telegram.ui.Components.MediaActionDrawable; import org.telegram.ui.Components.RadialProgress2; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class AvatarPreviewer { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java index f43febb25a..b74d13252f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/BubbleActivity.java @@ -36,8 +36,8 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class BubbleActivity extends BasePermissionsActivity implements INavigationLayout.INavigationLayoutDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java index ae58d2862c..60797f1336 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CalendarActivity.java @@ -66,8 +66,8 @@ import java.util.ArrayList; import java.util.Calendar; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class CalendarActivity extends BaseFragment { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java index 28a9350dd9..914edc9300 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/CameraScanActivity.java @@ -91,7 +91,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.utils.PermissionUtils; @TargetApi(18) public class CameraScanActivity extends BaseFragment { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/BaseCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/BaseCell.java index a5b70f3ac8..f5ba57361a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/BaseCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/BaseCell.java @@ -15,8 +15,8 @@ import android.view.ViewConfiguration; import android.view.ViewGroup; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public abstract class BaseCell extends ViewGroup { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java index daee0d3b50..4b6573c281 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/ChatMessageCell.java @@ -174,10 +174,10 @@ import java.util.Stack; import java.util.concurrent.atomic.AtomicReference; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.StringUtils; -import top.qwq2333.nullgram.utils.Utils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.StringUtils; +import xyz.nextalone.nnngram.utils.Utils; public class ChatMessageCell extends BaseCell implements SeekBar.SeekBarDelegate, ImageReceiver.ImageReceiverDelegate, DownloadController.FileDownloadProgressListener, TextSelectionHelper.SelectableView, NotificationCenter.NotificationCenterDelegate { private final static int TIME_APPEAR_MS = 200; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java index fc886b8a0e..56ffa9adb4 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java @@ -111,8 +111,8 @@ import java.util.Objects; import java.util.Stack; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class DialogCell extends BaseCell { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java index e2da198e8c..a132358b94 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DrawerProfileCell.java @@ -74,9 +74,9 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; public class DrawerProfileCell extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java index cb47354967..5adbb105f5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/SharedLinkCell.java @@ -59,8 +59,8 @@ import java.util.Stack; import java.util.concurrent.atomic.AtomicReference; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class SharedLinkCell extends FrameLayout { private final static int SPOILER_TYPE_LINK = 0, diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java index 41db75840a..f26185b2ab 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/TextSelectionHelper.java @@ -62,7 +62,7 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.helpers.TranslateHelper; public abstract class TextSelectionHelper { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java index 3a0ee1a645..58ecb8a54b 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChannelAdminLogActivity.java @@ -134,8 +134,8 @@ import java.util.ArrayList; import java.util.HashMap; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class ChannelAdminLogActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java index df6995aa79..2d2c8bee64 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -315,16 +315,16 @@ import java.util.regex.Pattern; import kotlin.Unit; -import top.qwq2333.nullgram.activity.MessageDetailActivity; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.config.DialogConfig; -import top.qwq2333.nullgram.config.ForwardContext; -import top.qwq2333.nullgram.helpers.TranslateHelper; -import top.qwq2333.nullgram.translate.LanguageDetectorTimeout; -import top.qwq2333.nullgram.ui.TranslatorSettingsPopupWrapper; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.activity.MessageDetailActivity; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.config.DialogConfig; +import xyz.nextalone.nnngram.config.ForwardContext; +import xyz.nextalone.nnngram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.translate.LanguageDetectorTimeout; +import xyz.nextalone.nnngram.ui.TranslatorSettingsPopupWrapper; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.PermissionUtils; @SuppressWarnings("unchecked") public class ChatActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, DialogsActivity.DialogsActivityDelegate, LocationActivity.LocationActivityDelegate, ChatAttachAlertDocumentLayout.DocumentSelectActivityDelegate, ChatActivityInterface, FloatingDebugProvider, ForwardContext { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java index df237db015..01c7d57ff8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java @@ -81,7 +81,7 @@ import java.util.Locale; import java.util.concurrent.atomic.AtomicInteger; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.utils.Log; public class ChatUsersActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java index 1a0b671c6f..776a7199ee 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/AlertsCreator.java @@ -125,9 +125,9 @@ import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.PasscodeHelper; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.utils.Defines; public class AlertsCreator { public final static int PERMISSIONS_REQUEST_TOP_ICON_SIZE = 72; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlockingUpdateView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlockingUpdateView.java index 3f3673f12f..c53cdad55a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/BlockingUpdateView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/BlockingUpdateView.java @@ -40,7 +40,7 @@ import java.io.File; import java.util.Locale; -import top.qwq2333.nullgram.utils.APKUtils; +import xyz.nextalone.nnngram.utils.APKUtils; public class BlockingUpdateView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java index 0559c10c13..3c67b3519c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatActivityEnterView.java @@ -160,9 +160,9 @@ import java.util.List; import java.util.Locale; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.ui.syntaxhighlight.SyntaxHighlight; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.ui.syntaxhighlight.SyntaxHighlight; +import xyz.nextalone.nnngram.utils.Defines; public class ChatActivityEnterView extends BlurredFrameLayout implements NotificationCenter.NotificationCenterDelegate, SizeNotifierFrameLayout.SizeNotifierFrameLayoutDelegate, StickersAlert.StickersAlertDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java index 9b5bd6a9ca..cd26931044 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlert.java @@ -112,7 +112,7 @@ import java.util.Locale; import java.util.Objects; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.utils.PermissionUtils; public class ChatAttachAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate, BottomSheet.BottomSheetDelegateInterface { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java index cfbd4bd03d..a490cc9560 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertLocationLayout.java @@ -102,7 +102,7 @@ import java.util.List; import kotlin.Unit; -import top.qwq2333.nullgram.ui.BottomBuilder; +import xyz.nextalone.nnngram.ui.BottomBuilder; public class ChatAttachAlertLocationLayout extends ChatAttachAlert.AttachAlertLayout implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java index 3fb8c6551f..a4af823a21 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java @@ -100,10 +100,10 @@ import java.util.List; import java.util.Map; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.PermissionUtils; public class ChatAttachAlertPhotoLayout extends ChatAttachAlert.AttachAlertLayout implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextCaption.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextCaption.java index 2d78ae66f9..bb3beafb28 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextCaption.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EditTextCaption.java @@ -53,7 +53,7 @@ import java.util.List; -import top.qwq2333.nullgram.ui.syntaxhighlight.SyntaxHighlight; +import xyz.nextalone.nnngram.ui.syntaxhighlight.SyntaxHighlight; public class EditTextCaption extends EditTextBoldCursor { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java index 33e6b21d52..b0e5a96d53 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java @@ -143,8 +143,8 @@ import java.util.Map; import java.util.Objects; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; @SuppressLint("SoonBlockedPrivateApi") public class EmojiView extends FrameLayout implements diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterTabsView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterTabsView.java index 887ee88df3..5c220624e5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterTabsView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/FilterTabsView.java @@ -60,9 +60,9 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.FolderIconHelper; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.FolderIconHelper; +import xyz.nextalone.nnngram.utils.Defines; public class FilterTabsView extends FrameLayout { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java index e85f0c5b58..ec104662de 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java @@ -62,7 +62,7 @@ import java.util.ArrayList; import java.util.HashMap; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.utils.PermissionUtils; public class ImageUpdater implements NotificationCenter.NotificationCenterDelegate, PhotoCropActivity.PhotoEditActivityDelegate { private final static int ID_TAKE_PHOTO = 0, diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java index 2aefa6e934..716c92c043 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/PasscodeView.java @@ -73,7 +73,7 @@ import java.util.List; import java.util.Locale; -import top.qwq2333.nullgram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; public class PasscodeView extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { private final static float BACKGROUND_SPRING_STIFFNESS = 300f; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchViewPager.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchViewPager.java index 2e6d93be1f..16cde4d6de 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchViewPager.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SearchViewPager.java @@ -62,8 +62,8 @@ import java.util.HashMap; import java.util.Set; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class SearchViewPager extends ViewPagerFixed implements FilteredSearchView.UiCallback { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SenderSelectPopup.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SenderSelectPopup.java index 225a927175..c65cd8ecf5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SenderSelectPopup.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SenderSelectPopup.java @@ -52,8 +52,8 @@ import java.util.Arrays; import java.util.List; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class SenderSelectPopup extends ActionBarPopupWindow { public final static float SPRING_STIFFNESS = 750f; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java index 0e61b69ff0..8571da8adc 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ShareAlert.java @@ -112,8 +112,8 @@ import java.util.Map; import java.util.concurrent.atomic.AtomicReference; -import top.qwq2333.nullgram.config.ForwardContext; -import top.qwq2333.nullgram.ui.SendOptionsMenuLayout; +import xyz.nextalone.nnngram.config.ForwardContext; +import xyz.nextalone.nnngram.ui.SendOptionsMenuLayout; public class ShareAlert extends BottomSheet implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java index 09e1ff6ce6..3b055f48a0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/SharedMediaLayout.java @@ -116,8 +116,8 @@ import java.util.HashMap; import java.util.HashSet; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; @SuppressWarnings("unchecked") public class SharedMediaLayout extends FrameLayout implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert.java index 98755fa3de..5edbb145e0 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/TranslateAlert.java @@ -70,9 +70,9 @@ import java.util.Locale; import kotlin.Unit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.TranslateHelper; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.utils.Defines; public class TranslateAlert extends Dialog { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java index 450540c1d4..26a3990f62 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UndoView.java @@ -59,8 +59,8 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; @SuppressWarnings("FieldCanBeLocal") public class UndoView extends FrameLayout { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/UpdateAppAlertDialog.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/UpdateAppAlertDialog.java index 10874d1d35..db1b1248fb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/UpdateAppAlertDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/UpdateAppAlertDialog.java @@ -252,7 +252,7 @@ protected void onScrollChanged(int l, int t, int oldl, int oldt) { textView.setTextColor(Theme.getColor(Theme.key_dialogTextBlack)); textView.setSingleLine(true); textView.setEllipsize(TextUtils.TruncateAt.END); - textView.setText(LocaleController.getString("AppUpdateNullgram", R.string.AppUpdateNullgram)); + textView.setText(LocaleController.getString("AppUpdateNnngram", R.string.AppUpdateNnngram)); linearLayout.addView(textView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 23, 16, 23, 0)); TextView messageTextView = new TextView(getContext()); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/WallpaperUpdater.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/WallpaperUpdater.java index 74c17549fa..604bf79d8d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/WallpaperUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/WallpaperUpdater.java @@ -35,7 +35,7 @@ import java.io.FileOutputStream; import java.util.ArrayList; -import top.qwq2333.nullgram.utils.PermissionUtils; +import xyz.nextalone.nnngram.utils.PermissionUtils; public class WallpaperUpdater { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java b/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java index b3c7c3e917..00808b03c5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/spoilers/SpoilersTextView.java @@ -19,8 +19,8 @@ import java.util.List; import java.util.Stack; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class SpoilersTextView extends TextView { private final SpoilersClickDetector clickDetector; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java index b376698089..a6daf71251 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java @@ -204,14 +204,14 @@ import java.util.concurrent.ConcurrentHashMap; import kotlin.Unit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.config.ForwardContext; -import top.qwq2333.nullgram.helpers.PasscodeHelper; -import top.qwq2333.nullgram.ui.AppLinkVerifyBottomSheet; -import top.qwq2333.nullgram.ui.BottomBuilder; -import top.qwq2333.nullgram.ui.SendOptionsMenuLayout; -import top.qwq2333.nullgram.utils.APKUtils; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.config.ForwardContext; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.ui.AppLinkVerifyBottomSheet; +import xyz.nextalone.nnngram.ui.BottomBuilder; +import xyz.nextalone.nnngram.ui.SendOptionsMenuLayout; +import xyz.nextalone.nnngram.utils.APKUtils; +import xyz.nextalone.nnngram.utils.Defines; public class DialogsActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, FloatingDebugProvider { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java index fb420b4d4a..34904b238d 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DocumentSelectActivity.java @@ -94,7 +94,7 @@ import java.util.HashSet; import java.util.StringTokenizer; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.utils.Log; public class DocumentSelectActivity extends BaseFragment { @@ -1459,7 +1459,7 @@ private void listRoots() { try { File newPath = ApplicationLoader.applicationContext.getExternalFilesDir(null); - File telegramPath = new File(newPath, "Nullgram"); + File telegramPath = new File(newPath, "Nnngram"); if (telegramPath.exists()) { fs = new ListItem(); fs.title = "Telegram"; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java index d7fd03fccc..d7ebd422b5 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ExternalActionActivity.java @@ -48,8 +48,8 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; public class ExternalActionActivity extends Activity implements INavigationLayout.INavigationLayoutDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java index 4fbea83515..9179d628c7 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FilterCreateActivity.java @@ -52,8 +52,8 @@ import java.util.ArrayList; import java.util.Collections; -import top.qwq2333.nullgram.helpers.FolderIconHelper; -import top.qwq2333.nullgram.ui.IconSelector; +import xyz.nextalone.nnngram.helpers.FolderIconHelper; +import xyz.nextalone.nnngram.ui.IconSelector; public class FilterCreateActivity extends BaseFragment { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java index 452f235544..1e68cf7184 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/FiltersSetupActivity.java @@ -58,7 +58,7 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.helpers.FolderIconHelper; +import xyz.nextalone.nnngram.helpers.FolderIconHelper; public class FiltersSetupActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 51e930913c..7b23bb9caf 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -195,14 +195,14 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.MonetHelper; -import top.qwq2333.nullgram.helpers.SettingsHelper; -import top.qwq2333.nullgram.helpers.UpdateHelper; -import top.qwq2333.nullgram.utils.APKUtils; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.Utils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.MonetHelper; +import xyz.nextalone.nnngram.helpers.SettingsHelper; +import xyz.nextalone.nnngram.helpers.UpdateHelper; +import xyz.nextalone.nnngram.utils.APKUtils; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.Utils; public class LaunchActivity extends BasePermissionsActivity implements INavigationLayout.INavigationLayoutDelegate, NotificationCenter.NotificationCenterDelegate, DialogsActivity.DialogsActivityDelegate { public final static Pattern PREFIX_T_ME_PATTERN = Pattern.compile("^(?:http(?:s|)://|)([A-z0-9-]+?)\\.t\\.me"); @@ -2089,7 +2089,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool } } else if (path.startsWith("addstickers/")) { sticker = path.replace("addstickers/", ""); - } else if (path.startsWith("nullsettings/")) { + } else if (path.startsWith("NnnSettings/")) { SettingsHelper.processDeepLink(data, fragment -> { AndroidUtilities.runOnUIThread(() -> presentFragment(fragment, false, false)); if (AndroidUtilities.isTablet()) { @@ -2499,7 +2499,7 @@ private boolean handleIntent(Intent intent, boolean isNew, boolean restore, bool } else if ((url.startsWith("tg:calllog") || url.startsWith("tg://calllog"))) { showCallLog = true; } else if (url.startsWith("tg:null") || url.startsWith("tg://null")) { - url = url.replace("tg:null", "tg://t.me/nullsettings").replace("tg://null", "tg://t.me/nullsettings"); + url = url.replace("tg:null", "tg://t.me/NnnSettings").replace("tg://null", "tg://t.me/NnnSettings"); data = Uri.parse(url); SettingsHelper.processDeepLink(data, fragment -> { AndroidUtilities.runOnUIThread(() -> presentFragment(fragment, false, false)); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java index 1ff1cdb9c9..d7efd86fbe 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java @@ -176,15 +176,15 @@ import java.util.concurrent.atomic.AtomicReference; import kotlin.Unit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.PasscodeHelper; -import top.qwq2333.nullgram.ui.BottomBuilder; -import top.qwq2333.nullgram.ui.EditTextAutoFill; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.NumberUtils; -import top.qwq2333.nullgram.utils.StringUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.ui.BottomBuilder; +import xyz.nextalone.nnngram.ui.EditTextAutoFill; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.NumberUtils; +import xyz.nextalone.nnngram.utils.StringUtils; @SuppressLint("HardwareIds") public class LoginActivity extends BaseFragment { @@ -1130,10 +1130,10 @@ public static void needShowInvalidAlert(BaseFragment fragment, String phoneNumbe mailer.putExtra(Intent.EXTRA_EMAIL, new String[]{banned ? "recover@telegram.org" : "login@stel.com"}); if (banned) { mailer.putExtra(Intent.EXTRA_SUBJECT, "Banned phone number: " + phoneNumber); - mailer.putExtra(Intent.EXTRA_TEXT, "I'm trying to use my mobile phone number: " + phoneNumber + "\nBut Nullgram says it's banned. Please help.\n\nApp version: " + version + "\nOS version: SDK " + Build.VERSION.SDK_INT + "\nDevice Name: " + Build.MANUFACTURER + Build.MODEL + "\nLocale: " + Locale.getDefault()); + mailer.putExtra(Intent.EXTRA_TEXT, "I'm trying to use my mobile phone number: " + phoneNumber + "\nBut Nnngram says it's banned. Please help.\n\nApp version: " + version + "\nOS version: SDK " + Build.VERSION.SDK_INT + "\nDevice Name: " + Build.MANUFACTURER + Build.MODEL + "\nLocale: " + Locale.getDefault()); } else { mailer.putExtra(Intent.EXTRA_SUBJECT, "Invalid phone number: " + phoneNumber); - mailer.putExtra(Intent.EXTRA_TEXT, "I'm trying to use my mobile phone number: " + phoneNumber + "\nBut Nullgram says it's invalid. Please help.\n\nApp version: " + version + "\nOS version: SDK " + Build.VERSION.SDK_INT + "\nDevice Name: " + Build.MANUFACTURER + Build.MODEL + "\nLocale: " + Locale.getDefault()); + mailer.putExtra(Intent.EXTRA_TEXT, "I'm trying to use my mobile phone number: " + phoneNumber + "\nBut Nnngram says it's invalid. Please help.\n\nApp version: " + version + "\nOS version: SDK " + Build.VERSION.SDK_INT + "\nDevice Name: " + Build.MANUFACTURER + Build.MODEL + "\nLocale: " + Locale.getDefault()); } fragment.getParentActivity().startActivity(Intent.createChooser(mailer, "Send email...")); } catch (Exception e) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java index 0733f20847..777feeda1f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PasscodeActivity.java @@ -93,7 +93,7 @@ import java.util.ArrayList; import java.util.concurrent.atomic.AtomicBoolean; -import top.qwq2333.nullgram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; public class PasscodeActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { public final static int TYPE_MANAGE_CODE_SETTINGS = 0, diff --git a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java index 73b7a8b67f..ab4e83b168 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -259,11 +259,11 @@ import java.util.Objects; import kotlin.Unit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.TranslateHelper; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.MessageUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.MessageUtils; @SuppressLint("WrongConstant") @SuppressWarnings("unchecked") diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java index 89918dfb1d..2dac4d5d44 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -231,19 +231,19 @@ import java.util.zip.ZipOutputStream; import kotlin.Unit; -import top.qwq2333.nullgram.activity.DatacenterActivity; -import top.qwq2333.nullgram.activity.MainSettingActivity; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.TranslateHelper; -import top.qwq2333.nullgram.translate.LanguageDetectorTimeout; -import top.qwq2333.nullgram.ui.AutoTranslatePopupWrapper; -import top.qwq2333.nullgram.ui.BottomBuilder; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.NumberUtils; -import top.qwq2333.nullgram.utils.StringUtils; -import top.qwq2333.nullgram.utils.Utils; +import xyz.nextalone.nnngram.activity.DatacenterActivity; +import xyz.nextalone.nnngram.activity.MainSettingActivity; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.translate.LanguageDetectorTimeout; +import xyz.nextalone.nnngram.ui.AutoTranslatePopupWrapper; +import xyz.nextalone.nnngram.ui.BottomBuilder; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.NumberUtils; +import xyz.nextalone.nnngram.utils.StringUtils; +import xyz.nextalone.nnngram.utils.Utils; public class ProfileActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, DialogsActivity.DialogsActivityDelegate, SharedMediaLayout.SharedMediaPreloaderDelegate, ImageUpdater.ImageUpdaterDelegate, SharedMediaLayout.Delegate { private final static int PHONE_OPTION_CALL = 0, @@ -9124,7 +9124,7 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { PackageInfo pInfo = ApplicationLoader.applicationContext.getPackageManager().getPackageInfo(ApplicationLoader.applicationContext.getPackageName(), 0); int code = pInfo.versionCode; String abi = BuildConfig.FLAVOR; - cell.setText(LocaleController.formatString("NullgramVersion", R.string.NullgramVersion, String.format(Locale.US, "%s (%d) %s", pInfo.versionName, code, abi), String.format(Locale.US, "%s (%d)", BuildVars.BUILD_VERSION_STRING, BuildVars.BUILD_VERSION))); + cell.setText(LocaleController.formatString("NnngramVersion", R.string.NnngramVersion, String.format(Locale.US, "%s (%d) %s", pInfo.versionName, code, abi), String.format(Locale.US, "%s (%d)", BuildVars.BUILD_VERSION_STRING, BuildVars.BUILD_VERSION))); } catch (Exception e) { FileLog.e(e); } @@ -9473,7 +9473,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { textCell.setText(LocaleController.getString("ReportUserLocation", R.string.ReportUserLocation), false); textCell.setColors(null, Theme.key_windowBackgroundWhiteRedText5); } else if (position == nullRow) { - textCell.setTextAndIcon(LocaleController.getString("NullSettings", R.string.NullSettings), R.drawable.msg_settings, false); + textCell.setTextAndIcon(LocaleController.getString("NnnSettings", R.string.NnnSettings), R.drawable.msg_settings, false); } else if (position == languageRow) { textCell.setTextAndIcon(LocaleController.getString("Language", R.string.Language), R.drawable.msg_language, false); textCell.setImageLeft(23); diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java index 9a19159cb4..6d590379b6 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProxyListActivity.java @@ -69,12 +69,12 @@ import java.util.Collections; import java.util.List; -import top.qwq2333.nullgram.activity.WsSettingsActivity; -import top.qwq2333.nullgram.helpers.WebSocketHelper; -import top.qwq2333.nullgram.utils.APKUtils; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.UIUtil; +import xyz.nextalone.nnngram.activity.WsSettingsActivity; +import xyz.nextalone.nnngram.helpers.WebSocketHelper; +import xyz.nextalone.nnngram.utils.APKUtils; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.UIUtil; public class ProxyListActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { private final static boolean IS_PROXY_ROTATION_AVAILABLE = true; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/NullgramPushService.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/NnngramPushService.kt similarity index 92% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/NullgramPushService.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/NnngramPushService.kt index 3115745b2b..acab59f169 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/NullgramPushService.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/NnngramPushService.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram +package xyz.nextalone.nnngram import android.annotation.SuppressLint import android.service.notification.NotificationListenerService @@ -25,7 +25,7 @@ import org.telegram.messenger.ApplicationLoader import org.telegram.messenger.KeepAliveJob @SuppressLint("OverrideAbstract") -class NullgramPushService : NotificationListenerService() { +class NnngramPushService : NotificationListenerService() { override fun onCreate() { super.onCreate() diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/BaseActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/BaseActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/BaseActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/BaseActivity.java index 0044e7222c..a9905305d2 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/BaseActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/BaseActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.annotation.SuppressLint; import android.content.Context; @@ -147,7 +147,7 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) { .setItems( new CharSequence[]{LocaleController.getString("CopyLink", R.string.CopyLink)}, (dialogInterface, i) -> { - AndroidUtilities.addToClipboard(String.format(Locale.getDefault(), "https://%s/nullgram/%s?r=%s", getMessagesController().linkPrefix, getKey(), rowMapReverse.get(position))); + AndroidUtilities.addToClipboard(String.format(Locale.getDefault(), "https://%s/nnngram/%s?r=%s", getMessagesController().linkPrefix, getKey(), rowMapReverse.get(position))); BulletinFactory.of(BaseActivity.this).createCopyLinkBulletin().show(); }) .create()); diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/ChatSettingActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/ChatSettingActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/ChatSettingActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/ChatSettingActivity.java index 77d9239d18..b7ff6ef97d 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/ChatSettingActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/ChatSettingActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.animation.ValueAnimator; import android.annotation.SuppressLint; @@ -46,13 +46,13 @@ import org.telegram.ui.LaunchActivity; import kotlin.Unit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.ui.BottomBuilder; -import top.qwq2333.nullgram.ui.StickerSizePreviewMessagesCell; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.NumberUtils; -import top.qwq2333.nullgram.utils.StringUtils; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.ui.BottomBuilder; +import xyz.nextalone.nnngram.ui.StickerSizePreviewMessagesCell; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.NumberUtils; +import xyz.nextalone.nnngram.utils.StringUtils; @SuppressLint("NotifyDataSetChanged") public class ChatSettingActivity extends BaseActivity { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/DatacenterActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/DatacenterActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/DatacenterActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/DatacenterActivity.java index 7a26b97cb3..7ba187765c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/DatacenterActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/DatacenterActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.content.Context; import android.graphics.Canvas; @@ -40,7 +40,7 @@ import java.util.Locale; -import top.qwq2333.nullgram.utils.MessageUtils; +import xyz.nextalone.nnngram.utils.MessageUtils; public class DatacenterActivity extends BaseActivity implements NotificationCenter.NotificationCenterDelegate { private final int dcToHighlight; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/ExperimentSettingActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/ExperimentSettingActivity.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/ExperimentSettingActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/ExperimentSettingActivity.java index 1796588069..db1bd57202 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/ExperimentSettingActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/ExperimentSettingActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.annotation.SuppressLint; import android.content.Context; @@ -20,10 +20,10 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.ui.PopupBuilder; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.ui.PopupBuilder; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; @SuppressLint("NotifyDataSetChanged") public class ExperimentSettingActivity extends BaseActivity { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/GeneralSettingActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/GeneralSettingActivity.java index e00daf106c..dcd1192844 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/GeneralSettingActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/GeneralSettingActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.annotation.SuppressLint; import android.content.Context; @@ -32,11 +32,11 @@ import java.util.Locale; import kotlin.Unit; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.TranslateHelper; -import top.qwq2333.nullgram.ui.DrawerProfilePreviewCell; -import top.qwq2333.nullgram.ui.PopupBuilder; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.ui.DrawerProfilePreviewCell; +import xyz.nextalone.nnngram.ui.PopupBuilder; +import xyz.nextalone.nnngram.utils.Defines; @SuppressLint("NotifyDataSetChanged") public class GeneralSettingActivity extends BaseActivity { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/LanguageSelectActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/LanguageSelectActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/LanguageSelectActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/LanguageSelectActivity.java index 43e9fa706b..3d13131bd0 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/LanguageSelectActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/LanguageSelectActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.annotation.SuppressLint; import android.content.Context; @@ -30,7 +30,7 @@ import java.util.List; import java.util.Locale; -import top.qwq2333.nullgram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.helpers.TranslateHelper; public class LanguageSelectActivity extends BaseActivity { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/LicenseActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/LicenseActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/LicenseActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/LicenseActivity.java index 63fe37e7e4..469cd2855b 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/LicenseActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/LicenseActivity.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.annotation.SuppressLint; import android.content.Context; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/MainSettingActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/MainSettingActivity.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/MainSettingActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/MainSettingActivity.java index 6ea031d4f2..da0af77a54 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/MainSettingActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/MainSettingActivity.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.Manifest; import android.annotation.SuppressLint; @@ -56,14 +56,14 @@ import java.io.File; import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.helpers.PasscodeHelper; -import top.qwq2333.nullgram.utils.AlertUtil; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.FileUtils; -import top.qwq2333.nullgram.utils.JsonUtils; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.ShareUtil; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.utils.AlertUtil; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.FileUtils; +import xyz.nextalone.nnngram.utils.JsonUtils; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.ShareUtil; @SuppressLint("NotifyDataSetChanged") public class MainSettingActivity extends BaseActivity { @@ -98,7 +98,7 @@ protected BaseListAdapter createAdapter(Context context) { @Override protected String getActionBarTitle() { - return LocaleController.getString("NullSettings", R.string.NullSettings); + return LocaleController.getString("NnnSettings", R.string.NnnSettings); } @Override @@ -113,9 +113,9 @@ protected void onItemClick(View view, int position, float x, float y) { } else if (position == channelRow) { MessagesController.getInstance(currentAccount).openByUserName(LocaleController.getString("OfficialChannelName", R.string.OfficialChannelName), this, 1); } else if (position == websiteRow) { - Browser.openUrl(getParentActivity(), "https://qwq2333.top"); + Browser.openUrl(getParentActivity(), "https://nextalone.xyz"); } else if (position == sourceCodeRow) { - Browser.openUrl(getParentActivity(), "https://github.com/qwq233/Nullgram"); + Browser.openUrl(getParentActivity(), "https://github.com/nextalone/nnngram"); } else if (position == licenseRow) { presentFragment(new LicenseActivity()); } else if (position == updateRow) { @@ -280,7 +280,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { if (position == channelRow) { textCell.setTextAndValue(LocaleController.getString("OfficialChannel", R.string.OfficialChannel), "@" + LocaleController.getString("OfficialChannelName", R.string.OfficialChannelName), true); } else if (position == websiteRow) { - textCell.setTextAndValue(LocaleController.getString("OfficialSite", R.string.OfficialSite), "qwq2333.top", true); + textCell.setTextAndValue(LocaleController.getString("OfficialSite", R.string.OfficialSite), "nextalone.xyz", true); } else if (position == sourceCodeRow) { textCell.setTextAndValue(LocaleController.getString("ViewSourceCode", R.string.ViewSourceCode), "GitHub", true); } else if (position == licenseRow) { @@ -327,7 +327,7 @@ public int getItemViewType(int position) { private void backupSettings() { try { - File cacheFile = new File(ApplicationLoader.applicationContext.getCacheDir(), DateFormat.format("yyyyMMdd", System.currentTimeMillis()) + "-nullgram-settings.json"); + File cacheFile = new File(ApplicationLoader.applicationContext.getCacheDir(), DateFormat.format("yyyyMMdd", System.currentTimeMillis()) + "-nnngram-settings.json"); FileUtils.writeUtf8String(ConfigManager.exportConfigurationToJson(), cacheFile); ShareUtil.shareFile(getParentActivity(), cacheFile); } catch (JSONException e) { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/MessageDetailActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/MessageDetailActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/MessageDetailActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/MessageDetailActivity.java index b3e6ddbd0a..76da57311d 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/MessageDetailActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/MessageDetailActivity.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.annotation.SuppressLint; import android.content.Context; @@ -56,7 +56,7 @@ import java.util.Date; import java.util.Locale; -import top.qwq2333.nullgram.utils.MessageUtils; +import xyz.nextalone.nnngram.utils.MessageUtils; @SuppressLint({"RtlHardcoded", "NotifyDataSetChanged"}) public class MessageDetailActivity extends BaseActivity implements NotificationCenter.NotificationCenterDelegate { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/PasscodeSettingActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/PasscodeSettingActivity.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/PasscodeSettingActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/PasscodeSettingActivity.java index c0e6da92ec..e79d0b1524 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/PasscodeSettingActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/PasscodeSettingActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.app.Dialog; import android.content.Context; @@ -45,7 +45,7 @@ import java.util.ArrayList; import java.util.Locale; -import top.qwq2333.nullgram.helpers.PasscodeHelper; +import xyz.nextalone.nnngram.helpers.PasscodeHelper; public class PasscodeSettingActivity extends BaseActivity { private boolean passcodeSet; @@ -289,7 +289,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { cell.setBackground(Theme.getThemedDrawable(mContext, R.drawable.greydivider_bottom, Theme.key_windowBackgroundGrayShadow)); } } else if (position == showInSettings2Row) { - var link = String.format(Locale.ENGLISH, "https://t.me/nullsettings/%s", PasscodeHelper.getSettingsKey()); + var link = String.format(Locale.ENGLISH, "https://t.me/NnnSettings/%s", PasscodeHelper.getSettingsKey()); var stringBuilder = new SpannableStringBuilder(AndroidUtilities.replaceTags(LocaleController.getString("PasscodeShowInSettingsAbout", R.string.PasscodeShowInSettingsAbout))); stringBuilder.append("\n").append(link); stringBuilder.setSpan(new URLSpanNoUnderline(null) { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/WsSettingsActivity.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/WsSettingsActivity.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/WsSettingsActivity.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/WsSettingsActivity.java index f0aea172b4..d6f4c1331a 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/activity/WsSettingsActivity.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/activity/WsSettingsActivity.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.activity; +package xyz.nextalone.nnngram.activity; import android.content.Context; import android.view.View; @@ -18,8 +18,8 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.helpers.WebSocketHelper; -import top.qwq2333.nullgram.ui.PopupBuilder; +import xyz.nextalone.nnngram.helpers.WebSocketHelper; +import xyz.nextalone.nnngram.ui.PopupBuilder; public class WsSettingsActivity extends BaseActivity { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/config/ConfigManager.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/ConfigManager.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/config/ConfigManager.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/ConfigManager.java index 482840f7f0..ac3d69ed98 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/config/ConfigManager.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/ConfigManager.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.config; +package xyz.nextalone.nnngram.config; import android.annotation.SuppressLint; import android.app.Activity; @@ -40,7 +40,7 @@ import java.util.function.Function; import kotlin.text.StringsKt; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.utils.Log; public class ConfigManager { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/config/DialogConfig.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/DialogConfig.java similarity index 92% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/config/DialogConfig.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/DialogConfig.java index e0305ac61c..30dfbb36ff 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/config/DialogConfig.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/DialogConfig.java @@ -1,11 +1,11 @@ -package top.qwq2333.nullgram.config; +package xyz.nextalone.nnngram.config; import android.content.Context; import android.content.SharedPreferences; import org.telegram.messenger.ApplicationLoader; -import top.qwq2333.nullgram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.helpers.TranslateHelper; public class DialogConfig { private static final SharedPreferences preferences = ApplicationLoader.applicationContext.getSharedPreferences("dialogconfig", Context.MODE_PRIVATE); diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/config/ForwardContext.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/ForwardContext.java similarity index 96% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/config/ForwardContext.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/ForwardContext.java index ea92e191e8..6c6973d555 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/config/ForwardContext.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/config/ForwardContext.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.config; +package xyz.nextalone.nnngram.config; import org.telegram.messenger.MessageObject; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/FolderIconHelper.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/FolderIconHelper.kt similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/FolderIconHelper.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/FolderIconHelper.kt index cb72044885..b8d76f7c46 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/FolderIconHelper.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/FolderIconHelper.kt @@ -1,12 +1,12 @@ -package top.qwq2333.nullgram.helpers +package xyz.nextalone.nnngram.helpers import androidx.core.util.Pair import org.telegram.messenger.AndroidUtilities import org.telegram.messenger.LocaleController import org.telegram.messenger.MessagesController import org.telegram.messenger.R -import top.qwq2333.nullgram.config.ConfigManager -import top.qwq2333.nullgram.utils.Defines +import xyz.nextalone.nnngram.config.ConfigManager +import xyz.nextalone.nnngram.utils.Defines object FolderIconHelper { val folderIcons = linkedMapOf() diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/MonetHelper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/MonetHelper.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/MonetHelper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/MonetHelper.java index c4217ee34e..b505bd39bf 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/MonetHelper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/MonetHelper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.helpers; +package xyz.nextalone.nnngram.helpers; import android.content.BroadcastReceiver; import android.content.Context; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/PasscodeHelper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/PasscodeHelper.java similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/PasscodeHelper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/PasscodeHelper.java index 17a5f3d032..a7f7f4d3e1 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/PasscodeHelper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/PasscodeHelper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.helpers; +package xyz.nextalone.nnngram.helpers; import android.app.Activity; import android.content.SharedPreferences; @@ -12,8 +12,8 @@ import java.util.Objects; -import top.qwq2333.nullgram.utils.Log; -import top.qwq2333.nullgram.utils.Utils; +import xyz.nextalone.nnngram.utils.Log; +import xyz.nextalone.nnngram.utils.Utils; public class PasscodeHelper { private static final SharedPreferences preferences = diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/SettingsHelper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/SettingsHelper.java similarity index 78% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/SettingsHelper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/SettingsHelper.java index 59234b539e..5e95115e66 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/SettingsHelper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/SettingsHelper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.helpers; +package xyz.nextalone.nnngram.helpers; import android.net.Uri; import android.text.TextUtils; @@ -6,12 +6,12 @@ import org.telegram.messenger.AndroidUtilities; import org.telegram.ui.ActionBar.BaseFragment; -import top.qwq2333.nullgram.activity.BaseActivity; -import top.qwq2333.nullgram.activity.ChatSettingActivity; -import top.qwq2333.nullgram.activity.ExperimentSettingActivity; -import top.qwq2333.nullgram.activity.GeneralSettingActivity; -import top.qwq2333.nullgram.activity.MainSettingActivity; -import top.qwq2333.nullgram.activity.PasscodeSettingActivity; +import xyz.nextalone.nnngram.activity.BaseActivity; +import xyz.nextalone.nnngram.activity.ChatSettingActivity; +import xyz.nextalone.nnngram.activity.ExperimentSettingActivity; +import xyz.nextalone.nnngram.activity.GeneralSettingActivity; +import xyz.nextalone.nnngram.activity.MainSettingActivity; +import xyz.nextalone.nnngram.activity.PasscodeSettingActivity; public class SettingsHelper { @@ -21,7 +21,7 @@ public static void processDeepLink(Uri uri, Callback callback, Runnable unknown) return; } var segments = uri.getPathSegments(); - if (segments.isEmpty() || segments.size() > 2 || !"nullsettings".equals(segments.get(0))) { + if (segments.isEmpty() || segments.size() > 2 || !"NnnSettings".equals(segments.get(0))) { unknown.run(); return; } diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/TranslateHelper.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/TranslateHelper.kt similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/TranslateHelper.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/TranslateHelper.kt index 0bcaa2cecf..12654d7370 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/TranslateHelper.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/TranslateHelper.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.helpers +package xyz.nextalone.nnngram.helpers import android.annotation.SuppressLint import android.content.ActivityNotFoundException @@ -21,14 +21,14 @@ import org.telegram.ui.ActionBar.AlertDialog import org.telegram.ui.ActionBar.BaseFragment import org.telegram.ui.ActionBar.Theme.ResourcesProvider import org.telegram.ui.Components.TranslateAlert -import top.qwq2333.nullgram.activity.LanguageSelectActivity -import top.qwq2333.nullgram.config.ConfigManager -import top.qwq2333.nullgram.translate.BaseTranslator -import top.qwq2333.nullgram.translate.providers.GoogleTranslator -import top.qwq2333.nullgram.translate.providers.LingoTranslator -import top.qwq2333.nullgram.translate.providers.MicrosoftTranslator -import top.qwq2333.nullgram.ui.PopupBuilder -import top.qwq2333.nullgram.utils.Defines +import xyz.nextalone.nnngram.activity.LanguageSelectActivity +import xyz.nextalone.nnngram.config.ConfigManager +import xyz.nextalone.nnngram.translate.BaseTranslator +import xyz.nextalone.nnngram.translate.providers.GoogleTranslator +import xyz.nextalone.nnngram.translate.providers.LingoTranslator +import xyz.nextalone.nnngram.translate.providers.MicrosoftTranslator +import xyz.nextalone.nnngram.ui.PopupBuilder +import xyz.nextalone.nnngram.utils.Defines import java.util.Locale object TranslateHelper { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/UpdateHelper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/UpdateHelper.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/UpdateHelper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/UpdateHelper.java index e69d9632eb..2bde49475e 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/UpdateHelper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/UpdateHelper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.helpers; +package xyz.nextalone.nnngram.helpers; import org.telegram.messenger.AccountInstance; import org.telegram.messenger.BuildConfig; @@ -9,21 +9,21 @@ import java.util.Collections; import java.util.List; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; public class UpdateHelper { static final int MAX_READ_COUNT = 50; - static final long STABLE_METADATA_CHANNEL_ID = 1514826137; - static final String STABLE_METADATA_CHANNEL_NAME = "NullgramMetaData"; - static final long PREVIEW_METADATA_CHANNEL_ID = 1524514483; + static final long STABLE_METADATA_CHANNEL_ID = -999; + static final String STABLE_METADATA_CHANNEL_NAME = "NnngramMetaData"; + static final long PREVIEW_METADATA_CHANNEL_ID = -999; static final String PREVIEW_METADATA_CHANNEL_NAME = "PreviewMetaData"; - static final long STABLE_UPDATE_CHANNEL_APKS_ID = 1645976613; - static final String STABLE_UPDATE_CHANNEL_APKS_NAME = "NullgramAPKs"; - static final long PREVIEW_UPDATE_CHANNEL_APKS_ID = 1714986438; - static final String PREVIEW_UPDATE_CHANNEL_APKS_NAME = "NullgramCI"; + static final long STABLE_UPDATE_CHANNEL_APKS_ID = -999; + static final String STABLE_UPDATE_CHANNEL_APKS_NAME = "NnngramAPKs"; + static final long PREVIEW_UPDATE_CHANNEL_APKS_ID = -999; + static final String PREVIEW_UPDATE_CHANNEL_APKS_NAME = "NnngramCI"; static void retrieveUpdateMetadata(retrieveUpdateMetadataCallback callback) { long CHANNEL_METADATA_ID; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/WebSocketHelper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/WebSocketHelper.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/WebSocketHelper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/WebSocketHelper.java index 33c89cfbcd..23988fd23f 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/helpers/WebSocketHelper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/helpers/WebSocketHelper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.helpers; +package xyz.nextalone.nnngram.helpers; import org.tcp2ws.tcp2wsServer; import org.telegram.messenger.BuildConfig; @@ -10,10 +10,10 @@ import java.util.HashMap; import java.util.concurrent.atomic.AtomicReference; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.AppcenterUtils; -import top.qwq2333.nullgram.utils.Defines; -import top.qwq2333.nullgram.utils.Log; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.AppcenterUtils; +import xyz.nextalone.nnngram.utils.Defines; +import xyz.nextalone.nnngram.utils.Log; public class WebSocketHelper { public static final String NekogramPublicProxyServer = "ws.neko"; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/BaseTranslator.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/BaseTranslator.kt similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/BaseTranslator.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/BaseTranslator.kt index c9b19efd90..32009fab92 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/BaseTranslator.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/BaseTranslator.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.translate +package xyz.nextalone.nnngram.translate import android.text.TextUtils import android.util.Pair @@ -12,7 +12,7 @@ import io.ktor.utils.io.charsets.Charsets import org.telegram.messenger.LocaleController import org.telegram.messenger.R import org.telegram.tgnet.TLRPC -import top.qwq2333.nullgram.helpers.TranslateHelper +import xyz.nextalone.nnngram.helpers.TranslateHelper abstract class BaseTranslator { /** diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/LanguageDetectorTimeout.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/LanguageDetectorTimeout.java similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/LanguageDetectorTimeout.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/LanguageDetectorTimeout.java index ba004aa7de..8dcb39d87e 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/LanguageDetectorTimeout.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/LanguageDetectorTimeout.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.translate; +package xyz.nextalone.nnngram.translate; import android.view.View; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/GoogleTranslator.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/GoogleTranslator.kt similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/GoogleTranslator.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/GoogleTranslator.kt index d8bf84bdf5..cde5637379 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/GoogleTranslator.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/GoogleTranslator.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.translate.providers +package xyz.nextalone.nnngram.translate.providers import android.text.TextUtils import io.ktor.client.request.get @@ -7,9 +7,9 @@ import io.ktor.client.statement.bodyAsText import io.ktor.http.HttpHeaders import io.ktor.http.HttpStatusCode import org.json.JSONObject -import top.qwq2333.nullgram.translate.BaseTranslator -import top.qwq2333.nullgram.utils.Log -import top.qwq2333.nullgram.utils.encodeUrl +import xyz.nextalone.nnngram.translate.BaseTranslator +import xyz.nextalone.nnngram.utils.Log +import xyz.nextalone.nnngram.utils.encodeUrl import java.util.Locale object GoogleTranslator : BaseTranslator() { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/LingoTranslator.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/LingoTranslator.kt similarity index 93% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/LingoTranslator.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/LingoTranslator.kt index 781a3ecb24..db17441198 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/LingoTranslator.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/LingoTranslator.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.translate.providers +package xyz.nextalone.nnngram.translate.providers import io.ktor.client.request.header import io.ktor.client.request.post @@ -10,8 +10,8 @@ import io.ktor.http.contentType import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json -import top.qwq2333.nullgram.translate.BaseTranslator -import top.qwq2333.nullgram.utils.Log +import xyz.nextalone.nnngram.translate.BaseTranslator +import xyz.nextalone.nnngram.utils.Log object LingoTranslator : BaseTranslator() { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/MicrosoftTranslator.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/MicrosoftTranslator.kt similarity index 96% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/MicrosoftTranslator.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/MicrosoftTranslator.kt index c8dd3ad648..4f8cf05d28 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/MicrosoftTranslator.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/MicrosoftTranslator.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.translate.providers +package xyz.nextalone.nnngram.translate.providers import android.text.TextUtils import android.util.Base64 @@ -13,9 +13,9 @@ import kotlinx.serialization.Serializable import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import org.json.JSONArray -import top.qwq2333.nullgram.translate.BaseTranslator -import top.qwq2333.nullgram.utils.Log -import top.qwq2333.nullgram.utils.encodeUrl +import xyz.nextalone.nnngram.translate.BaseTranslator +import xyz.nextalone.nnngram.utils.Log +import xyz.nextalone.nnngram.utils.encodeUrl import java.io.IOException import java.text.SimpleDateFormat import java.util.Calendar diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/TelegramTranslator.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/TelegramTranslator.kt similarity index 92% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/TelegramTranslator.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/TelegramTranslator.kt index a653d746b0..705e17d3f1 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/TelegramTranslator.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/TelegramTranslator.kt @@ -1,7 +1,7 @@ -package top.qwq2333.nullgram.translate.providers +package xyz.nextalone.nnngram.translate.providers import io.ktor.http.HttpStatusCode -import top.qwq2333.nullgram.translate.BaseTranslator +import xyz.nextalone.nnngram.translate.BaseTranslator object TelegramTranslator : BaseTranslator() { override suspend fun translateText(text: String, from: String, to: String): RequestResult { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/AppLinkVerifyBottomSheet.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/AppLinkVerifyBottomSheet.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/AppLinkVerifyBottomSheet.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/AppLinkVerifyBottomSheet.java index 54f5014221..67af6da801 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/AppLinkVerifyBottomSheet.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/AppLinkVerifyBottomSheet.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.content.Context; import android.content.Intent; @@ -48,8 +48,8 @@ import java.util.Map; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.utils.Defines; +import xyz.nextalone.nnngram.config.ConfigManager; +import xyz.nextalone.nnngram.utils.Defines; @RequiresApi(api = Build.VERSION_CODES.S) public class AppLinkVerifyBottomSheet extends BottomSheet { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/AutoTranslatePopupWrapper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/AutoTranslatePopupWrapper.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/AutoTranslatePopupWrapper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/AutoTranslatePopupWrapper.java index 1d3631055a..60c380c360 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/AutoTranslatePopupWrapper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/AutoTranslatePopupWrapper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.content.Context; import android.util.TypedValue; @@ -19,7 +19,7 @@ import org.telegram.ui.Components.LayoutHelper; import org.telegram.ui.Components.PopupSwipeBackLayout; -import top.qwq2333.nullgram.config.DialogConfig; +import xyz.nextalone.nnngram.config.DialogConfig; public class AutoTranslatePopupWrapper { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/BottomBuilder.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/BottomBuilder.kt similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/BottomBuilder.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/BottomBuilder.kt index e31c68e782..52367fa69e 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/BottomBuilder.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/BottomBuilder.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.ui +package xyz.nextalone.nnngram.ui import android.content.Context import android.text.TextUtils diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/DrawerProfilePreviewCell.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/DrawerProfilePreviewCell.kt similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/DrawerProfilePreviewCell.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/DrawerProfilePreviewCell.kt index 867a18b4c4..0b35696f81 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/DrawerProfilePreviewCell.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/DrawerProfilePreviewCell.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui +package xyz.nextalone.nnngram.ui import android.annotation.SuppressLint import android.content.Context diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/EditTextAutoFill.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/EditTextAutoFill.java similarity index 94% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/EditTextAutoFill.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/EditTextAutoFill.java index d41f73e9cf..d7d142e6cc 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/EditTextAutoFill.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/EditTextAutoFill.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.annotation.TargetApi; import android.content.Context; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/IconSelector.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/IconSelector.kt similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/IconSelector.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/IconSelector.kt index fd8131cef9..6d115b33fe 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/IconSelector.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/IconSelector.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui +package xyz.nextalone.nnngram.ui import android.content.Context import android.graphics.PorterDuff @@ -14,7 +14,7 @@ import org.telegram.ui.ActionBar.Theme import org.telegram.ui.Components.ExtendedGridLayoutManager import org.telegram.ui.Components.RecyclerListView import org.telegram.ui.Components.RecyclerListView.SelectionAdapter -import top.qwq2333.nullgram.helpers.FolderIconHelper +import xyz.nextalone.nnngram.helpers.FolderIconHelper object IconSelector { @JvmStatic diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/PopupBuilder.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/PopupBuilder.kt similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/PopupBuilder.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/PopupBuilder.kt index ab50072328..70454f883b 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/PopupBuilder.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/PopupBuilder.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui +package xyz.nextalone.nnngram.ui import android.content.Context import android.view.View @@ -9,8 +9,8 @@ import org.telegram.messenger.R import org.telegram.ui.ActionBar.AlertDialog import org.telegram.ui.ActionBar.Theme import org.telegram.ui.Cells.RadioColorCell -import top.qwq2333.nullgram.ui.simplemenu.SimpleMenuPopupWindow -import top.qwq2333.nullgram.utils.Log +import xyz.nextalone.nnngram.ui.simplemenu.SimpleMenuPopupWindow +import xyz.nextalone.nnngram.utils.Log object PopupBuilder { private var mPopupWindow: SimpleMenuPopupWindow? = null diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/SendOptionsMenuLayout.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/SendOptionsMenuLayout.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/SendOptionsMenuLayout.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/SendOptionsMenuLayout.java index cf8788ba0d..f8fde15c63 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/SendOptionsMenuLayout.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/SendOptionsMenuLayout.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.annotation.SuppressLint; import android.content.Context; @@ -23,7 +23,7 @@ import org.telegram.ui.Components.AlertsCreator; import org.telegram.ui.Components.LayoutHelper; -import top.qwq2333.nullgram.config.ForwardContext; +import xyz.nextalone.nnngram.config.ForwardContext; @SuppressLint({"ClickableViewAccessibility", "ViewConstructor"}) public class SendOptionsMenuLayout extends LinearLayout { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/StickerSizePreviewMessagesCell.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/StickerSizePreviewMessagesCell.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/StickerSizePreviewMessagesCell.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/StickerSizePreviewMessagesCell.java index 99ec3b439d..de4f627e8a 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/StickerSizePreviewMessagesCell.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/StickerSizePreviewMessagesCell.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.annotation.SuppressLint; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/TranslatorSettingsPopupWrapper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/TranslatorSettingsPopupWrapper.java similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/TranslatorSettingsPopupWrapper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/TranslatorSettingsPopupWrapper.java index 2223095ca6..40a3cddbcc 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/TranslatorSettingsPopupWrapper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/TranslatorSettingsPopupWrapper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.view.View; import android.widget.FrameLayout; @@ -13,7 +13,7 @@ import org.telegram.ui.Components.PopupSwipeBackLayout; import kotlin.Unit; -import top.qwq2333.nullgram.helpers.TranslateHelper; +import xyz.nextalone.nnngram.helpers.TranslateHelper; public class TranslatorSettingsPopupWrapper { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/CustomBoundsDrawable.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/CustomBoundsDrawable.java similarity index 96% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/CustomBoundsDrawable.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/CustomBoundsDrawable.java index fb2863c58b..c0ba19ed8c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/CustomBoundsDrawable.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/CustomBoundsDrawable.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.graphics.Rect; import android.graphics.drawable.Drawable; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/DrawableWrapper.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/DrawableWrapper.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/DrawableWrapper.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/DrawableWrapper.java index ccba72744c..29e6d392a4 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/DrawableWrapper.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/DrawableWrapper.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.content.res.ColorStateList; import android.graphics.Canvas; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/ForegroundCheckTextView.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/ForegroundCheckTextView.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/ForegroundCheckTextView.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/ForegroundCheckTextView.java index 97fb399f58..9f1463edef 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/ForegroundCheckTextView.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/ForegroundCheckTextView.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.annotation.TargetApi; import android.content.Context; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/PropertyHolder.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/PropertyHolder.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/PropertyHolder.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/PropertyHolder.java index 20725ca492..29fb289eaa 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/PropertyHolder.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/PropertyHolder.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.graphics.Rect; import android.os.Build; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/RectEvaluator.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/RectEvaluator.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/RectEvaluator.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/RectEvaluator.java index d2df94f151..520b38c61c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/RectEvaluator.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/RectEvaluator.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.animation.TypeEvaluator; import android.annotation.SuppressLint; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuAnimation.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuAnimation.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuAnimation.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuAnimation.java index 0fa48a75ec..ef832ff037 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuAnimation.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuAnimation.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.animation.Animator; import android.animation.AnimatorSet; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuBoundsProperty.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuBoundsProperty.java similarity index 94% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuBoundsProperty.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuBoundsProperty.java index 542587d772..88a7dfaffc 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuBoundsProperty.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuBoundsProperty.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.graphics.Rect; import android.os.Build; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuItem.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuItem.java similarity index 96% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuItem.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuItem.java index 0f6dcb06ff..d690b493e6 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuItem.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuItem.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import android.content.Context; import android.graphics.Canvas; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuListAdapter.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuListAdapter.java similarity index 87% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuListAdapter.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuListAdapter.java index 5689662417..b3bd3e6942 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuListAdapter.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuListAdapter.java @@ -1,7 +1,7 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; -import static top.qwq2333.nullgram.ui.simplemenu.SimpleMenuPopupWindow.DIALOG; -import static top.qwq2333.nullgram.ui.simplemenu.SimpleMenuPopupWindow.HORIZONTAL; +import static xyz.nextalone.nnngram.ui.simplemenu.SimpleMenuPopupWindow.DIALOG; +import static xyz.nextalone.nnngram.ui.simplemenu.SimpleMenuPopupWindow.HORIZONTAL; import android.os.Build; import android.view.View; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuPopupWindow.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuPopupWindow.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuPopupWindow.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuPopupWindow.java index e118fe4bf7..1d3ce05f20 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/simplemenu/SimpleMenuPopupWindow.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/simplemenu/SimpleMenuPopupWindow.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.simplemenu; +package xyz.nextalone.nnngram.ui.simplemenu; import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/ColorHighlightSpan.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/ColorHighlightSpan.java similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/ColorHighlightSpan.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/ColorHighlightSpan.java index 233948e2f3..e6264982fd 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/ColorHighlightSpan.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/ColorHighlightSpan.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.graphics.Canvas; import android.graphics.Paint; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jSyntaxHighlight.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jSyntaxHighlight.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jSyntaxHighlight.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jSyntaxHighlight.java index 58832d9643..a817ab860a 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jSyntaxHighlight.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jSyntaxHighlight.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.text.Spannable; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jSyntaxVisitor.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jSyntaxVisitor.java similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jSyntaxVisitor.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jSyntaxVisitor.java index 7523a4836e..681ee297b3 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jSyntaxVisitor.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jSyntaxVisitor.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.text.Spannable; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jTheme.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jTheme.java similarity index 88% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jTheme.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jTheme.java index a892abcec2..b0b48c2c4c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jTheme.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jTheme.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.text.Spannable; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jThemeBase.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jThemeBase.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jThemeBase.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jThemeBase.java index bf4391c5ac..6abd3f2d0c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jThemeBase.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jThemeBase.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.text.Spannable; import android.text.Spanned; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jThemeDefault.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jThemeDefault.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jThemeDefault.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jThemeDefault.java index 2f67899afd..c185905b24 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/Prism4jThemeDefault.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/Prism4jThemeDefault.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.graphics.Typeface; import android.text.Spannable; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/SyntaxHighlight.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/SyntaxHighlight.java similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/SyntaxHighlight.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/SyntaxHighlight.java index 518734fe89..62a8f3ee08 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/syntaxhighlight/SyntaxHighlight.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/syntaxhighlight/SyntaxHighlight.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui.syntaxhighlight; +package xyz.nextalone.nnngram.ui.syntaxhighlight; import android.graphics.Color; import android.text.Spannable; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/APKUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/APKUtils.kt similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/APKUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/APKUtils.kt index ddd4257220..c165a126b5 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/APKUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/APKUtils.kt @@ -16,7 +16,7 @@ * If not, see * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.annotation.SuppressLint import android.app.Activity diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AlertUtil.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AlertUtil.kt similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AlertUtil.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AlertUtil.kt index df12ba6a3f..e8d45a9de4 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AlertUtil.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AlertUtil.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.content.Context import android.widget.Toast @@ -26,7 +26,7 @@ import org.telegram.messenger.LocaleController import org.telegram.messenger.R import org.telegram.tgnet.TLRPC import org.telegram.ui.ActionBar.AlertDialog -import top.qwq2333.nullgram.ui.BottomBuilder +import xyz.nextalone.nnngram.ui.BottomBuilder object AlertUtil { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AppcenterUtils.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AppcenterUtils.java similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AppcenterUtils.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AppcenterUtils.java index 3b4423c6eb..4d17c48d64 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AppcenterUtils.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AppcenterUtils.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils; +package xyz.nextalone.nnngram.utils; import android.app.Application; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AudioUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AudioUtils.kt similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AudioUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AudioUtils.kt index 256827693e..87219dcb92 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/AudioUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/AudioUtils.kt @@ -1,10 +1,10 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.media.AudioRecord import android.media.audiofx.AcousticEchoCanceler import android.media.audiofx.AutomaticGainControl import android.media.audiofx.NoiseSuppressor -import top.qwq2333.nullgram.config.ConfigManager +import xyz.nextalone.nnngram.config.ConfigManager object AudioUtils { var automaticGainControl: AutomaticGainControl? = diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/DatabaseUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/DatabaseUtils.kt similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/DatabaseUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/DatabaseUtils.kt index fb225307bd..8d61f80bd7 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/DatabaseUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/DatabaseUtils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import org.telegram.tgnet.TLObject diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Defines.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Defines.java index f4d2fa1580..be845bbd38 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Defines.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Defines.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils; +package xyz.nextalone.nnngram.utils; /** diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/FileUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/FileUtils.kt similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/FileUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/FileUtils.kt index 32cc570997..07fe98ca79 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/FileUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/FileUtils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import org.telegram.messenger.ApplicationLoader import java.io.File diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/JsonUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/JsonUtils.kt similarity index 97% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/JsonUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/JsonUtils.kt index 81ae845e97..4753b4ded2 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/JsonUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/JsonUtils.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import com.google.gson.Gson import com.google.gson.JsonObject diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Log.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Log.kt similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Log.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Log.kt index 88349a9310..ea159f3fe9 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Log.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Log.kt @@ -17,12 +17,12 @@ * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.util.Log object Log { - const val TAG = "Nullgram" + const val TAG = "Nnngram" /** * 日志等级 Debug diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/MessageUtils.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/MessageUtils.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/MessageUtils.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/MessageUtils.java index f3f6bf8ce7..5bac4bd9d2 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/MessageUtils.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/MessageUtils.java @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils; +package xyz.nextalone.nnngram.utils; import android.annotation.SuppressLint; import android.app.Activity; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/NumberUtils.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/NumberUtils.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/NumberUtils.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/NumberUtils.java index e02aee8063..4840663444 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/NumberUtils.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/NumberUtils.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils; +package xyz.nextalone.nnngram.utils; import java.text.DecimalFormat; import java.text.NumberFormat; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/PermissionUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/PermissionUtils.kt similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/PermissionUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/PermissionUtils.kt index def588eea0..1fbd9ebb3c 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/PermissionUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/PermissionUtils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.Manifest import android.app.Activity diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/PrivacyUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/PrivacyUtils.kt similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/PrivacyUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/PrivacyUtils.kt index 3f9c714f27..c690bd9381 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/PrivacyUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/PrivacyUtils.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.content.Context import android.content.DialogInterface diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/ProxyUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/ProxyUtils.kt similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/ProxyUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/ProxyUtils.kt index db5b607008..c0867828ba 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/ProxyUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/ProxyUtils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.os.SystemClock import kotlinx.coroutines.Dispatchers @@ -12,7 +12,7 @@ import org.telegram.messenger.SharedConfig.ExternalSocks5Proxy import org.telegram.messenger.UserConfig import org.telegram.tgnet.ConnectionsManager import org.telegram.ui.ProxyListActivity -import top.qwq2333.nullgram.config.ConfigManager +import xyz.nextalone.nnngram.config.ConfigManager import java.util.LinkedList import java.util.Timer import java.util.TimerTask diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/ShareUtil.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/ShareUtil.kt similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/ShareUtil.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/ShareUtil.kt index 29b49d2661..4203904621 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/ShareUtil.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/ShareUtil.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.content.Context import android.content.Intent diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/StringUtils.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/StringUtils.java similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/StringUtils.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/StringUtils.java index 716e749d24..555b594cf9 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/StringUtils.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/StringUtils.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils; +package xyz.nextalone.nnngram.utils; import androidx.annotation.NonNull; diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/UIUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/UIUtils.kt similarity index 95% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/UIUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/UIUtils.kt index e408241b7d..79ba7be06d 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/UIUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/UIUtils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/UpdateUtil.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/UpdateUtil.kt similarity index 96% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/UpdateUtil.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/UpdateUtil.kt index d62d47f403..22ae1b6c91 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/UpdateUtil.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/UpdateUtil.kt @@ -17,7 +17,7 @@ * */ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.content.Context import org.telegram.messenger.LocaleController @@ -30,11 +30,11 @@ import org.telegram.tgnet.ConnectionsManager import org.telegram.tgnet.TLObject import org.telegram.tgnet.TLRPC import org.telegram.ui.ActionBar.AlertDialog -import top.qwq2333.nullgram.config.ConfigManager +import xyz.nextalone.nnngram.config.ConfigManager object UpdateUtil { - const val channelUsername = "NullgramClient" + const val channelUsername = "NnngramClient" @JvmStatic fun postCheckFollowChannel(ctx: Context, currentAccount: Int) = UIUtil.runOnIoDispatcher { diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Utils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Utils.kt similarity index 98% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Utils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Utils.kt index 09120f20f9..5c01364314 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/Utils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/Utils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.content.Context import android.graphics.Typeface @@ -13,7 +13,7 @@ import org.telegram.messenger.LocaleController import org.telegram.messenger.MessageObject import org.telegram.messenger.NotificationCenter import org.telegram.messenger.SharedConfig -import top.qwq2333.nullgram.config.ConfigManager +import xyz.nextalone.nnngram.config.ConfigManager import java.io.BufferedReader import java.io.FileReader import java.net.URLEncoder diff --git a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/VibrationUtils.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/VibrationUtils.kt similarity index 93% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/VibrationUtils.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/VibrationUtils.kt index f899121505..892132a4d8 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/utils/VibrationUtils.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/utils/VibrationUtils.kt @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.utils +package xyz.nextalone.nnngram.utils import android.content.Context import android.os.Build @@ -8,7 +8,7 @@ import android.view.View import android.view.ViewGroup import androidx.core.view.children import org.telegram.messenger.ApplicationLoader -import top.qwq2333.nullgram.config.ConfigManager +import xyz.nextalone.nnngram.config.ConfigManager object VibrationUtils { lateinit var vibrator: Vibrator diff --git a/TMessagesProj/src/main/res/values-ar/strings_nullgram.xml b/TMessagesProj/src/main/res/values-ar/strings_nnngram.xml similarity index 97% rename from TMessagesProj/src/main/res/values-ar/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-ar/strings_nnngram.xml index 3808c393fb..0f9e7e6605 100644 --- a/TMessagesProj/src/main/res/values-ar/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-ar/strings_nnngram.xml @@ -1,8 +1,8 @@ - نولجرام - خدمة دفع Nullgram - إعدادات نولجرام + نولجرام + خدمة دفع Nnngram + إعدادات نولجرام القناة الرسمية الدردشة تجريبية @@ -10,7 +10,7 @@ عرض كود المصدر الفئات عن التطبيق - NullgramClient + NnngramClient لا يوجد تحديث. يوجد تحديث جديد متغيرات الإصدار لا تتطابق تلقائيا.\nالرجاء التحميل يدوياً من GitHub. @@ -27,7 +27,7 @@ تصريح الدخول غير صالح تسجل دخول بواسطة مسح رمز QR قم بمسح QRCode باستخدام جهاز آخر لتسجيل الدخول. - نولجرام %1$s\nمبني على تيليجرام %2$s + نولجرام %1$s\nمبني على تيليجرام %2$s سبب التقييد عرض API ID للبوت إخفاء حزمة ملصقات المجموعات @@ -70,7 +70,7 @@ التحديث التلقائي مستقر معاينة (غير مستقر) - تحديث نولجرام + تحديث نولجرام لا يوجد تحديث لا تذكرني مرة أخرى حول تحديثات التطبيق @@ -87,7 +87,7 @@ رقم هاتفك المحمول مرئي لأي شخص ، مما يتيح للمتسللين الذين تسيطر عليهم الحكومة العثور على هويتك الحقيقية. يرجى إيقاف تشغيله! تم اكتشاف أنك لم تقم بإيقاف تشغيل إعدادات \"السماح بالعثور علي من خلال رقم الهاتف\"، قد يتسبب في العثور على هويتك الحقيقية للقرصنة التي تسيطر عليها الحكومة، يرجى إيقافها! إخفاء رقم الهاتف - للأندرويد 12 والأحدث، تحتاج إلى إضافة رابط إلى الروابط التي تم التحقق منها يدوياً من أجل فتح روابط t.me في Nullgram + للأندرويد 12 والأحدث، تحتاج إلى إضافة رابط إلى الروابط التي تم التحقق منها يدوياً من أجل فتح روابط t.me في Nnngram لم يتم التحقق من روابط التطبيق إظهار العدد الدقيق تعطيل الانتقال إلى القناة التالية @@ -108,7 +108,7 @@ تأكيد إرسال رسائل الوسائط تعطيل الكاميرا الفورية آخر فحص بنجاح الآن. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy تخطي تأكيد فتح الرابط الحد الاقصى للملصقات الأخيرة الحد الاقصى للملصقات الأخيرة @@ -167,7 +167,7 @@ كلمة المرور إعدادات غير معروفة يجب عليك تمكين قفل رمز المرور أولاً - إظهار في إعدادات Nullgram + إظهار في إعدادات Nnngram بعد الاختفاء، يمكنك فتح **فقط** الإعدادات عن طريق الرابط: تعيين كلمة المرور تغيير كلمة المرور @@ -215,7 +215,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-fr/strings_nullgram.xml b/TMessagesProj/src/main/res/values-de/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-fr/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-de/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-fr/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-de/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Nullgram Settings + Nnngram + Nnngram Push Service + Nnngram Settings Official Channel Chat Experiment @@ -10,7 +10,7 @@ View Source Code Categories About - NullgramClient + NnngramClient No Update. New Update Available Release variants fail to match automatically.\nPlease download manually from GitHub. @@ -27,7 +27,7 @@ Invalid access token QR Login Scan QRCode with another device to login. - Nullgram %1$s\nBased on Telegram %2$s + Nnngram %1$s\nBased on Telegram %2$s Restriction reason Show Bot API ID Hide Group Sticker Pack @@ -70,7 +70,7 @@ Automatic Update Stable Preview (Unstable) - Update Nullgram + Update Nnngram No Update Don\'t remind again About application updates @@ -87,7 +87,7 @@ It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram App links not verified Show Exact Number Disable Jump to Next Channel @@ -106,7 +106,7 @@ Confirm To Send Media Messages Disable Instant Camera Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Skip Open Link Confirm Max Recent Sticker Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-es/strings_nullgram.xml b/TMessagesProj/src/main/res/values-es/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-es/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-es/strings_nnngram.xml index 681cd14860..23644fd7ac 100644 --- a/TMessagesProj/src/main/res/values-es/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-es/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Ajustes de Nullgram + Nnngram + Nnngram Push Service + Ajustes de Nnngram Canal oficial Chat Experimental @@ -10,7 +10,7 @@ Ver código fuente Categorías Acerca de - NullgramClient + NnngramClient Sin actualización. Nueva actualización disponible Las variantes de lanzamiento no coinciden automáticamente.\nPor favor, descargue manualmente desde GitHub. @@ -27,7 +27,7 @@ Token de acceso inválido Inicio de sesión con QR Escanea código QR con otro dispositivo para conectarte. - Nullgram %1$s\n Basado en Telegram %2$s + Nnngram %1$s\n Basado en Telegram %2$s Motivo de la restricción Mostrar ID Bot API Ocultar pack de stickers de grupo @@ -70,7 +70,7 @@ Actualización automática Estable Vista previa (inestable) - Actualizar Nullgram + Actualizar Nnngram Sin actualización No recordar de nuevo Acerca de las actualizaciones de la aplicación @@ -87,7 +87,7 @@ Se detecta que su número de teléfono es visible para cualquiera, que puede hacer que los hackers controlados por el gobierno encuentren su verdadera identidad, ¡desactívala! Se ha detectado que no has desactivado el ajuste de \"Permitir encontrarme a través del número de teléfono\", que puede causar que un hacker controlado por el gobierno encuentre tu verdadera identidad, ¡desactívala! Ocultar número de teléfono - Para Android 12 y posterior, necesitas añadir manualmente un enlace a los enlaces verificados para poder abrir enlaces t.me en Nullgram + Para Android 12 y posterior, necesitas añadir manualmente un enlace a los enlaces verificados para poder abrir enlaces t.me en Nnngram Enlaces de app no verificados Mostrar número exacto Desactivar Saltar al siguiente canal @@ -106,7 +106,7 @@ Confirmar enviar mensajes multimedia Deshabilitar cámara instantánea Última comprobación exitosa justo ahora. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Omitir Confirmar abrir enlace Máximo de stickers recientes Establecer máximo de stickers recientes @@ -165,7 +165,7 @@ Código de acceso Ajustes desconocidos Tienes que activar primero el código de acceso - Mostrar en Ajustes de Nullgram + Mostrar en Ajustes de Nnngram Después de ocultarlo, **SOLO puedes** abrir los ajustes mediante el enlace: Establecer código de acceso Cambiar código @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-ko/strings_nullgram.xml b/TMessagesProj/src/main/res/values-fr/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-ko/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-fr/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-ko/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-fr/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Nullgram Settings + Nnngram + Nnngram Push Service + Nnngram Settings Official Channel Chat Experiment @@ -10,7 +10,7 @@ View Source Code Categories About - NullgramClient + NnngramClient No Update. New Update Available Release variants fail to match automatically.\nPlease download manually from GitHub. @@ -27,7 +27,7 @@ Invalid access token QR Login Scan QRCode with another device to login. - Nullgram %1$s\nBased on Telegram %2$s + Nnngram %1$s\nBased on Telegram %2$s Restriction reason Show Bot API ID Hide Group Sticker Pack @@ -70,7 +70,7 @@ Automatic Update Stable Preview (Unstable) - Update Nullgram + Update Nnngram No Update Don\'t remind again About application updates @@ -87,7 +87,7 @@ It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram App links not verified Show Exact Number Disable Jump to Next Channel @@ -106,7 +106,7 @@ Confirm To Send Media Messages Disable Instant Camera Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Skip Open Link Confirm Max Recent Sticker Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-it/strings_nullgram.xml b/TMessagesProj/src/main/res/values-it/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-it/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-it/strings_nnngram.xml index ac44e0785b..a882d32da8 100644 --- a/TMessagesProj/src/main/res/values-it/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-it/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Servizio notifiche push Nullgram - Impostazioni Nullgram + Nnngram + Servizio notifiche push Nnngram + Impostazioni Nnngram Canale ufficiale Chat Esperimenti @@ -10,7 +10,7 @@ Codice sorgente Categorie Info su - NullgramClient + NnngramClient Nessun nuovo aggiornamento. Nuovo aggiornamento disponibile Impossibile trovare una variante di release corrispondente.\nScarica l\'aggiornamento manualmente da GitHub. @@ -27,7 +27,7 @@ Token d\'accesso non valido Accesso con QR Scansiona il QR con un altro dispositivo per accedere. - Nullgram %1$s\nBasato su Telegram %2$s + Nnngram %1$s\nBasato su Telegram %2$s Motivo della restrizione Mostra bot API ID Nascondi stickerpack di gruppo @@ -70,7 +70,7 @@ Aggiornamenti automatici Stabile Anteprima (instabile) - Aggiorna Nullgram + Aggiorna Nnngram Nessun aggiornamento Non ricordarmelo più A proposito degli aggiornamenti @@ -87,7 +87,7 @@ Non hai disattivato l\'opzione \"Mostra numero a chiunque\", il che potrebbe permettere a dei malintenzionati di scoprire la tua identità. Ti consigliamo di disattivarla. Non hai disattivato l\'opzione \"Permetti ad altri di trovarmi con il numero\", il che potrebbe permettere a dei malintenzionati di scoprire la tua identità. Ti consigliamo di disattivarla. Nascondi numero di telefono - Da Android 12, devi inserire manualmente i domini dei link ai verificati per poter utilizzare i link t.me in Nullgram + Da Android 12, devi inserire manualmente i domini dei link ai verificati per poter utilizzare i link t.me in Nnngram Link app non verificati Mostra numero esatto Disabilita swipe a canale successivo @@ -106,7 +106,7 @@ Conferma l\'invio dei media Disabilita fotocamera istantanea Verificato l\'ultima volta in questo momento. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Salta popup conferma apertura link Massimo sticker recenti Imposta max sticker recenti @@ -165,7 +165,7 @@ Codice Impostazioni sconosciute Devi impostare un codice prima - Mostra in Impostazioni Nullgram + Mostra in Impostazioni Nnngram Dopo averle nascoste, potrai accederci **SOLO** attraverso il link: Imposta codice Cambia codice @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-de/strings_nullgram.xml b/TMessagesProj/src/main/res/values-ko/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-de/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-ko/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-de/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-ko/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Nullgram Settings + Nnngram + Nnngram Push Service + Nnngram Settings Official Channel Chat Experiment @@ -10,7 +10,7 @@ View Source Code Categories About - NullgramClient + NnngramClient No Update. New Update Available Release variants fail to match automatically.\nPlease download manually from GitHub. @@ -27,7 +27,7 @@ Invalid access token QR Login Scan QRCode with another device to login. - Nullgram %1$s\nBased on Telegram %2$s + Nnngram %1$s\nBased on Telegram %2$s Restriction reason Show Bot API ID Hide Group Sticker Pack @@ -70,7 +70,7 @@ Automatic Update Stable Preview (Unstable) - Update Nullgram + Update Nnngram No Update Don\'t remind again About application updates @@ -87,7 +87,7 @@ It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram App links not verified Show Exact Number Disable Jump to Next Channel @@ -106,7 +106,7 @@ Confirm To Send Media Messages Disable Instant Camera Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Skip Open Link Confirm Max Recent Sticker Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-nl/strings_nullgram.xml b/TMessagesProj/src/main/res/values-nl/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-nl/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-nl/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-nl/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-nl/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Nullgram Settings + Nnngram + Nnngram Push Service + Nnngram Settings Official Channel Chat Experiment @@ -10,7 +10,7 @@ View Source Code Categories About - NullgramClient + NnngramClient No Update. New Update Available Release variants fail to match automatically.\nPlease download manually from GitHub. @@ -27,7 +27,7 @@ Invalid access token QR Login Scan QRCode with another device to login. - Nullgram %1$s\nBased on Telegram %2$s + Nnngram %1$s\nBased on Telegram %2$s Restriction reason Show Bot API ID Hide Group Sticker Pack @@ -70,7 +70,7 @@ Automatic Update Stable Preview (Unstable) - Update Nullgram + Update Nnngram No Update Don\'t remind again About application updates @@ -87,7 +87,7 @@ It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram App links not verified Show Exact Number Disable Jump to Next Channel @@ -106,7 +106,7 @@ Confirm To Send Media Messages Disable Instant Camera Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Skip Open Link Confirm Max Recent Sticker Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-pt/strings_nullgram.xml b/TMessagesProj/src/main/res/values-pt/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-pt/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-pt/strings_nnngram.xml index 48adf7de2a..7bea1d7d38 100644 --- a/TMessagesProj/src/main/res/values-pt/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-pt/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Serviço de Push Nullgram - Configurações do Nullgram + Nnngram + Serviço de Push Nnngram + Configurações do Nnngram Canal oficial Chat Experimentar @@ -10,7 +10,7 @@ Ver código-fonte Categorias Sobre - NullgramClient + NnngramClient Sem atualizações Nova atualização disponível Liberação de variantes não corresponde automaticamente.\nPor favor faça o download manualmente do GitHub. @@ -27,7 +27,7 @@ Token de acesso inválido Acessar com Código QR Leia o QRCode com outro dispositivo para fazer login. - Nullgram %1$s\nBaseado no Telegram %2$s + Nnngram %1$s\nBaseado no Telegram %2$s Motivo da restrição Exibir ID da API do Bot Ocultar Pacote de Adesivo do Grupo @@ -70,7 +70,7 @@ Atualizações automáticas Estável Pré-visualização (instável) - Atualizar Nullgram + Atualizar Nnngram Nenhuma atualização Não me lembrar novamente Sobre atualizações do aplicativo @@ -87,7 +87,7 @@ Foi detectado que o seu número está visível para qualquer pessoa, o que pode fazer com que hackers controlados pelo governo encontrem sua verdadeira identidade, por favor esconda seu número. Detectamos que você não desativou a opção \'\'Permitir que vejam minha localização pelo número de celular\'\' para sua segurança, recomedamos desativa-lá. Esconder número de telefone - O Android 12 e suas versões mais recentes, precisam que você adicione os links manualmente. Ative links t.me para abrir com o Nullgram. + O Android 12 e suas versões mais recentes, precisam que você adicione os links manualmente. Ative links t.me para abrir com o Nnngram. Links de apps não verificados. Exibir número exato Desativar \'\'pular para o próximo canal\'\' @@ -106,7 +106,7 @@ Confime para enviar mensagens de mídias Desativar Câmera Instantânea Última verificação com sucesso agora. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Ignorar confirmação ao abrir links Definir quantidade máxima de Stickers recentes Definir quantidade máxima de Stickers recentes @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-ru/strings_nullgram.xml b/TMessagesProj/src/main/res/values-ru/strings_nnngram.xml similarity index 97% rename from TMessagesProj/src/main/res/values-ru/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-ru/strings_nnngram.xml index 3fc73e80a9..844b054d1c 100644 --- a/TMessagesProj/src/main/res/values-ru/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-ru/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Сервис уведомлений - Настройки Nullgram + Nnngram + Nnngram Сервис уведомлений + Настройки Nnngram Официальный канал Чат Эксперимент @@ -10,7 +10,7 @@ Показать исходный код Категории О нас - NullgramClient + NnngramClient Новые обновления отсутствуют. Доступно обновление Версия приложения не совпадает с последней \nПожалуйста скачайте вручную с GitHub. @@ -27,7 +27,7 @@ Неверный токен доступа Вход через QR-код Отсканируйте QR-код с помощью другого устройства для входа. - Nullgram %1$s\nНа основе Telegram %2$s + Nnngram %1$s\nНа основе Telegram %2$s Причина ограничения Показать API ID бота Скрыть стикеры группы @@ -70,7 +70,7 @@ Автоматическое обновление Стабильная Предварительная (Нестабильно) - Обновить Nullgram + Обновить Nnngram Нет обновлений Не напоминать снова Об обновлении @@ -87,7 +87,7 @@ Обнаружено, что номер вашего мобильного телефона виден всем, что может привести к тому, что контролируемые правительством хакеры найдут вашу истинную личность, пожалуйста, отключите его! Обнаружено, что у вас не отключена настройка \"Разрешить найти меня по номеру телефона\", которая может привести к тому, что контролируемые правительством хакеры смогут найти вашу настоящую личность, пожалуйста, отключите ее! Скрыть номер телефона - Для Android 12 и новее необходимо вручную добавить ссылку в проверенные ссылки, чтобы открывать ссылки t.me в Nullgram + Для Android 12 и новее необходимо вручную добавить ссылку в проверенные ссылки, чтобы открывать ссылки t.me в Nnngram Ссылки на приложение не проверены Показать точный номер Отключить свайп на следующий канал @@ -107,7 +107,7 @@ Подтвердить для отправки видео сообщений Выключить встроенную камеру Последняя успешная проверка обновлений только что. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Пропустить подтверждение при открытии ссылки Максимальное количество недавних стикеров Установить максимальное количество последних стикеров @@ -166,7 +166,7 @@ Пароль Неизвестные настройки Сначала необходимо включить блокировку паролем - Показать в настройках Nullgram + Показать в настройках Nnngram После скрытия, вы сможете открыть настройки **ТОЛЬКО ** по ссылке: Установить код-пароль Изменить код-пароль @@ -214,7 +214,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-tr/strings_nullgram.xml b/TMessagesProj/src/main/res/values-tr/strings_nnngram.xml similarity index 95% rename from TMessagesProj/src/main/res/values-tr/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-tr/strings_nnngram.xml index ac4b8650e5..902ab55f04 100644 --- a/TMessagesProj/src/main/res/values-tr/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-tr/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Bildirim Hizmeti - Nullgram Ayarları + Nnngram + Nnngram Bildirim Hizmeti + Nnngram Ayarları Resmi Kanal Sohbet Deneysel @@ -10,7 +10,7 @@ Kaynak Kodunu Görüntüle Kategoriler Hakkında - NullgramClient + NnngramClient Güncelleme Yok. Yeni Güncelleştirme Mevcut Sürüm varyantları otomatik olarak eşleşmez.\nLütfen GitHub\'dan manuel olarak indirin. @@ -27,7 +27,7 @@ Erişim anahtarı geçersiz QR Girişi Başka bir cihazda oturum açmak için QR Codunuzu tarayın. - Nullgram %1$s\nTelegram\'a Dayalı %2$s + Nnngram %1$s\nTelegram\'a Dayalı %2$s Kısıtlama nedeni Bot API Kimliğini Göster Grup Stickerlarını Gizle @@ -70,7 +70,7 @@ Otomatik Güncelleme Kararlı Önizleme (Kararsız) - Nullgram\'ı Güncelle + Nnngram\'ı Güncelle Güncelleme Yok Bir daha hatırlatma Uygulama güncellemeleri hakkında @@ -87,7 +87,7 @@ Cep telefonu numaranızın herkes tarafından görülebildiği tespit edildi, bu da devlet kontrolündeki bilgisayar korsanlarının gerçek kimliğinizi bulmasına neden olabilir, lütfen kapatın! Hükümet tarafından kontrol edilen bir bilgisayar korsanının gerçek kimliğinizi bulmasına neden olabilecek \"Beni telefon numarası aracılığıyla bulmaya izin ver\" Ayarını kapatmadığınız tespit edildi, lütfen kapatın! Telefon numarasını gizle - Android 12 ve daha yeni sürümlerde, Nullgram\'da t.me bağlantılarını açmak için doğrulanmış bağlantılara manuel olarak bağlantı eklemeniz gerekir. + Android 12 ve daha yeni sürümlerde, Nnngram\'da t.me bağlantılarını açmak için doğrulanmış bağlantılara manuel olarak bağlantı eklemeniz gerekir. Uygulama bağlantıları doğrulanmadı Tam Sayıyı Göster \"Sonraki Kanala Geç\" seçeneğini devre dışı bırakın @@ -106,7 +106,7 @@ Medya Mesajları Göndermeyi Onayla Anında Kamerayı Devre Dışı Bırak Son başarıyla kontrol edildi. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Bağlantıyı Açma Onayı Kutusunu Atla En Son Çıkartmalar Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-uz/strings_nullgram.xml b/TMessagesProj/src/main/res/values-uz/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-uz/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-uz/strings_nnngram.xml index 5de23e719c..f17c4e07f3 100644 --- a/TMessagesProj/src/main/res/values-uz/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-uz/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Nullgram sozlamalari + Nnngram + Nnngram Push Service + Nnngram sozlamalari Rasmiy kanal Suxbat tajriba @@ -10,7 +10,7 @@ Manba kodini ko\'rish Kategoriyalar Haqida - NullgramClient + NnngramClient Sizda oxirgi versiya Yangilanish mavjud Release variants fail to match automatically.\nPlease download manually from GitHub. @@ -27,7 +27,7 @@ Bot tokeni yaroqsiz Qr login Kirish uchun QR kodini boshqa qurilma bilan skanerlang. - Nullgram %1$s\nBased on Telegram %2$s + Nnngram %1$s\nBased on Telegram %2$s Restriction reason Bot api idni ko\'rsatish Guruh stickerlarini yashirish @@ -70,7 +70,7 @@ Avto yangilash Stable Preview (Unstable) - Update Nullgram + Update Nnngram No Update Don\'t remind again About application updates @@ -87,7 +87,7 @@ It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram App links not verified Show Exact Number Disable Jump to Next Channel @@ -106,7 +106,7 @@ Confirm To Send Media Messages Disable Instant Camera Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Skip Open Link Confirm Max Recent Sticker Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values-zh-rTW/strings_nnngram.xml b/TMessagesProj/src/main/res/values-zh-rTW/strings_nnngram.xml new file mode 100644 index 0000000000..ea2f0360bf --- /dev/null +++ b/TMessagesProj/src/main/res/values-zh-rTW/strings_nnngram.xml @@ -0,0 +1,259 @@ + + + Nnngram + Nnngram Push Service + Nnngram Settings + Official Channel + Chat + Experiment + Official Site + View Source Code + Categories + About + NnngramClient + No Update. + New Update Available + Release variants fail to match automatically.\nPlease download manually from GitHub. + Ignore + Not Now + UPDATE + Check for update + Checking for update… + Never checked since install. + Last successfully checked on %1$s. + Last successfully checked %1$s. + Bot Login + API Key + Invalid access token + QR Login + Scan QRCode with another device to login. + Nnngram %1$s\nBased on Telegram %2$s + Restriction reason + Show Bot API ID + Hide Group Sticker Pack + Ignore Blocked User Messages + Block Sponsor Ads + With admin rights + Delete own messages + Warning! This will **delete all messages from you** in this chat for **all** participants. + This contact is a mutual contact. + Mutual contact + Select between + Sticker saved to gallery + Details + h:mm:ss a + HH:mm:ss + Delete downloaded file + Repeat + Save Messages + View history + NoQuote forward + Message menu + Bypass Screenshot Limit + It will also allow you to bypass screenshot limit in SecureChat! + Label Channel User + If message sender is Channel,it will label it as \"Channel\" + Display Spoiler Messages Directly + All data of this application will be permanently deleted (and try to log out of all accounts first). + Please use logcat to catch logs manually + Clear Storage + Code syntax highlight + Create Monospace + Code language + Thanks to prismjs and Nekogram + Create mention + Name + Channel Alias + Require label channel user enabled. + Set Alias + OFF + Automatic Update + Stable + Preview (Unstable) + Update Nnngram + No Update + Don\'t remind again + About application updates + Follow our announcements and updates channel? + Switch Release Channel + Backup Settings + Import Settings + Restart App To Take Effect + Are you sure you want to overwrite the settings? Importing settings from unknown sources may cause the pin to be overwritten and cause the application to be locked. + It is detected that you have not set a password, which may cause government-controlled hackers to find your true identity, please set one! + Privacy warning + OK, Apply it + It is detected that you have not turned off the \"Allow P2p calls\" Setting, which may cause government-controlled hackers to find your true identity, please turn it off! + It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! + It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! + Hide phone number + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram + App links not verified + Show Exact Number + Disable Jump to Next Channel + Disable Greeting Sticker + Disable Trending Sticker + Custom Double Tap + OpenSource Software Licenses + Don\'t use custom API + TELEOFFICIAL + Custom API + Log in using the custom api, if you are unable to register or log in, this may help.\n\nNote: fcm will not work if you are using the release version. + Manual input + This account will connect to the test backend. + This account will connect to the production backend. + Disable Undo + Confirm To Send Media Messages + Disable Instant Camera + Last successfully checked just now. + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy + Skip Open Link Confirm + Max Recent Sticker + Set Max Recent Sticker + Number + Proxy Auto Switch + Ignore Reaction Mention + It will auto set unread reaction mentions as read.\nIt will also sync to other devices.\nNotification will be still shown because it\'s controlled by Telegram Server. + Sticker Size + get me some anime stuff pls. + wow cute girl! + Reset Sticker Size + Undo + Redo + Copy Title + Copy Callback Data + Copy Inline Query + Copy ID + Send Callback Data + Callback Data + Test Backend + You cannot disable it when Channel Alias is enabled! + Unread Badge on Back Button + Keep text formatting when copy + Show date of forwarded message + Enchant Audio Quality + This feature is supported by Android\'s audio system.\nWe do not guarantee major changes in sound quality. + Profile picture as background + Blur profile picture + Darken profile picture + Hide Time For Sticker + Show Message ID + Hide Quick Send Media Bottom + Large Avatar As Background + Use System Emoji + Command + Set Custom Quick Message + You can\'t input nothing here + 20 and 150<]]> + You must input a number! + You must input a string! + Send As Reply + Scrollable Chat Preview + Disable Vibration + Datacenter status + Check the status of Telegram\'s **datacenters**. + All your messages have been deleted + Set Linked User + Enter User ID or Bot ID + Unable to Find this User + Linked User + Link users to channels.\nIt will show the linked user in the linked channel\'s profile + Link User + Override Channel Alias + If linked user is set it will override channel alias. + Label Linked User In Chat + Passcode + Unknown Settings + You have to enable passcode lock first + Show in Nnngram Settings + After hiding, you can **ONLY** open settings by link: + Set passcode + Change passcode + Remove passcode + Hide account + Logout with panic code + Set different passcodes for each account, and switch between them by entering the corresponding passcode. + Panic code + Set panic code + Change panic code + Disable Sending Type Status + Turn off panic code + Are you sure you want to turn off panic code? + Are you sure you want to remove passcode for this account? + Use the panic code to log out accounts if something goes wrong. + Photo Copied + Copy Photo + Hide Premium Sticker Animation + Premium + Fasten upload speed + Show Tabs On Forward + Show on tabs + Icons are cloud-synced by Telegram. + Titles + Icons + Icons with titles + Modify Download Speed + Main Icon + Icon 1 + Icon 2 + Icon 3 + Icon 4 + Icon 5 + Disable Premium Sticker Tab + Hide Proxy Sponsor Channel + Disable preview video sound shortcut + Disable volume keys to enable preview video sound + Quick toggle anonymous + If you\'re owner of the group + Anonymous + Channel + Switch to anonymously + Switch to personal account + Open Archive On Pull + Disable sticker packs auto-reorder + Ban + Auto Disable Built-In Proxy + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN + Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram + Provided by Nekogram X + Enable TLS + Local proxy + Enable DoH + Built-in Public Proxy + Switch Backend + Installing update... + The app will relaunch when the update completes. + A notification will be shown when the update completes. + Please check for update in Play Store. + Update in Play Store usually comes slower than direct APKs due to Google\'s review. + Update installation finished, tap to launch the app. + Failed to install update: %d + Translator + Google Translate + TELEOFFICIAL + Microsoft Translate + Lingo Translate + Translation Provider + The translation provider you selected don\'t support your language. + Reset language + Use Google + Target language + Follow App + Option unavailable + Google MLKit language identifier is somehow broken on this device. + Popup dialog + External App + Type + Provider + Automatically translate messages that are in another language. + Auto translate + With original text + You don\'t have applications that can handle translate intent, please install one to continue + Undo Translate + Translate server error + Disable sensitive content filtering + Display sensitive media in public channels on all your devices. + Installing app from apk file in chat is not available in the Play Store version of the app.\nPlease save it manually and install from File Manager. + In Message + Login via sms is currently disabled for any 3rd TELEOFFICIAL client due to TELEOFFICIAL\'s policy.\nWe apologize for any inconvenience caused. + diff --git a/TMessagesProj/src/main/res/values-zh-rTW/strings_nullgram.xml b/TMessagesProj/src/main/res/values-zh-rTW/strings_nullgram.xml deleted file mode 100644 index b3fc53664c..0000000000 --- a/TMessagesProj/src/main/res/values-zh-rTW/strings_nullgram.xml +++ /dev/null @@ -1,259 +0,0 @@ - - - Nullgram - Nullgram Push Service - Nullgram Settings - Official Channel - Chat - Experiment - Official Site - View Source Code - Categories - About - NullgramClient - No Update. - New Update Available - Release variants fail to match automatically.\nPlease download manually from GitHub. - Ignore - Not Now - UPDATE - Check for update - Checking for update… - Never checked since install. - Last successfully checked on %1$s. - Last successfully checked %1$s. - Bot Login - API Key - Invalid access token - QR Login - Scan QRCode with another device to login. - Nullgram %1$s\nBased on Telegram %2$s - Restriction reason - Show Bot API ID - Hide Group Sticker Pack - Ignore Blocked User Messages - Block Sponsor Ads - With admin rights - Delete own messages - Warning! This will **delete all messages from you** in this chat for **all** participants. - This contact is a mutual contact. - Mutual contact - Select between - Sticker saved to gallery - Details - h:mm:ss a - HH:mm:ss - Delete downloaded file - Repeat - Save Messages - View history - NoQuote forward - Message menu - Bypass Screenshot Limit - It will also allow you to bypass screenshot limit in SecureChat! - Label Channel User - If message sender is Channel,it will label it as \"Channel\" - Display Spoiler Messages Directly - All data of this application will be permanently deleted (and try to log out of all accounts first). - Please use logcat to catch logs manually - Clear Storage - Code syntax highlight - Create Monospace - Code language - Thanks to prismjs and Nekogram - Create mention - Name - Channel Alias - Require label channel user enabled. - Set Alias - OFF - Automatic Update - Stable - Preview (Unstable) - Update Nullgram - No Update - Don\'t remind again - About application updates - Follow our announcements and updates channel? - Switch Release Channel - Backup Settings - Import Settings - Restart App To Take Effect - Are you sure you want to overwrite the settings? Importing settings from unknown sources may cause the pin to be overwritten and cause the application to be locked. - It is detected that you have not set a password, which may cause government-controlled hackers to find your true identity, please set one! - Privacy warning - OK, Apply it - It is detected that you have not turned off the \"Allow P2p calls\" Setting, which may cause government-controlled hackers to find your true identity, please turn it off! - It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! - It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! - Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram - App links not verified - Show Exact Number - Disable Jump to Next Channel - Disable Greeting Sticker - Disable Trending Sticker - Custom Double Tap - OpenSource Software Licenses - Don\'t use custom API - TELEOFFICIAL - Custom API - Log in using the custom api, if you are unable to register or log in, this may help.\n\nNote: fcm will not work if you are using the release version. - Manual input - This account will connect to the test backend. - This account will connect to the production backend. - Disable Undo - Confirm To Send Media Messages - Disable Instant Camera - Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy - Skip Open Link Confirm - Max Recent Sticker - Set Max Recent Sticker - Number - Proxy Auto Switch - Ignore Reaction Mention - It will auto set unread reaction mentions as read.\nIt will also sync to other devices.\nNotification will be still shown because it\'s controlled by Telegram Server. - Sticker Size - get me some anime stuff pls. - wow cute girl! - Reset Sticker Size - Undo - Redo - Copy Title - Copy Callback Data - Copy Inline Query - Copy ID - Send Callback Data - Callback Data - Test Backend - You cannot disable it when Channel Alias is enabled! - Unread Badge on Back Button - Keep text formatting when copy - Show date of forwarded message - Enchant Audio Quality - This feature is supported by Android\'s audio system.\nWe do not guarantee major changes in sound quality. - Profile picture as background - Blur profile picture - Darken profile picture - Hide Time For Sticker - Show Message ID - Hide Quick Send Media Bottom - Large Avatar As Background - Use System Emoji - Command - Set Custom Quick Message - You can\'t input nothing here - 20 and 150<]]> - You must input a number! - You must input a string! - Send As Reply - Scrollable Chat Preview - Disable Vibration - Datacenter status - Check the status of Telegram\'s **datacenters**. - All your messages have been deleted - Set Linked User - Enter User ID or Bot ID - Unable to Find this User - Linked User - Link users to channels.\nIt will show the linked user in the linked channel\'s profile - Link User - Override Channel Alias - If linked user is set it will override channel alias. - Label Linked User In Chat - Passcode - Unknown Settings - You have to enable passcode lock first - Show in Nullgram Settings - After hiding, you can **ONLY** open settings by link: - Set passcode - Change passcode - Remove passcode - Hide account - Logout with panic code - Set different passcodes for each account, and switch between them by entering the corresponding passcode. - Panic code - Set panic code - Change panic code - Disable Sending Type Status - Turn off panic code - Are you sure you want to turn off panic code? - Are you sure you want to remove passcode for this account? - Use the panic code to log out accounts if something goes wrong. - Photo Copied - Copy Photo - Hide Premium Sticker Animation - Premium - Fasten upload speed - Show Tabs On Forward - Show on tabs - Icons are cloud-synced by Telegram. - Titles - Icons - Icons with titles - Modify Download Speed - Main Icon - Icon 1 - Icon 2 - Icon 3 - Icon 4 - Icon 5 - Disable Premium Sticker Tab - Hide Proxy Sponsor Channel - Disable preview video sound shortcut - Disable volume keys to enable preview video sound - Quick toggle anonymous - If you\'re owner of the group - Anonymous - Channel - Switch to anonymously - Switch to personal account - Open Archive On Pull - Disable sticker packs auto-reorder - Ban - Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN - Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram - Provided by Nekogram X - Enable TLS - Local proxy - Enable DoH - Built-in Public Proxy - Switch Backend - Installing update... - The app will relaunch when the update completes. - A notification will be shown when the update completes. - Please check for update in Play Store. - Update in Play Store usually comes slower than direct APKs due to Google\'s review. - Update installation finished, tap to launch the app. - Failed to install update: %d - Translator - Google Translate - TELEOFFICIAL - Microsoft Translate - Lingo Translate - Translation Provider - The translation provider you selected don\'t support your language. - Reset language - Use Google - Target language - Follow App - Option unavailable - Google MLKit language identifier is somehow broken on this device. - Popup dialog - External App - Type - Provider - Automatically translate messages that are in another language. - Auto translate - With original text - You don\'t have applications that can handle translate intent, please install one to continue - Undo Translate - Translate server error - Disable sensitive content filtering - Display sensitive media in public channels on all your devices. - Installing app from apk file in chat is not available in the Play Store version of the app.\nPlease save it manually and install from File Manager. - In Message - Login via sms is currently disabled for any 3rd TELEOFFICIAL client due to TELEOFFICIAL\'s policy.\nWe apologize for any inconvenience caused. - diff --git a/TMessagesProj/src/main/res/values-zh/strings_nullgram.xml b/TMessagesProj/src/main/res/values-zh/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-zh/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-zh/strings_nnngram.xml index c1b687dd9a..e49c4d1906 100644 --- a/TMessagesProj/src/main/res/values-zh/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values-zh/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram 推送服务 - Nullgram 设置 + Nnngram + Nnngram 推送服务 + Nnngram 设置 官方频道 聊天 实验性功能 @@ -10,7 +10,7 @@ 查看源代码 类别 关于 - NullgramClient + NnngramClient 无可用更新 新更新可用 发布变量无法自动匹配。\n请从GitHub 手动下载。 @@ -27,7 +27,7 @@ 无效访问令牌 二维码 登入 用另一个设备扫描二维码登录。 - Nullgram %1$s\n基于 Telegram %2$s + Nnngram %1$s\n基于 Telegram %2$s 限制原因 显示Bot API ID 隐藏群组贴纸包 @@ -70,7 +70,7 @@ 自动更新 正式版 预览版 (不稳定) - 更新 Nullgram + 更新 Nnngram 无更新 不再提示 关于应用更新 @@ -87,7 +87,7 @@ 检测到您的手机号码对任何人都可见。 这可能会导致政府控制的黑客找到您的真实身份,请关闭它! 检测到您没有被关闭“允许通过电话号码找到我”设置, 这可能会导致政府控制的黑客找到您的真实身份,请关闭它! 隐藏手机号码 - 对于Android 12及更高版本,您需要手动添加链接到验证链接以打开Nullgram 的 t.me 链接 + 对于Android 12及更高版本,您需要手动添加链接到验证链接以打开Nnngram 的 t.me 链接 应用链接未验证 显示精确数字 禁用跳转到下一个频道 @@ -106,7 +106,7 @@ 强制需确认以发送媒体消息 禁用即时相机 最后一次检查刚刚完成。 - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy 跳过链接确认 最近贴纸数量上限 设置最大最近贴纸数 @@ -165,7 +165,7 @@ 密码锁 未知设定 您必须先启用密码锁 - 在Nullgram设置中查看 + 在Nnngram设置中查看 隐藏后,您**仅**可以通过链接打开设置: 设置密码锁 更改密码锁 @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/TMessagesProj/src/main/res/values/strings.xml b/TMessagesProj/src/main/res/values/strings.xml index 32339f30e1..494e6c2910 100644 --- a/TMessagesProj/src/main/res/values/strings.xml +++ b/TMessagesProj/src/main/res/values/strings.xml @@ -1,7 +1,7 @@ - Nullgram - Nullgram Beta + Nnngram + Nnngram Beta English English English @@ -41,7 +41,7 @@ Open Fragment We\'re calling your phone **%1$s**.\n\nDon\'t accept the call, Telegram will process everything automatically. Calling your phone **%1$s** to dictate the code. - Nullgram will call you in %1$d:%2$02d + Nnngram will call you in %1$d:%2$02d Sending you an SMS in %1$d:%2$02d Calling you... Sending SMS... @@ -51,7 +51,7 @@ Didn\'t get the code? Send the code as an SMS Cancel account reset - Somebody with access to **%1$s** has requested to delete your Nullgram account and reset your 2-Step Verification password.\n\nIf this wasn\'t you, please enter the code we\'ve just sent you via SMS. You can also cancel this by *changing your phone number*. + Somebody with access to **%1$s** has requested to delete your Nnngram account and reset your 2-Step Verification password.\n\nIf this wasn\'t you, please enter the code we\'ve just sent you via SMS. You can also cancel this by *changing your phone number*. Reset account Since the account **%1$s** is active and protected by a password, we will delete it in 1 week for security purposes.\n\nYou can cancel this process at any time. You\'ll be able to reset your account in: @@ -132,7 +132,7 @@ Sorry, the payment was declined. Unable to reach payment server. Please check your internet connection and try again. Warning - Neither Nullgram, nor %1$s will have access to your credit card information. Credit card details will be handled only by the payment system, %2$s.\n\nPayments will go directly to the developer of %1$s. Nullgram cannot provide any guarantees, so proceed at your own risk. In case of problems, please contact the developer of %1$s or your bank. + Neither Nnngram, nor %1$s will have access to your credit card information. Credit card details will be handled only by the payment system, %2$s.\n\nPayments will go directly to the developer of %1$s. Nnngram cannot provide any guarantees, so proceed at your own risk. In case of problems, please contact the developer of %1$s or your bank. Password & Email Password Enter a password @@ -156,7 +156,7 @@ New Group yesterday No results - Welcome to Nullgram + Welcome to Nnngram No results found for \"%s\". Recently viewed HIDE @@ -246,7 +246,7 @@ Secret Photo Secret Video Secret GIF - %1$s is using an older version of Nullgram, so secret photos will be shown in compatibility mode.\n\nOnce %2$s updates Nullgram, photos with timers for 1 minute or less will start working in \'Tap and hold to view\' mode, and you will be notified whenever the other party takes a screenshot. + %1$s is using an older version of Nnngram, so secret photos will be shown in compatibility mode.\n\nOnce %2$s updates Nnngram, photos with timers for 1 minute or less will start working in \'Tap and hold to view\' mode, and you will be notified whenever the other party takes a screenshot. Messages Messages in %s Search @@ -362,11 +362,11 @@ This message was imported from another app. We can\'t guarantee it\'s real. Importing messages and media... **%d%%** Importing chat - Please keep Nullgram open\nuntil the import is completed. + Please keep Nnngram open\nuntil the import is completed. %1$s of %2$s Done Chat imported successfully! - Save space on your device by importing more chats to Nullgram. + Save space on your device by importing more chats to Nnngram. Importing messages and media... Importing stickers... Import messages and media to... @@ -404,7 +404,7 @@ Are you sure you want to leave **%1$s**? Sorry, you can\'t add this user to groups. Sorry, this group is full. - Sorry, if a person is no longer part of a group, you need to be in their Nullgram contacts in order to add them back.\n\nNote that they can still join via the group\'s invite link as long as they are not in the Removed Users list. + Sorry, if a person is no longer part of a group, you need to be in their Nnngram contacts in order to add them back.\n\nNote that they can still join via the group\'s invite link as long as they are not in the Removed Users list. Sorry, too many administrators in this group. Sorry, the target user has too many public groups or channels already. Please ask them to make one of their existing groups or channels private first. Sorry, the target user owns too many location-based groups. Please ask them to delete or transfer an existing one first. @@ -536,7 +536,7 @@ Switch on to hide the list of members in this group. Admins will remain visible. Telegram moderators will review your report. Thank you! Only channel administrators can see this list. - Anyone on Nullgram will be able to join your channel by following this link. + Anyone on Nnngram will be able to join your channel by following this link. You can add administrators to help you manage your channel. Tap and hold to remove admins. Do you want to join the channel \'%1$s\'? Sorry, this channel is private, so you can’t view its content. @@ -545,7 +545,7 @@ Unfortunately, you were banned from participating in public groups. Sorry, this chat is no longer accessible. Add %1$s to the channel? - Sorry, if a person is no longer part of a channel, you need to be in their Nullgram contacts in order to add them back.\n\nNote that they could still join via the channel\'s invite link as long as they are not in the Removed users list. + Sorry, if a person is no longer part of a channel, you need to be in their Nnngram contacts in order to add them back.\n\nNote that they could still join via the channel\'s invite link as long as they are not in the Removed users list. Sorry, you can\'t add this user to channels. Sorry, too many admins in this channel. Sorry, too many bots in this channel. @@ -1024,9 +1024,9 @@ sponsored recommended What are sponsored\nmessages? - Unlike other apps, Nullgram never uses your private data to target ads. You are seeing this message only because someone chose this public one-to-many channel as a space to promote their messages. This means that no user data is mined or analyzed to display ads, and every user viewing a channel on Nullgram sees the same sponsored message. - Unlike other apps, Nullgram doesn\'t track whether you tapped on a sponsored message and doesn\'t profile you based on your activity. We also prevent external links in sponsored messages to ensure that third parties can’t spy on our users. We believe that everyone has the right to privacy, and technological platforms should respect that. - Nullgram offers free and unlimited service to hundreds of millions of users, which involves significant server and traffic costs. In order to remain independent and stay true to its values, Nullgram developed a paid tool to promote messages with user privacy in mind. We welcome responsible advertisers at: + Unlike other apps, Nnngram never uses your private data to target ads. You are seeing this message only because someone chose this public one-to-many channel as a space to promote their messages. This means that no user data is mined or analyzed to display ads, and every user viewing a channel on Nnngram sees the same sponsored message. + Unlike other apps, Nnngram doesn\'t track whether you tapped on a sponsored message and doesn\'t profile you based on your activity. We also prevent external links in sponsored messages to ensure that third parties can’t spy on our users. We believe that everyone has the right to privacy, and technological platforms should respect that. + Nnngram offers free and unlimited service to hundreds of millions of users, which involves significant server and traffic costs. In order to remain independent and stay true to its values, Nnngram developed a paid tool to promote messages with user privacy in mind. We welcome responsible advertisers at: Ads should no longer be synonymous with abuse of user privacy. Let us redefine how a tech company should operate – together. Sponsored messages See https://telegram.org @@ -1050,7 +1050,7 @@ sending a video... recording a video... sending a file... - Got a question\nabout Nullgram? + Got a question\nabout Nnngram? Gallery Location Video @@ -1105,7 +1105,7 @@ Log in to %1$s as **%2$s** Allow **%1$s** to send me messages Cancel sending - Allow %1$s to pass your Nullgram name and id (not your phone number) to pages you open with this bot? + Allow %1$s to pass your Nnngram name and id (not your phone number) to pages you open with this bot? GROUP UNRELATED TO LOCATION? Report unrelated group Please let us know if this group is not related to this location:\n\n**%1$s** @@ -1118,7 +1118,7 @@ ADD CONTACT ADD %1$s TO CONTACTS VIEW CONTACT - Do you want to block **%1$s** from messaging and calling you on Nullgram? + Do you want to block **%1$s** from messaging and calling you on Nnngram? Do you want to block messages from **%1$s**? Are you sure you want to report spam from this user? Are you sure you want to report spam from this group? @@ -1177,7 +1177,7 @@ Please enter any additional details relevant to your report. Additional details... Send Report - Nullgram moderators will study your report.\nThank you for your cooperation! + Nnngram moderators will study your report.\nThank you for your cooperation! Spam Fake Account Violence @@ -1285,7 +1285,7 @@ URL Map Preview Provider Map preview provider - Nullgram + Nnngram Google Yandex No previews @@ -1477,15 +1477,15 @@ %1$s removed %3$s from the group %2$s %1$s removed you from the group %2$s %1$s left the group %2$s - %1$s joined Nullgram! - %1$s,\nWe detected a login into your account from a new device on %2$s\n\nDevice: %3$s\nLocation: %4$s\n\nIf this wasn\'t you, you can go to Settings - Privacy and Security - Sessions and terminate that session.\n\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Privacy and Security settings.\n\nSincerely,\nThe Nullgram Team + %1$s joined Nnngram! + %1$s,\nWe detected a login into your account from a new device on %2$s\n\nDevice: %3$s\nLocation: %4$s\n\nIf this wasn\'t you, you can go to Settings - Privacy and Security - Sessions and terminate that session.\n\nIf you think that somebody logged in to your account against your will, you can enable two-step verification in Privacy and Security settings.\n\nSincerely,\nThe Nnngram Team %1$s updated profile photo %1$s joined to the group %2$s via invite link %1$s sent %3$s to the group %2$s %1$s sent an album to the group %2$s %1$s forwarded %3$s to the group %2$s - Nullgram - Nullgram + Nnngram + Nnngram User New message Reply @@ -1550,7 +1550,7 @@ %1$s pinned a live location %1$s pinned a GIF %1$s pinned an audio file - Nullgram + Nnngram Select Contact Select Contacts @@ -1558,7 +1558,7 @@ Share Contact Add Contact No contacts yet - Hey, I\'m using Nullgram to chat. Join me! Download it here: %1$s + Hey, I\'m using Nnngram to chat. Join me! Download it here: %1$s at yesterday at at %1$s @@ -1579,17 +1579,17 @@ last seen within a month last seen a long time ago New Message - Select contacts to invite them to Nullgram - INVITE TO NULLGRAM - Share Nullgram... + Select contacts to invite them to Nnngram + INVITE TO Nnngram + Share Nnngram... Update contacts? - Nullgram has detected many unsynced contacts, would you like to sync them now? Choose \'OK\' if you\'re using your own device, SIM card and Google account. + Nnngram has detected many unsynced contacts, would you like to sync them now? Choose \'OK\' if you\'re using your own device, SIM card and Google account. Sorted by name Sorted by last seen time Add %1$s Phone number - You have no contacts on Nullgram yet - Invite friends to try Nullgram + You have no contacts on Nnngram yet + Invite friends to try Nnngram Find people nearby to chat with Search people by username New contact @@ -1672,16 +1672,16 @@ Share contact Add to contacts Add Contact - Invite to Nullgram - %1$s is not on Nullgram yet, would you like to invite them to join? + Invite to Nnngram + %1$s is not on Nnngram yet, would you like to invite them to join? Invite BLOCK BLOCK AND DELETE REPLIES Block user Block user Block users - Do you want to block **%1$s** from messaging and calling you on Nullgram? - Do you want to block **%1$s** from messaging and calling you on Nullgram? + Do you want to block **%1$s** from messaging and calling you on Nnngram? + Do you want to block **%1$s** from messaging and calling you on Nnngram? User blocked User unblocked Edit contact @@ -1711,7 +1711,7 @@ If you set a timer, the photo will self-destruct after it was viewed. If you set a timer, the video will self-destruct after it was viewed. Off - This image and text were derived from the encryption key for this secret chat with **%1$s**.\n\nIf they look the same on **%2$s\'s** device, end-to-end encryption is guaranteed.\n\nLearn more at Nullgram.org + This image and text were derived from the encryption key for this secret chat with **%1$s**.\n\nIf they look the same on **%2$s\'s** device, end-to-end encryption is guaranteed.\n\nLearn more at Nnngram.org https://telegram.org/faq#secret-chats Unknown Unknown @@ -1751,7 +1751,7 @@ A username must have at least 5 characters.\nHowever, it is currently available for purchase. **Learn more…** The username must not exceed 32 characters. Sorry, a username can\'t start with a number. - You can choose a username on **Nullgram**. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use **a–z**, **0–9** and underscores. Minimum length is **5** characters. + You can choose a username on **Nnngram**. If you do, other people will be able to find you by this username and contact you without knowing your phone number.\n\nYou can use **a–z**, **0–9** and underscores. Minimum length is **5** characters. This link opens a chat with you:\n%1$s Checking username... %1$s is available. @@ -1865,7 +1865,7 @@ No reactions found No masks yet Emoji suggestions - **Nullgram** lets you find emoji by thousands of keywords, but there is always something missing. If you want to suggest a new emoji replacement, you can help us by visiting: + **Nnngram** lets you find emoji by thousands of keywords, but there is always something missing. If you want to suggest a new emoji replacement, you can help us by visiting: https://translations.telegram.org/%1$s/emoji Masks You can add masks to photos you send. To do this, open the photo editor before sending a photo. @@ -1915,7 +1915,7 @@ Sorry, this link is already taken. Importing stickers Stickers imported successfully! - Import more stickers to Nullgram and share them with your friends. + Import more stickers to Nnngram and share them with your friends. Theme Auto-Night Mode @@ -1970,7 +1970,7 @@ New Theme Edit Theme Tap on the palette icon to view the list of elements on each screen - and edit them. - You can create your own theme by changing colors within the app.\n\nYou can always switch back to the default Nullgram theme here. + You can create your own theme by changing colors within the app.\n\nYou can always switch back to the default Nnngram theme here. You can use a-z, 0-9 and underscores.\nMinimum length is 5 characters. Your theme will be updated for all users each time you change it. Anyone can install it using this link:\n%1$s Anyone can install your theme using this link. When you change the theme, it will be updated for all users who installed it.\n\nThe theme will be based on your currently selected theme and wallpaper. @@ -2071,7 +2071,7 @@ Notifications and Sounds Custom Notifications Popup notifications - New messages from this contact will appear on your screen when you are not using Nullgram. + New messages from this contact will appear on your screen when you are not using Nnngram. LED Color Blue @@ -2161,7 +2161,7 @@ Messages Send by Enter Events - Contact joined Nullgram + Contact joined Nnngram Pinned Messages Translate Messages Show Translate Button @@ -2186,12 +2186,12 @@ Unofficial languages There is no such language. You are already using this language pack (**%1$s**). You can change your language at any time in Settings. - Unfortunately, this custom language pack (**%1$s**) doesn\'t contain data for Nullgram Android. - Please note that Nullgram Support is done by volunteers. We try to respond as quickly as possible, but it may take a while.\n\nPlease take a look at the Nullgram FAQ]]>: it has answers to most questions and important tips for troubleshooting]]>. + Unfortunately, this custom language pack (**%1$s**) doesn\'t contain data for Nnngram Android. + Please note that Nnngram Support is done by volunteers. We try to respond as quickly as possible, but it may take a while.\n\nPlease take a look at the Nnngram FAQ]]>: it has answers to most questions and important tips for troubleshooting]]>. Ask a volunteer - Nullgram FAQ - Nullgram FAQ - Nullgram Features + Nnngram FAQ + Nnngram FAQ + Nnngram Features https://t.me/TelegramTips Add Account Select Account @@ -2206,7 +2206,7 @@ Keep-Alive Service Relaunch app when shut down. Enable for reliable notifications. Background Connection - Keep a low impact background connection to Nullgram for reliable notifications. + Keep a low impact background connection to Nnngram for reliable notifications. Sort By Import Contacts First name @@ -2294,14 +2294,14 @@ Urgent Never Repeat Notifications - You can change your Nullgram number here. Your account and all your cloud data — messages, media, contacts, etc. will be moved to the new number. + You can change your Nnngram number here. Your account and all your cloud data — messages, media, contacts, etc. will be moved to the new number. Users will see your new number if they have it in their address book or your privacy settings allow them to see it. You can modify this in Settings > Privacy and Security > Phone number. Change Number Change number Keep %1$s New Number We will send an SMS with a confirmation code to your new number. - The number %1$s is already connected to a Nullgram account. Please delete that account before migrating to the new number. + The number %1$s is already connected to a Nnngram account. Please delete that account before migrating to the new number. Other Disabled Enabled @@ -2329,7 +2329,7 @@ Sound Alert Frequency %1$s within %2$s Link Previews - Link previews will be generated on Nullgram servers. We do not store data about the links you send. + Link previews will be generated on Nnngram servers. We do not store data about the links you send. Secret chats In-App Browser Open external links within the app @@ -2338,7 +2338,7 @@ Emoji Large Emoji Use system default emoji - Nullgram for Android %1$s + Nnngram for Android %1$s Debug Menu Send Logs Send Last Logs @@ -2390,10 +2390,10 @@ MTProto Proxy The proxy you are using is not configured correctly and will be disabled. Please find another one. Proxy sponsor - This channel is shown by your proxy server. To remove this channel from your chat list, disable the proxy in Nullgram Settings. + This channel is shown by your proxy server. To remove this channel from your chat list, disable the proxy in Nnngram Settings. SOCKS5 proxy settings. MTProto proxy settings. - This proxy may display a sponsored channel in your chat list. This doesn\'t reveal any of your Nullgram traffic. + This proxy may display a sponsored channel in your chat list. This doesn\'t reveal any of your Nnngram traffic. Use proxy for calls Proxy servers may degrade the quality of your calls. Enable @@ -2411,7 +2411,7 @@ up to %1$s Streaming Stream Videos and Audio Files - Some videos can\'t be streamed – e.g., all videos that were sent from Android using Nullgram 4.7 and earlier versions.\n + Some videos can\'t be streamed – e.g., all videos that were sent from Android using Nnngram 4.7 and earlier versions.\n Tap to change phone number Appearance Stickers and Masks @@ -2432,7 +2432,7 @@ Tap to change Alternative options Add another account - Connect other Nullgram accounts and easily switch between them. + Connect other Nnngram accounts and easily switch between them. Set a Passcode Lock the app with a passcode so that others can\'t open it. Clear Cache @@ -2463,8 +2463,8 @@ Auth successfull https://getdesktop.telegram.org/ https://web.telegram.org/ - Download Nullgram on your computer from *getdesktop.telegram.org*. - Run Nullgram Desktop to get the QR code. + Download Nnngram on your computer from *getdesktop.telegram.org*. + Run Nnngram Desktop to get the QR code. Scan the QR code to connect your account. This code can be used to allow someone to log in to your Telegram account.\n\nTo confirm Telegram login, please go to Settings > Devices > Scan QR and scan the code. **Telegram** needs camera access so that you can scan QR codes. Tap Settings -> Permissions, and turn **Camera** on. @@ -2506,7 +2506,7 @@ Channel title updated. Channel description updated. Is %1$s still your number? - Keep your number up to date to ensure you can always log into Nullgram. **Learn more** + Keep your number up to date to ensure you can always log into Nnngram. **Learn more** https://telegram.org/faq#q-i-have-a-new-phone-number-what-do-i-do Yes No @@ -2538,17 +2538,17 @@ Voice messages Video messages - Nullgram Passport + Nnngram Passport Requested Information Provided Information - What is Nullgram Passport? - With Nullgram Passport you can easily sign up for websites and services that require identity verification.\n\nYour information, personal data, and documents are protected by end-to-end encryption. Nobody, including Nullgram, can access them without your permission.\n\nYou can visit our *FAQ* to learn more. + What is Nnngram Passport? + With Nnngram Passport you can easily sign up for websites and services that require identity verification.\n\nYour information, personal data, and documents are protected by end-to-end encryption. Nobody, including Nnngram, can access them without your permission.\n\nYou can visit our *FAQ* to learn more. https://telegram.org/faq#passport - Please create a password to secure your personal data with end-to-end encryption.\n\nThis password will also be required whenever you log in to Nullgram on a new device. + Please create a password to secure your personal data with end-to-end encryption.\n\nThis password will also be required whenever you log in to Nnngram on a new device. CREATE A PASSWORD - Delete Nullgram Passport - Delete Nullgram passport - Are you sure you want to delete your Nullgram Passport? + Delete Nnngram Passport + Delete Nnngram passport + Are you sure you want to delete your Nnngram Passport? Please use latin characters only. Upload scans of a certified English translation of your passport. Upload scans of a certified English translation of your internal passport. @@ -2584,8 +2584,8 @@ Delete phone number? Enter your phone number Use %1$s - Use the same phone number as on Nullgram. - Use the same email as on Nullgram. + Use the same phone number as on Nnngram. + Use the same email as on Nnngram. Or enter a new phone number Note: You will receive a confirmation code on the phone number you provide. Email @@ -2596,7 +2596,7 @@ Please enter the confirmation code we\'ve just sent to %1$s. Please enter your password to access your personal data. **%1$s** requests access to your personal data to sign you up for their services. - Please enter your Nullgram Password to decrypt your data. + Please enter your Nnngram Password to decrypt your data. You accept the *%1$s Privacy Policy* and allow their @%2$s to send you messages. You are sending your documents directly to %1$s and allowing their @%2$s to send you messages. AUTHORIZE @@ -2728,7 +2728,7 @@ Active Sessions Current session No other active sessions - You can log in to Nullgram from other mobile, tablet and desktop devices, using the same phone number. All your data will be instantly synchronized. + You can log in to Nnngram from other mobile, tablet and desktop devices, using the same phone number. All your data will be instantly synchronized. Active sessions Control your sessions on other devices. Terminate this session? @@ -2741,18 +2741,18 @@ Terminate All Other Sessions unofficial app No active logins. - You can log in on websites that support signing in with Nullgram. + You can log in on websites that support signing in with Nnngram. Connected websites - Logged in with Nullgram - Tap to disconnect from your Nullgram account. + Logged in with Nnngram + Tap to disconnect from your Nnngram account. Are you sure you want to disconnect %1$s? Disconnect website Disconnect websites Disconnect Block %1$s Disconnect All Websites - Are you sure you want to disconnect all websites where you used Nullgram to log in? - You can log in on websites that support signing in with Nullgram. + Are you sure you want to disconnect all websites where you used Nnngram to log in? + You can log in on websites that support signing in with Nnngram. Incomplete login attempts The devices above have no access to your messages. The code was entered correctly, but no correct password was given. @@ -2862,7 +2862,7 @@ Enter your current passcode Enter a passcode Enter your new passcode - Enter your Nullgram passcode + Enter your Nnngram passcode Re-enter your new passcode Passcodes do not match Auto-lock @@ -2877,7 +2877,7 @@ App Content in Task Switcher Show Content If disabled, you won\'t be able to take screenshots in the app but chat content will be hidden in the task switcher. - This will hide the contents of your chats or chat list from the task switcher, but you will not be able to take screenshots on Nullgram.\n\nYou may need to restart the app for this to take effect. + This will hide the contents of your chats or chat list from the task switcher, but you will not be able to take screenshots on Nnngram.\n\nYou may need to restart the app for this to take effect. Too many tries.\nPlease try again in %1$s. January @@ -3207,7 +3207,7 @@ Please add your valid email. It is the only way to recover a forgotten password. Skip Warning - No, seriously.\n\nIf you forget your password, you will lose access to your Nullgram account. There will be no way to restore it. + No, seriously.\n\nIf you forget your password, you will lose access to your Nnngram account. There will be no way to restore it. Almost there! Please check your email (don\'t forget the spam folder) to complete Two-Step Verification setup. Success! @@ -3228,7 +3228,7 @@ NO Cancel reset Abort setup - Warning! All data saved in your Nullgram Passport will be lost! + Warning! All data saved in your Nnngram Passport will be lost! Password Hint You can create an optional hint for your password. Hint @@ -3368,8 +3368,8 @@ Phone Number Who can see my phone number? Who can find me by my number? - Users who have your number saved in their contacts will also see it on Nullgram. - Users who add your number to their contacts will see it on Nullgram only if they are your contacts. + Users who have your number saved in their contacts will also see it on Nnngram. + Users who add your number to their contacts will see it on Nnngram only if they are your contacts. You can add users or entire groups as exceptions that will override the settings above. Forwarded Messages Link to your account @@ -3386,11 +3386,11 @@ Clear Payment and Shipping Info Clear payment info Are you sure you want to clear your payment and shipping info? - Delete your shipping info and instruct all payment providers to remove your saved credit cards? Note that Nullgram never stores your credit card data. + Delete your shipping info and instruct all payment providers to remove your saved credit cards? Note that Nnngram never stores your credit card data. Payment info cleared. Shipping info cleared. Payment and shipping info cleared. - Websites where you used Nullgram to log in. + Websites where you used Nnngram to log in. Shipping info Payment info Delete All Cloud Drafts @@ -3449,7 +3449,7 @@ Sorry, you can\'t add some of these users to groups because of their privacy settings. Sorry, you can\'t add these users to groups because of their privacy settings. Sorry, you can\'t create a group with these users because of their privacy settings. - Disabling peer-to-peer will relay all calls through Nullgram servers to avoid revealing your IP address, but may slightly decrease audio quality. + Disabling peer-to-peer will relay all calls through Nnngram servers to avoid revealing your IP address, but may slightly decrease audio quality. Delete Synced Contacts Suggest Frequent Contacts Display people you message frequently at the top of the search section for quick access. @@ -3459,7 +3459,7 @@ Exceptions None Delete contacts - This will remove your contacts from the Nullgram servers.\n\nIf \'**Sync Contacts**\' is enabled, contacts will be re-synced. + This will remove your contacts from the Nnngram servers.\n\nIf \'**Sync Contacts**\' is enabled, contacts will be re-synced. Sending video... Sending GIF... @@ -3609,7 +3609,7 @@ Rental Agreement Phone Number Email Address - This message is not supported on your version of Nullgram. Update the app to view: https://telegram.org/update + This message is not supported on your version of Nnngram. Update the app to view: https://telegram.org/update Photo Video Self-Destructing Photo @@ -3651,7 +3651,7 @@ Update Telegram Sorry, your Telegram app is out of date and can\'t handle this request. Please update Telegram. Invalid phone number. Please check the number and try again. - Please log in to your Nullgram account to use Nullgram Passport. + Please log in to your Nnngram account to use Nnngram Passport. This phone number is banned. Code expired, please retry login. Wrong code @@ -3672,7 +3672,7 @@ You don\'t have a video player, please install one to continue Please send an email describing your problem to sms@telegram.org You don\'t have applications that can handle the file type \'%1$s\', please install one to continue - This user does not have Nullgram yet, send an invitation? + This user does not have Nnngram yet, send an invitation? Are you sure? Add bot Do you want to add **%1$s** to the group **%2$s**? @@ -3696,7 +3696,7 @@ Do you want to send this message to **%1$s**? Do you want to share this game to **%1$s**? Do you want to send this contact to **%1$s**? - Are you sure you want to log out?\n\nNote that you can seamlessly use Nullgram on all your devices at once.\n\nRemember, logging out kills all your Secret Chats. + Are you sure you want to log out?\n\nNote that you can seamlessly use Nnngram on all your devices at once.\n\nRemember, logging out kills all your Secret Chats. Delete %1$s Clear %1$s Empty cache for %1$s @@ -3754,16 +3754,16 @@ Do you want to send this message to **%1$s**? Do you want to share this game to **%1$s**? Do you want to send this contact to **%1$s**? - There is no Nullgram account with this username. - There is no Nullgram account with this phone number. + There is no Nnngram account with this username. + There is no Nnngram account with this phone number. This bot can\'t join groups. - Would you like to enable extended link previews in Secret Chats? Note that link previews are generated on Nullgram servers. + Would you like to enable extended link previews in Secret Chats? Note that link previews are generated on Nnngram servers. Please note that inline bots are provided by third-party developers. For the bot to work, the symbols you type after the bot\'s username are sent to the respective developer. Sorry, you can\'t edit this message. - Please allow Nullgram to receive calls so that we can automatically enter your code for you. - Please allow Nullgram to receive calls and read the call log so that we can automatically enter your code for you. - Please allow Nullgram to read the call log so that we can automatically enter your code for you. - Please allow Nullgram to receive calls so that we can automatically confirm your phone number. + Please allow Nnngram to receive calls so that we can automatically enter your code for you. + Please allow Nnngram to receive calls and read the call log so that we can automatically enter your code for you. + Please allow Nnngram to read the call log so that we can automatically enter your code for you. + Please allow Nnngram to receive calls so that we can automatically confirm your phone number. Sorry, you are not allowed to do this. Sorry, you can\'t add this user or bot to groups because you\'ve blocked them. Please unblock to proceed. JOIN GROUP @@ -3796,8 +3796,8 @@ Age Verification Privacy Policy and Terms of Service Tap Agree to confirm that you are %1$s or over. - We\'re very sorry, but this means we must part ways here. Unlike others, we don\'t use your data for ad targeting or other commercial purposes. Nullgram only stores the information it needs to function as a feature-rich cloud service. You can adjust how we use your data (e.g., delete synced contacts) in Privacy & Security settings.\n\nBut if you\'re generally not OK with Nullgram\'s modest needs, it won\'t be possible for us to provide this service. You can deactivate your account now — or look around some more and deactivate it later if you feel you\'re not happy with the way we use your data. - Warning, this will irreversibly delete your Nullgram account along with all the data you store in the Nullgram cloud.\n\nImportant: You can Cancel now and export your data before deleting your account instead of losing it all. (To do this, open the latest version of Nullgram Desktop and go to Settings > Export Nullgram Data.) + We\'re very sorry, but this means we must part ways here. Unlike others, we don\'t use your data for ad targeting or other commercial purposes. Nnngram only stores the information it needs to function as a feature-rich cloud service. You can adjust how we use your data (e.g., delete synced contacts) in Privacy & Security settings.\n\nBut if you\'re generally not OK with Nnngram\'s modest needs, it won\'t be possible for us to provide this service. You can deactivate your account now — or look around some more and deactivate it later if you feel you\'re not happy with the way we use your data. + Warning, this will irreversibly delete your Nnngram account along with all the data you store in the Nnngram cloud.\n\nImportant: You can Cancel now and export your data before deleting your account instead of losing it all. (To do this, open the latest version of Nnngram Desktop and go to Settings > Export Nnngram Data.) To let you connect with friends across all your devices, your contacts will be continuously synced with Telegram\'s heavily encrypted cloud servers. **Telegram** needs storage access so you can send and save photos, videos, music and other media. Tap Settings -> Permissions, and turn **Files and media** on. @@ -3815,8 +3815,8 @@ Telegram needs access to draw above other apps to play videos in Picture-in-Picture mode. Overlay mode lets you use push-to-talk and see who is talking even when you are outside of Telegram. SETTINGS - Please allow Nullgram to be shown on the lock screen so that calls can work properly. - To share your live location in this chat, Nullgram needs access to your location all the time, including while the app is in the background.\n\nWe will access your location only for the duration you choose, and you can stop sharing it any time. We won\'t use your location for any purpose other than sharing it in this chat. + Please allow Nnngram to be shown on the lock screen so that calls can work properly. + To share your live location in this chat, Nnngram needs access to your location all the time, including while the app is in the background.\n\nWe will access your location only for the duration you choose, and you can stop sharing it any time. We won\'t use your location for any purpose other than sharing it in this chat. Picture-in-Picture Voice Chat Overlay @@ -3836,14 +3836,14 @@ Notifications Device storage %s Free - Clear Nullgram Cache + Clear Nnngram Cache Overview Views Per Post Shares Per Post Enabled Notifications Clear Local Database - %s Nullgram Cache - %s Nullgram Local Database + %s Nnngram Cache + %s Nnngram Local Database %s freed on your device! %s Other Data Group members @@ -3902,7 +3902,7 @@ Message Statistic Open Message - Nullgram + Nnngram Fast Free Secure @@ -3928,9 +3928,9 @@ Failed to connect Ringing Line busy - Nullgram Call - Nullgram Video Call - Ongoing Nullgram call + Nnngram Call + Nnngram Video Call + Ongoing Nnngram call Ongoing Voice Chat Ongoing Live Stream End call @@ -3942,7 +3942,7 @@ Leave voice chat in **%1$s** and call **%2$s**? Voice calls Ringtone - You can customize the ringtone used when this contact calls you on Nullgram. + You can customize the ringtone used when this contact calls you on Nnngram. Calls Delete all calls Delete calls @@ -3982,7 +3982,7 @@ Your recent voice and video calls\nwill appear here. **%1$s**\'s app is using an incompatible protocol. They need to update their app before you can call them. **%1$s**\'s app does not support calls. They need to update their app before you can call them. - Sorry, **%1$s** is using an old version of Nullgram that doesn\'t support video calls. + Sorry, **%1$s** is using an old version of Nnngram that doesn\'t support video calls. Make a voice call Please rate the quality of your Telegram call **Telegram** needs microphone access so that you can make calls. Tap Settings -> Permissions, and turn **Microphone** on. @@ -3993,8 +3993,8 @@ Call Again Default Do you want to delete this entry from the calls log? - Nullgram Call - Nullgram Video Call + Nnngram Call + Nnngram Video Call Earpiece Headset Speaker @@ -4012,16 +4012,16 @@ Thank you for your feedback. answering as %s Respond with Text - These quick responses will be available when you respond to an incoming call with a Nullgram message. Change them to say anything you like. + These quick responses will be available when you respond to an incoming call with a Nnngram message. Change them to say anything you like. Can\'t talk now. What\'s up? I\'ll call you right back. I\'ll call you later. Can\'t talk now. Call me later? Custom Message... Allow Custom - Nullgram Call to %s - Nullgram Video Call to %s - Can\'t place a Nullgram call at the moment. + Nnngram Call to %s + Nnngram Video Call to %s + Can\'t place a Nnngram call at the moment. I heard my own voice I heard background noise The other side kept disappearing @@ -4261,8 +4261,8 @@ Enabled Disabled Video is only available\nfor the first %1$s - The video chat has over %1$s.\nNew participants must use the latest version of Nullgram to view video. - The live stream is over %1$s.\nNew participants must use the latest version of Nullgram to view video. + The video chat has over %1$s.\nNew participants must use the latest version of Nnngram to view video. + The live stream is over %1$s.\nNew participants must use the latest version of Nnngram to view video. AUDIO ONLY PORTRAIT VIDEO LANDSCAPE VIDEO @@ -4275,8 +4275,8 @@ Manage Invite Links You can create additional invite links that have a limited time or number of uses - Anyone on Nullgram will be able to join your group by following this link. - Anyone on Nullgram will be able to join your channel by following this link. + Anyone on Nnngram will be able to join your group by following this link. + Anyone on Nnngram will be able to join your channel by following this link. Edit link Save Link No limit @@ -4307,7 +4307,7 @@ Delete All Revoked Links No one joined Limit reached - Everyone on Nullgram can scan this code to join your group. + Everyone on Nnngram can scan this code to join your group. This will delete link. This will delete all revoked links. You can generate invite links that expire after they are used. @@ -4402,18 +4402,18 @@ %1$d online %1$d online %1$d online - %1$d contacts on Nullgram - %1$d contact on Nullgram - %1$d contacts on Nullgram - %1$d contacts on Nullgram - %1$d contacts on Nullgram - %1$d contacts on Nullgram - Hey, I\'m using Nullgram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s - Hey, I\'m using Nullgram to chat – and so are %1$d of our other contact. Join us! Download it here: %2$s - Hey, I\'m using Nullgram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s - Hey, I\'m using Nullgram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s - Hey, I\'m using Nullgram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s - Hey, I\'m using Nullgram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s + %1$d contacts on Nnngram + %1$d contact on Nnngram + %1$d contacts on Nnngram + %1$d contacts on Nnngram + %1$d contacts on Nnngram + %1$d contacts on Nnngram + Hey, I\'m using Nnngram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s + Hey, I\'m using Nnngram to chat – and so are %1$d of our other contact. Join us! Download it here: %2$s + Hey, I\'m using Nnngram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s + Hey, I\'m using Nnngram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s + Hey, I\'m using Nnngram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s + Hey, I\'m using Nnngram to chat – and so are %1$d of our other contacts. Join us! Download it here: %2$s %1$d people joined %1$d people joined %1$d people joined @@ -5333,7 +5333,7 @@ Do you want to apply the new theme for this chat? Apply Discard - Optimizing Nullgram... + Optimizing Nnngram... This may take a while, depending on the size of the database. Please keep the app open until the process is finished. Sorry for the inconvenience. Do No Set Theme @@ -5452,12 +5452,12 @@ Accept Secret Chats Use this device for Secret Chats Terminate Session - Link *Nullgram Desktop* or *Nullgram Web* by scanning the QR. + Link *Nnngram Desktop* or *Nnngram Web* by scanning the QR. Link Desktop Device Automatically terminate old sessions if inactive for Go to *getdesktop.telegram.org* or *web.telegram.org* to get a QR code - The official Nullgram app is available for Android, iPhone, iPad, Windows, macOS and Linux. + The official Nnngram app is available for Android, iPhone, iPad, Windows, macOS and Linux. Migrate old folder to Scoped Storage Select this day No messages for this day diff --git a/TMessagesProj/src/main/res/values/strings_nullgram.xml b/TMessagesProj/src/main/res/values/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values/strings_nullgram.xml rename to TMessagesProj/src/main/res/values/strings_nnngram.xml index 0d79130a87..4316c18715 100644 --- a/TMessagesProj/src/main/res/values/strings_nullgram.xml +++ b/TMessagesProj/src/main/res/values/strings_nnngram.xml @@ -1,8 +1,8 @@ - Nullgram - Nullgram Push Service - Nullgram Settings + Nnngram + Nnngram Push Service + Nnngram Settings Official Channel Chat Experiment @@ -10,7 +10,7 @@ View Source Code Categories About - NullgramClient + NnngramClient No Update. New Update Available Release variants fail to match automatically.\nPlease download manually from GitHub. @@ -27,7 +27,7 @@ Invalid access token QR Login Scan QRCode with another device to login. - Nullgram %1$s\nBased on Telegram %2$s + Nnngram %1$s\nBased on Telegram %2$s Restriction reason Show Bot API ID Hide Group Sticker Pack @@ -70,7 +70,7 @@ Automatic Update Stable Preview (Unstable) - Update Nullgram + Update Nnngram No Update Don\'t remind again About application updates @@ -87,7 +87,7 @@ It is detected that your mobile phone number is visible to anyone, which may cause government-controlled hackers to find your true identity, please turn it off! It is detected that you are not turned off the \"Allow find me through phone number\" Setting, which may cause a government-controlled hacker to find your true identity, please turn it off! Hide phone number - For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nullgram + For Android 12 and newer, you need to manually add link to verified links in order to open t.me links in Nnngram App links not verified Show Exact Number Disable Jump to Next Channel @@ -106,7 +106,7 @@ Confirm To Send Media Messages Disable Instant Camera Last successfully checked just now. - https://github.com/qwq233/Nullgram/wiki/Privacy-Policy + https://github.com/qwq233/Nnngram/wiki/Privacy-Policy Skip Open Link Confirm Max Recent Sticker Set Max Recent Sticker @@ -165,7 +165,7 @@ Passcode Unknown Settings You have to enable passcode lock first - Show in Nullgram Settings + Show in Nnngram Settings After hiding, you can **ONLY** open settings by link: Set passcode Change passcode @@ -213,7 +213,7 @@ Disable sticker packs auto-reorder Ban Auto Disable Built-In Proxy - It will automatically turn off the built-in proxy when Nullgram detected you turn on the VPN + It will automatically turn off the built-in proxy when Nnngram detected you turn on the VPN Connect to Telegram through WebSocket via Cloudflare.\nProvided by Nekogram Provided by Nekogram X Enable TLS diff --git a/build.gradle.kts b/build.gradle.kts index e820d18126..d7c1352622 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -25,7 +25,7 @@ val verName = if (Version.isStable) { val androidTargetSdkVersion by extra(33) val androidMinSdkVersion by extra(24) val androidCompileSdkVersion by extra(33) -val androidBuildToolsVersion by extra("33.0.0") +val androidBuildToolsVersion by extra("33.0.1") val androidCompileNdkVersion = "21.4.7075529" fun Project.configureBaseExtension() { diff --git a/buildSrc/src/main/kotlin/ReplaceIcon.kt b/buildSrc/src/main/kotlin/ReplaceIcon.kt deleted file mode 100644 index 7c6ec0dcb2..0000000000 --- a/buildSrc/src/main/kotlin/ReplaceIcon.kt +++ /dev/null @@ -1,38 +0,0 @@ - -import org.gradle.api.DefaultTask -import org.gradle.api.tasks.TaskAction -import java.io.File -import java.math.BigInteger -import java.security.MessageDigest -import kotlin.random.Random - -abstract class ReplaceIcon : DefaultTask() { - @TaskAction - fun run() { - val iconsDir = File(project.projectDir, "icons") - val iconFileDirs = listOf( - File(iconsDir, "anime"), - ) - val fileCount = iconFileDirs.fold(0) { i: Int, file: File -> - i + file.listFiles()!!.size - } - val md5 = MessageDigest.getInstance("MD5") - val arrays = md5.digest(Common.getGitHeadRefsSuffix(project.rootProject).toByteArray(Charsets.UTF_8)) - val bigInteger = BigInteger(1, arrays) - var number = Random(bigInteger.toInt()).nextInt(fileCount) - - //for (aNumber in 0..fileCount) { - //var number = aNumber - var iconFile: File? = null - for (iconFileDir in iconFileDirs) { - if (number < iconFileDir.listFiles()!!.size) { - iconFile = iconFileDir.listFiles()!![number] - break - } - number -= iconFileDir.listFiles()!!.size - } - println("Select Icon: $iconFile") - iconFile!!.copyTo(File(project.projectDir, "src/main/res/drawable/icon.png"), true) - //} - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts index 8c961cf5d8..d04f0f734f 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,7 +18,7 @@ dependencyResolutionManagement { } } -rootProject.name = "Nullgram" +rootProject.name = "Nnngram" include( ":TMessagesProj", ":tcp2ws", From fd2cac710c87dd19a76cc38c69b3af0054b0e789 Mon Sep 17 00:00:00 2001 From: Next Alone <12210746+NextAlone@users.noreply.github.com> Date: Sun, 19 Feb 2023 01:05:01 +0800 Subject: [PATCH 07/25] revert: enable obfuscate --- TMessagesProj/proguard-dic.txt | 65 ------------ TMessagesProj/proguard-rules.pro | 170 +++++++++++++++---------------- 2 files changed, 84 insertions(+), 151 deletions(-) delete mode 100644 TMessagesProj/proguard-dic.txt diff --git a/TMessagesProj/proguard-dic.txt b/TMessagesProj/proguard-dic.txt deleted file mode 100644 index cd3784006c..0000000000 --- a/TMessagesProj/proguard-dic.txt +++ /dev/null @@ -1,65 +0,0 @@ -你说得对 -但是原神是由米哈游自主研发的一款全新开放世界冒险游戏 -游戏发生在一个被称作提瓦特的幻想世界 -在这里被神选中的人将被授予神之眼 -导引元素之力 -你将扮演一位名为旅行者的神秘角色 -在自由的旅行中邂逅性格各异能力独特的同伴们 -和他们一起击败强敌 -找回失散的亲人同时 -逐步发掘原神的真相 -但是烟神 -是由丁真珍珠自主研发的一款全新开放世界冒险游戏 -游戏发生在一个被称作理塘的幻想世界 -被神选中的人将被授予电子烟 -引导尼古丁之力 -你将扮演一位名为芙蓉王的神秘角色 -在自由的旅行中邂逅性格各异能力独特的动物朋友 -和它们一起击败强敌 -找回不存在的亲人的同时 -逐步发掘理塘的真相 -但是命运二 -是由棒鸡自主研发的一款全新开放世界冒险游戏 -游戏发生在一个被称作太阳系的幻想世界 -被旅行者选中的人将被授予机灵 -导引光能之力 -你将扮演一位名为守护者的神秘角色 -阻止暗影的侵袭同时 -逐步发掘光能与暗影的真相 -但是贴吧 -是由百度自主研发的一款全新嘴炮论坛喷人平台 -贴吧含有一个被称作孙笑川吧的贴吧世界 -被吧主选中的人将被授予米线 -引导团建之力 -你将扮演一位名为8u的神秘用户 -在自由的发帖中邂逅性格各异的贴吧老鼠们 -和它们一起无中生有 -找回被抄的游戏的同时 -逐步降低贴吧的素质 -但是CSGO -是由valve自主研发的一款全新竞技类FPS游戏 -游戏发生在一个被称作炙热沙城的幻想世界 -被FBI选中的人将被授予经济 -导引反恐之力 -你将扮演一位名为反恐精英的神秘角色 -在自由的对局中邂逅性格各异能力独特的同伴们 -找回挂B的亲m的同时 -逐步发掘急停与拉枪的真相 -但是鬼泣五 -是由卡普空自主研发的一款全新动作类冒险游戏 -游戏发生在一个被称作红墓市的幻想世界 -被斯巴达选中的人将被授予魔人 -导引恶魔之力 -你将扮演一位名为恶魔猎人的神秘角色 -在自由的旅行中邂逅性格各异能力独特同伴们 -阻止魔树侵袭的同时 -逐步发掘V的真相 -但是巫师三狂猎 -是由波兰蠢驴自主研发的一款全新RPG冒险游戏 -游戏发生在一个被称作北部王国的幻想世界 -被维瑟米尔选中的人将被授予青草试炼 -导引狩魔猎人之力 -你将扮演一位名为狩魔猎人的神秘角色 -和他们一起打昆特牌 -寻找失散女儿的同时 -逐步发掘狂猎的真相 diff --git a/TMessagesProj/proguard-rules.pro b/TMessagesProj/proguard-rules.pro index 99efc39513..3bb20454d4 100644 --- a/TMessagesProj/proguard-rules.pro +++ b/TMessagesProj/proguard-rules.pro @@ -6,6 +6,17 @@ -keep class org.webrtc.* { *; } -keep class org.webrtc.audio.* { *; } -keep class org.webrtc.voiceengine.* { *; } +-keep class org.telegram.messenger.* { *; } +-keep class org.telegram.messenger.camera.* { *; } +-keep class org.telegram.messenger.secretmedia.* { *; } +-keep class org.telegram.messenger.support.* { *; } +-keep class org.telegram.messenger.support.* { *; } +-keep class org.telegram.messenger.time.* { *; } +-keep class org.telegram.messenger.video.* { *; } +-keep class org.telegram.messenger.voip.* { *; } +-keep class org.telegram.SQLite.** { *; } +-keep class org.telegram.tgnet.ConnectionsManager { *; } +-keep class org.telegram.tgnet.NativeByteBuffer { *; } -keep class org.telegram.tgnet.RequestDelegateInternal { *; } -keep class org.telegram.tgnet.RequestTimeDelegate { *; } -keep class org.telegram.tgnet.RequestDelegate { *; } @@ -16,15 +27,74 @@ -keep class com.google.android.exoplayer2.metadata.flac.PictureFrame { *; } -keep class com.google.android.exoplayer2.decoder.SimpleOutputBuffer { *; } --dontwarn org.bouncycastle.jsse.* --dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider --dontwarn org.conscrypt.* --dontwarn org.openjsse.javax.net.ssl.SSLParameters --dontwarn org.openjsse.javax.net.ssl.SSLSocket --dontwarn org.openjsse.net.ssl.OpenJSSE --dontwarn org.slf4j.impl.StaticLoggerBinder - -keepnames class org.telegram.tgnet.TLRPC$TL_* {} + +-dontwarn org.dizitart.no2.** +-dontwarn org.slf4j.** +-dontwarn org.h2.** +-dontwarn org.objenesis.** +-dontwarn com.fasterxml.jackson.** +-dontwarn org.springframework.** +-dontwarn org.thymeleaf.** +-dontwarn org.tinylog.** +-dontwarn org.wltea.** +-dontwarn org.yaml.** +-dontwarn oshi.** +-dontwarn redis.clients.** +-dontwarn retrofit2.** +-dontwarn springfox.documentation.spring.web.json.Json + +-dontwarn ch.ethz.** +-dontwarn cn.beecp.** +-dontwarn com.alibaba.** +-dontwarn com.chenlb.** +-dontwarn com.github.houbb.** +-dontwarn com.github.promeg.** +-dontwarn com.github.stuxuhai.** +-dontwarn com.google.common.** +-dontwarn com.google.zxing.** +-dontwarn com.googlecode.** +-dontwarn com.hankcs.** +-dontwarn com.jcraft.** +-dontwarn com.jfinal.** +-dontwarn com.jfirer.** +-dontwarn com.mayabot.** +-dontwarn com.mchange.** +-dontwarn com.mongodb.** +-dontwarn com.rnkrsoft.** +-dontwarn com.rnkrsoft.bopomofo4j.ToneType +-dontwarn com.sun.net.** +-dontwarn com.vdurmont.** +-dontwarn com.zaxxer.** +-dontwarn freemarker.** +-dontwarn io.github.logtube.** +-dontwarn java.awt.** +-dontwarn java.beans.** +-dontwarn java.lang.management.ClassLoadingMXBean +-dontwarn javax.** +-dontwarn net.sf.** +-dontwarn net.sourceforge.** +-dontwarn okhttp3.** +-dontwarn org.ansj.** +-dontwarn org.apache.** +-dontwarn org.apdplat.** +-dontwarn org.beetl.** +-dontwarn org.bouncycastle.** +-dontwarn org.febit.** +-dontwarn org.glassfish.** +-dontwarn org.javamoney.** +-dontwarn org.jboss.** +-dontwarn org.jboss.** +-dontwarn org.joda.** +-dontwarn org.lionsoul.** +-dontwarn org.mozilla.** +-dontwarn org.mvel2.** +-dontwarn org.ofdrw.** +-dontwarn org.openxmlformats.** +-dontwarn org.pmw.tinylog.** +-dontwarn org.rythmengine.** +-dontwarn org.slf4j.** + # https://developers.google.com/ml-kit/known-issues#android_issues -keep class com.google.mlkit.nl.languageid.internal.LanguageIdentificationJni { *; } @@ -91,82 +161,10 @@ (com.google.android.exoplayer2.upstream.DataSource$Factory); } --keep class com.microsoft.appcenter.AppCenter { - private com.microsoft.appcenter.channel.Channel mChannel; - private android.os.Handler mHandler; -} - --keep class org.telegram.messenger.voip.* { *; } --keep class org.telegram.messenger.AnimatedFileDrawableStream { ; } --keep class org.telegram.SQLite.SQLiteException { ; } --keep class org.telegram.tgnet.ConnectionsManager { ; } --keep class org.telegram.tgnet.NativeByteBuffer { ; } --keepnames class org.telegram.tgnet.TLRPC$TL_* {} --keepclassmembernames class org.telegram.ui.* { ; } --keepclassmembernames class org.telegram.ui.Cells.* { ; } --keepclassmembernames class org.telegram.ui.Components.* { ; } --keep,allowshrinking,allowobfuscation class org.telegram.ui.Components.GroupCreateSpan { - public void updateColors(); - } --keepclassmembernames class top.qwq2333.nullgram.activity.DatacenterActivity$DatacenterCell { ; } --keepclassmembernames class top.qwq2333.nullgram.activity.DatacenterActivity$DatacenterHeaderCell { ; } --keepclassmembernames class top.qwq2333.nullgram.activity.MessageDetailsActivity$TextDetailSimpleCell { ; } --keepclassmembernames class top.qwq2333.nullgram.activity.PasscodeSettingActivity$AccountCell { -; } --keepclassmembernames class top.qwq2333.nullgram.activityChatSettingsActivity$StickerSizeCell { ; } - --keepclassmembernames class androidx.core.widget.NestedScrollView { - private android.widget.OverScroller mScroller; - private void abortAnimatedScroll(); -} - --keepclasseswithmembernames,includedescriptorclasses class * { - native ; -} --keepclassmembers class * { - @android.webkit.JavascriptInterface ; -} - --assumenosideeffects class android.util.Log { - public static *** v(...); - public static *** d(...); -} - - -# Keep `Companion` object fields of serializable classes. -# This avoids serializer lookup through `getDeclaredClasses` as done for named companion objects. --if @kotlinx.serialization.Serializable class ** --keepclassmembers class <1> { - static <1>$Companion Companion; -} - -# Keep `serializer()` on companion objects (both default and named) of serializable classes. --if @kotlinx.serialization.Serializable class ** { - static **$* *; -} --keepclassmembers class <2>$<3> { - kotlinx.serialization.KSerializer serializer(...); -} - -# Keep `INSTANCE.serializer()` of serializable objects. --if @kotlinx.serialization.Serializable class ** { - public static ** INSTANCE; -} --keepclassmembers class <1> { - public static <1> INSTANCE; - kotlinx.serialization.KSerializer serializer(...); -} - -# @Serializable and @Polymorphic are used at runtime for polymorphic serialization. --keepattributes RuntimeVisibleAnnotations,AnnotationDefault - --dontwarn org.jetbrains.annotations.NotNull --dontwarn org.jetbrains.annotations.Nullable +# Don't warn about checkerframework and Kotlin annotations +-dontwarn org.checkerframework.** +-dontwarn javax.annotation.** --repackageclasses --allowaccessmodification --overloadaggressively --keepattributes SourceDir,SourceFile,LineNumberTable,LocalVariableTable --obfuscationdictionary proguard-dic.txt --classobfuscationdictionary proguard-dic.txt --packageobfuscationdictionary proguard-dic.txt +# Use -keep to explicitly keep any other classes shrinking would remove +-dontoptimize +-dontobfuscate From a9fb7715fa7b7a26ae9d1e1b227f4f29cd3798e2 Mon Sep 17 00:00:00 2001 From: Next Alone <12210746+NextAlone@users.noreply.github.com> Date: Sun, 19 Feb 2023 01:18:09 +0800 Subject: [PATCH 08/25] refactor: upgrade jvmTarget and gradle Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com> --- build.gradle.kts | 4 +- buildSrc/build.gradle.kts | 6 +- buildSrc/src/main/kotlin/Version.kt | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 49896 -> 61608 bytes gradle/wrapper/gradle-wrapper.properties | 6 +- gradlew | 304 ++++++++++++++--------- gradlew.bat | 56 +++-- tcp2ws/build.gradle.kts | 4 +- 8 files changed, 235 insertions(+), 147 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index d7c1352622..5610a503ef 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -42,8 +42,8 @@ fun Project.configureBaseExtension() { } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 isCoreLibraryDesugaringEnabled = true } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 166eb14126..3f8ed192e4 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -14,12 +14,12 @@ repositories { } java { - targetCompatibility = JavaVersion.VERSION_11 - sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_17 } tasks.withType { kotlinOptions { - jvmTarget = "11" + jvmTarget = "17" } } diff --git a/buildSrc/src/main/kotlin/Version.kt b/buildSrc/src/main/kotlin/Version.kt index 7aa58fb504..a1f11b2442 100644 --- a/buildSrc/src/main/kotlin/Version.kt +++ b/buildSrc/src/main/kotlin/Version.kt @@ -7,7 +7,7 @@ object Version { val ktor = "2.2.1" @JvmStatic - val JavaVersion = "11" + val JavaVersion = "17" @JvmStatic val officialVersionName = "9.4.2" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a8698b08ecc4158d828ca593c4928e9dd..ccebba7710deaf9f98673a68957ea02138b60d0a 100644 GIT binary patch literal 61608 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 literal 49896 zcmagFb986H(k`5d^NVfUwr$(C?M#x1ZQHiZiEVpg+jrjgoQrerx!>1o_ul)D>ebz~ zs=Mmxr&>W81QY-S1PKWQ%N-;H^tS;2*XwVA`dej1RRn1z<;3VgfE4~kaG`A%QSPsR z#ovnZe+tS9%1MfeDyz`RirvdjPRK~p(#^q2(^5@O&NM19EHdvN-A&StN>0g6QA^VN z0Gx%Gq#PD$QMRFzmK+utjS^Y1F0e8&u&^=w5K<;4Rz|i3A=o|IKLY+g`iK6vfr9?+ z-`>gmU&i?FGSL5&F?TXFu`&Js6h;15QFkXp2M1H9|Eq~bpov-GU(uz%mH0n55wUl- zv#~ccAz`F5wlQ>e_KlJS3@{)B?^v*EQM=IxLa&76^y51a((wq|2-`qON>+4dLc{Oo z51}}o^Zen(oAjxDK7b++9_Yg`67p$bPo3~BCpGM7uAWmvIhWc5Gi+gQZ|Pwa-Gll@<1xmcPy z|NZmu6m)g5Ftu~BG&Xdxclw7Cij{xbBMBn-LMII#Slp`AElb&2^Hw+w>(3crLH!;I zN+Vk$D+wP1#^!MDCiad@vM>H#6+`Ct#~6VHL4lzmy;lSdk>`z6)=>Wh15Q2)dQtGqvn0vJU@+(B5{MUc*qs4!T+V=q=wy)<6$~ z!G>e_4dN@lGeF_$q9`Ju6Ncb*x?O7=l{anm7Eahuj_6lA{*#Gv*TaJclevPVbbVYu z(NY?5q+xxbO6%g1xF0r@Ix8fJ~u)VRUp`S%&rN$&e!Od`~s+64J z5*)*WSi*i{k%JjMSIN#X;jC{HG$-^iX+5f5BGOIHWAl*%15Z#!xntpk($-EGKCzKa zT7{siZ9;4TICsWQ$pu&wKZQTCvpI$Xvzwxoi+XkkpeE&&kFb!B?h2hi%^YlXt|-@5 zHJ~%AN!g_^tmn1?HSm^|gCE#!GRtK2(L{9pL#hp0xh zME}|DB>(5)`iE7CM)&_+S}-Bslc#@B5W4_+k4Cp$l>iVyg$KP>CN?SVGZ(&02>iZK zB<^HP$g$Lq*L$BWd?2(F?-MUbNWTJVQdW7$#8a|k_30#vHAD1Z{c#p;bETk0VnU5A zBgLe2HFJ3032$G<`m*OB!KM$*sdM20jm)It5OSru@tXpK5LT>#8)N!*skNu1$TpIw zufjjdp#lyH5bZ%|Iuo|iu9vG1HrIVWLH>278xo>aVBkPN3V$~!=KnlXQ4eDqS7%E% zQ!z^$Q$b^6Q)g#cLpwur(|<0gWHo6A6jc;n`t(V9T;LzTAU{IAu*uEQ%Ort1k+Kn+f_N`9|bxYC+~Z1 zCC1UCWv*Orx$_@ydv9mIe(liLfOr7mhbV@tKw{6)q^1DH1nmvZ0cj215R<~&I<4S| zgnr;9Cdjqpz#o8i0CQjtl`}{c*P)aSdH|abxGdrR)-3z+02-eX(k*B)Uqv6~^nh** z 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" +MAX_FD=maximum -warn ( ) { +warn () { echo "$*" -} +} >&2 -die ( ) { +die () { echo echo "$*" echo exit 1 -} +} >&2 # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; esac -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" >&- -APP_HOME="`pwd -P`" -cd "$SAVED" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" + JAVACMD=$JAVA_HOME/jre/sh/java else - JAVACMD="$JAVA_HOME/bin/java" + JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -82,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD="java" + JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -90,75 +140,105 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" - fi +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac fi -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) fi - i=$((i+1)) + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac fi -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index f9553162f1..93e3f59f13 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,4 +1,20 @@ -@if "%DEBUG%" == "" @echo off +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -9,19 +25,23 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -35,7 +55,7 @@ goto fail set JAVA_HOME=%JAVA_HOME:"=% set JAVA_EXE=%JAVA_HOME%/bin/java.exe -if exist "%JAVA_EXE%" goto init +if exist "%JAVA_EXE%" goto execute echo. echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% @@ -45,38 +65,26 @@ echo location of your Java installation. goto fail -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - :execute @rem Setup the command line set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/tcp2ws/build.gradle.kts b/tcp2ws/build.gradle.kts index c6286c4ba7..b282be779e 100644 --- a/tcp2ws/build.gradle.kts +++ b/tcp2ws/build.gradle.kts @@ -9,6 +9,6 @@ dependencies { } java { - targetCompatibility = JavaVersion.VERSION_11 - sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_17 + sourceCompatibility = JavaVersion.VERSION_17 } From 3eb2d2cc9efae7dd187d9fcae4d8e79b629339d9 Mon Sep 17 00:00:00 2001 From: Next Alone <12210746+NextAlone@users.noreply.github.com> Date: Sun, 19 Feb 2023 02:14:28 +0800 Subject: [PATCH 09/25] refactor: use nagram icons Signed-off-by: Next Alone <12210746+NextAlone@users.noreply.github.com> --- .gitignore | 1 - TMessagesProj/icons/CREDITS.txt | 10 -- TMessagesProj/icons/anime/icon-0.png | Bin 924773 -> 0 bytes TMessagesProj/icons/anime/icon-1.png | Bin 1008048 -> 0 bytes TMessagesProj/icons/anime/icon-10.png | Bin 736146 -> 0 bytes TMessagesProj/icons/anime/icon-11.png | Bin 1243443 -> 0 bytes TMessagesProj/icons/anime/icon-12.png | Bin 590804 -> 0 bytes TMessagesProj/icons/anime/icon-13.png | Bin 598230 -> 0 bytes TMessagesProj/icons/anime/icon-14.png | Bin 394515 -> 0 bytes TMessagesProj/icons/anime/icon-2.png | Bin 874901 -> 0 bytes TMessagesProj/icons/anime/icon-3.png | Bin 845376 -> 0 bytes TMessagesProj/icons/anime/icon-5.png | Bin 379510 -> 0 bytes TMessagesProj/icons/anime/icon-6.png | Bin 586504 -> 0 bytes TMessagesProj/icons/anime/icon-7.png | Bin 540443 -> 0 bytes TMessagesProj/icons/anime/icon-9.png | Bin 1002996 -> 0 bytes TMessagesProj/icons/anime/icon.png | Bin 611153 -> 0 bytes TMessagesProj/src/main/AndroidManifest.xml | 60 ++++------ .../telegram/ui/LauncherIconController.java | 17 ++- .../src/main/res/drawable-hdpi/icon_1.png | Bin 924773 -> 0 bytes .../src/main/res/drawable-hdpi/icon_2.png | Bin 874901 -> 0 bytes .../src/main/res/drawable-hdpi/icon_3.png | Bin 845376 -> 0 bytes .../src/main/res/drawable-hdpi/icon_4.png | Bin 1243443 -> 0 bytes .../src/main/res/drawable-hdpi/icon_5.png | Bin 1008048 -> 0 bytes ...ic_launcher_nagram_colorful_foreground.xml | 103 ++++++++++++++++++ .../ic_launcher_nagram_foreground.xml | 58 ++++++++++ .../ic_launcher_nagram_neon_background.xml | 33 ++++++ ...ic_launcher_nagram_colorful_background.xml | 43 ++++++++ ...c_launcher_nagram_darkgreen_background.xml | 17 +++ ...c_launcher_nagram_darkgreen_foreground.xml | 67 ++++++++++++ .../ic_launcher_nagram_google_background.xml | 43 ++++++++ .../ic_launcher_nagram_google_foreground.xml | 75 +++++++++++++ .../ic_launcher_nagram_neon_foreground.xml | 73 +++++++++++++ .../main/res/drawable/icon_3_background.xml | 9 ++ .../res/drawable/icon_3_background_round.xml | 9 ++ .../mipmap-anydpi-v26/ic_launcher_nagram.xml | 5 + .../ic_launcher_nagram_colorful.xml | 5 + .../ic_launcher_nagram_colorful_round.xml | 5 + .../ic_launcher_nagram_darkgreen.xml | 5 + .../ic_launcher_nagram_darkgreen_round.xml | 5 + .../ic_launcher_nagram_google.xml | 5 + .../ic_launcher_nagram_google_round.xml | 5 + .../ic_launcher_nagram_neon.xml | 5 + .../ic_launcher_nagram_neon_round.xml | 5 + .../ic_launcher_nagram_round.xml | 5 + .../res/mipmap-anydpi-v26/icon_3_launcher.xml | 5 + .../icon_3_launcher_round.xml | 5 + .../mipmap-anydpi-v26/icon_3_launcher_sa.xml | 5 + .../ic_launcher_nagram_colorful.png | Bin 0 -> 1868 bytes .../ic_launcher_nagram_colorful_round.png | Bin 0 -> 3900 bytes .../ic_launcher_nagram_darkgreen.png | Bin 0 -> 1574 bytes .../ic_launcher_nagram_darkgreen_round.png | Bin 0 -> 3488 bytes .../mipmap-hdpi/ic_launcher_nagram_google.png | Bin 0 -> 1703 bytes .../ic_launcher_nagram_google_round.png | Bin 0 -> 3735 bytes .../mipmap-hdpi/ic_launcher_nagram_neon.png | Bin 0 -> 3316 bytes .../ic_launcher_nagram_neon_round.png | Bin 0 -> 5107 bytes .../res/mipmap-hdpi/icon_3_foreground.png | Bin 0 -> 1823 bytes .../mipmap-hdpi/icon_3_foreground_round.png | Bin 0 -> 1867 bytes .../res/mipmap-hdpi/icon_3_foreground_sa.png | Bin 0 -> 1928 bytes .../main/res/mipmap-hdpi/icon_3_launcher.png | Bin 0 -> 6704 bytes .../res/mipmap-hdpi/icon_3_launcher_round.png | Bin 0 -> 6741 bytes .../res/mipmap-hdpi/icon_3_launcher_sa.png | Bin 0 -> 6128 bytes .../mipmap-hdpi/icon_background_colorful.png | Bin 0 -> 349 bytes .../mipmap-hdpi/icon_background_darkgreen.png | Bin 0 -> 372 bytes .../mipmap-hdpi/icon_background_google.png | Bin 0 -> 349 bytes .../mipmap-hdpi/icon_background_nagram.png | Bin 0 -> 349 bytes .../res/mipmap-hdpi/icon_background_neon.png | Bin 0 -> 1389 bytes .../mipmap-hdpi/icon_foreground_colorful.png | Bin 0 -> 959 bytes .../mipmap-hdpi/icon_foreground_darkgreen.png | Bin 0 -> 603 bytes .../mipmap-hdpi/icon_foreground_google.png | Bin 0 -> 891 bytes .../mipmap-hdpi/icon_foreground_nagram.png | Bin 0 -> 829 bytes .../res/mipmap-hdpi/icon_foreground_neon.png | Bin 0 -> 866 bytes .../ic_launcher_nagram_colorful.png | Bin 0 -> 1255 bytes .../ic_launcher_nagram_colorful_round.png | Bin 0 -> 2469 bytes .../ic_launcher_nagram_darkgreen.png | Bin 0 -> 1148 bytes .../ic_launcher_nagram_darkgreen_round.png | Bin 0 -> 2274 bytes .../mipmap-mdpi/ic_launcher_nagram_google.png | Bin 0 -> 1185 bytes .../ic_launcher_nagram_google_round.png | Bin 0 -> 2374 bytes .../mipmap-mdpi/ic_launcher_nagram_neon.png | Bin 0 -> 2385 bytes .../ic_launcher_nagram_neon_round.png | Bin 0 -> 3160 bytes .../res/mipmap-mdpi/icon_3_foreground.png | Bin 0 -> 1074 bytes .../mipmap-mdpi/icon_3_foreground_round.png | Bin 0 -> 1176 bytes .../res/mipmap-mdpi/icon_3_foreground_sa.png | Bin 0 -> 1182 bytes .../main/res/mipmap-mdpi/icon_3_launcher.png | Bin 0 -> 3927 bytes .../res/mipmap-mdpi/icon_3_launcher_round.png | Bin 0 -> 3903 bytes .../res/mipmap-mdpi/icon_3_launcher_sa.png | Bin 0 -> 3506 bytes .../mipmap-mdpi/icon_background_colorful.png | Bin 0 -> 249 bytes .../mipmap-mdpi/icon_background_darkgreen.png | Bin 0 -> 268 bytes .../mipmap-mdpi/icon_background_google.png | Bin 0 -> 249 bytes .../mipmap-mdpi/icon_background_nagram.png | Bin 0 -> 249 bytes .../res/mipmap-mdpi/icon_background_neon.png | Bin 0 -> 742 bytes .../mipmap-mdpi/icon_foreground_colorful.png | Bin 0 -> 560 bytes .../mipmap-mdpi/icon_foreground_darkgreen.png | Bin 0 -> 336 bytes .../mipmap-mdpi/icon_foreground_google.png | Bin 0 -> 503 bytes .../mipmap-mdpi/icon_foreground_nagram.png | Bin 0 -> 460 bytes .../res/mipmap-mdpi/icon_foreground_neon.png | Bin 0 -> 561 bytes .../ic_launcher_nagram_colorful.png | Bin 0 -> 2556 bytes .../ic_launcher_nagram_colorful_round.png | Bin 0 -> 5584 bytes .../ic_launcher_nagram_darkgreen.png | Bin 0 -> 2181 bytes .../ic_launcher_nagram_darkgreen_round.png | Bin 0 -> 5013 bytes .../ic_launcher_nagram_google.png | Bin 0 -> 2409 bytes .../ic_launcher_nagram_google_round.png | Bin 0 -> 5371 bytes .../mipmap-xhdpi/ic_launcher_nagram_neon.png | Bin 0 -> 4962 bytes .../ic_launcher_nagram_neon_round.png | Bin 0 -> 7441 bytes .../res/mipmap-xhdpi/icon_3_foreground.png | Bin 0 -> 2718 bytes .../mipmap-xhdpi/icon_3_foreground_round.png | Bin 0 -> 2851 bytes .../res/mipmap-xhdpi/icon_3_foreground_sa.png | Bin 0 -> 2807 bytes .../main/res/mipmap-xhdpi/icon_3_launcher.png | Bin 0 -> 9976 bytes .../mipmap-xhdpi/icon_3_launcher_round.png | Bin 0 -> 9964 bytes .../res/mipmap-xhdpi/icon_3_launcher_sa.png | Bin 0 -> 8944 bytes .../mipmap-xhdpi/icon_background_colorful.png | Bin 0 -> 483 bytes .../icon_background_darkgreen.png | Bin 0 -> 523 bytes .../mipmap-xhdpi/icon_background_google.png | Bin 0 -> 483 bytes .../mipmap-xhdpi/icon_background_nagram.png | Bin 0 -> 483 bytes .../res/mipmap-xhdpi/icon_background_neon.png | Bin 0 -> 1742 bytes .../mipmap-xhdpi/icon_foreground_colorful.png | Bin 0 -> 1222 bytes .../icon_foreground_darkgreen.png | Bin 0 -> 720 bytes .../mipmap-xhdpi/icon_foreground_google.png | Bin 0 -> 1015 bytes .../mipmap-xhdpi/icon_foreground_nagram.png | Bin 0 -> 996 bytes .../res/mipmap-xhdpi/icon_foreground_neon.png | Bin 0 -> 1043 bytes .../ic_launcher_nagram_colorful.png | Bin 0 -> 4132 bytes .../ic_launcher_nagram_colorful_round.png | Bin 0 -> 9111 bytes .../ic_launcher_nagram_darkgreen.png | Bin 0 -> 3476 bytes .../ic_launcher_nagram_darkgreen_round.png | Bin 0 -> 7890 bytes .../ic_launcher_nagram_google.png | Bin 0 -> 3735 bytes .../ic_launcher_nagram_google_round.png | Bin 0 -> 8509 bytes .../mipmap-xxhdpi/ic_launcher_nagram_neon.png | Bin 0 -> 7661 bytes .../ic_launcher_nagram_neon_round.png | Bin 0 -> 12146 bytes .../res/mipmap-xxhdpi/icon_3_foreground.png | Bin 0 -> 4571 bytes .../mipmap-xxhdpi/icon_3_foreground_round.png | Bin 0 -> 4793 bytes .../mipmap-xxhdpi/icon_3_foreground_sa.png | Bin 0 -> 4793 bytes .../res/mipmap-xxhdpi/icon_3_launcher.png | Bin 0 -> 16555 bytes .../mipmap-xxhdpi/icon_3_launcher_round.png | Bin 0 -> 16621 bytes .../res/mipmap-xxhdpi/icon_3_launcher_sa.png | Bin 0 -> 15487 bytes .../icon_background_colorful.png | Bin 0 -> 746 bytes .../icon_background_darkgreen.png | Bin 0 -> 804 bytes .../mipmap-xxhdpi/icon_background_google.png | Bin 0 -> 746 bytes .../mipmap-xxhdpi/icon_background_nagram.png | Bin 0 -> 746 bytes .../mipmap-xxhdpi/icon_background_neon.png | Bin 0 -> 2815 bytes .../icon_foreground_colorful.png | Bin 0 -> 1968 bytes .../icon_foreground_darkgreen.png | Bin 0 -> 1156 bytes .../mipmap-xxhdpi/icon_foreground_google.png | Bin 0 -> 1655 bytes .../mipmap-xxhdpi/icon_foreground_nagram.png | Bin 0 -> 1563 bytes .../mipmap-xxhdpi/icon_foreground_neon.png | Bin 0 -> 1771 bytes .../ic_launcher_nagram_colorful.png | Bin 0 -> 5816 bytes .../ic_launcher_nagram_colorful_round.png | Bin 0 -> 13151 bytes .../ic_launcher_nagram_darkgreen.png | Bin 0 -> 4796 bytes .../ic_launcher_nagram_darkgreen_round.png | Bin 0 -> 11342 bytes .../ic_launcher_nagram_google.png | Bin 0 -> 5268 bytes .../ic_launcher_nagram_google_round.png | Bin 0 -> 12300 bytes .../ic_launcher_nagram_neon.png | Bin 0 -> 10909 bytes .../ic_launcher_nagram_neon_round.png | Bin 0 -> 17935 bytes .../res/mipmap-xxxhdpi/icon_3_foreground.png | Bin 0 -> 6942 bytes .../icon_3_foreground_round.png | Bin 0 -> 7395 bytes .../mipmap-xxxhdpi/icon_3_foreground_sa.png | Bin 0 -> 7343 bytes .../res/mipmap-xxxhdpi/icon_3_launcher.png | Bin 0 -> 24882 bytes .../mipmap-xxxhdpi/icon_3_launcher_round.png | Bin 0 -> 24837 bytes .../res/mipmap-xxxhdpi/icon_3_launcher_sa.png | Bin 0 -> 23469 bytes .../icon_background_colorful.png | Bin 0 -> 1050 bytes .../icon_background_darkgreen.png | Bin 0 -> 1128 bytes .../mipmap-xxxhdpi/icon_background_google.png | Bin 0 -> 1050 bytes .../mipmap-xxxhdpi/icon_background_nagram.png | Bin 0 -> 1050 bytes .../mipmap-xxxhdpi/icon_background_neon.png | Bin 0 -> 4893 bytes .../icon_foreground_colorful.png | Bin 0 -> 2597 bytes .../icon_foreground_darkgreen.png | Bin 0 -> 1567 bytes .../mipmap-xxxhdpi/icon_foreground_google.png | Bin 0 -> 2223 bytes .../mipmap-xxxhdpi/icon_foreground_nagram.png | Bin 0 -> 2127 bytes .../mipmap-xxxhdpi/icon_foreground_neon.png | Bin 0 -> 2510 bytes .../main/res/values-zh/strings_nnngram.xml | 3 + .../values/ic_launcher_nagram_background.xml | 4 + .../src/main/res/values/strings_nnngram.xml | 4 + 170 files changed, 636 insertions(+), 58 deletions(-) delete mode 100644 TMessagesProj/icons/CREDITS.txt delete mode 100644 TMessagesProj/icons/anime/icon-0.png delete mode 100644 TMessagesProj/icons/anime/icon-1.png delete mode 100644 TMessagesProj/icons/anime/icon-10.png delete mode 100644 TMessagesProj/icons/anime/icon-11.png delete mode 100644 TMessagesProj/icons/anime/icon-12.png delete mode 100644 TMessagesProj/icons/anime/icon-13.png delete mode 100644 TMessagesProj/icons/anime/icon-14.png delete mode 100644 TMessagesProj/icons/anime/icon-2.png delete mode 100644 TMessagesProj/icons/anime/icon-3.png delete mode 100644 TMessagesProj/icons/anime/icon-5.png delete mode 100644 TMessagesProj/icons/anime/icon-6.png delete mode 100644 TMessagesProj/icons/anime/icon-7.png delete mode 100644 TMessagesProj/icons/anime/icon-9.png delete mode 100644 TMessagesProj/icons/anime/icon.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon_1.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon_2.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon_3.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon_4.png delete mode 100644 TMessagesProj/src/main/res/drawable-hdpi/icon_5.png create mode 100644 TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_colorful_foreground.xml create mode 100644 TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_foreground.xml create mode 100644 TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_neon_background.xml create mode 100644 TMessagesProj/src/main/res/drawable/ic_launcher_nagram_colorful_background.xml create mode 100644 TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_background.xml create mode 100644 TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_foreground.xml create mode 100644 TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_background.xml create mode 100644 TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_foreground.xml create mode 100644 TMessagesProj/src/main/res/drawable/ic_launcher_nagram_neon_foreground.xml create mode 100644 TMessagesProj/src/main/res/drawable/icon_3_background.xml create mode 100644 TMessagesProj/src/main/res/drawable/icon_3_background_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_round.xml create mode 100644 TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_sa.xml create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_background_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_background_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_background_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_background_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_background_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_background_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_background_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_background_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_background_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_background_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_round.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_sa.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_neon.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_colorful.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_darkgreen.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_google.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_nagram.png create mode 100644 TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_neon.png create mode 100644 TMessagesProj/src/main/res/values/ic_launcher_nagram_background.xml diff --git a/.gitignore b/.gitignore index eca8bc73eb..081eba43b6 100644 --- a/.gitignore +++ b/.gitignore @@ -5,5 +5,4 @@ obj/ TMessagesProj/.cxx *.iml local.properties -TMessagesProj/src/main/res/drawable/icon.png service_account_credentials.json diff --git a/TMessagesProj/icons/CREDITS.txt b/TMessagesProj/icons/CREDITS.txt deleted file mode 100644 index 5c76e690f6..0000000000 --- a/TMessagesProj/icons/CREDITS.txt +++ /dev/null @@ -1,10 +0,0 @@ - icon_1: https://twitter.com/TorinoAqua/status/1500774004344467461 - icon_2: https://twitter.com/nolma7/status/1501211141351305219 - icon_3: https://twitter.com/Nishina_hima/status/1501211397711175693 - icon_5: https://twitter.com/omu3retu/status/1502222606287605761 - icon_6: https://twitter.com/muninshiki/status/1445651719539478536 - icon_7: https://twitter.com/kasu1923/status/1445693353023053825 - icon_10: https://twitter.com/tnm_tyny/status/1442764062404734978 - icon_11: https://twitter.com/S2_DSA/status/1443459843025608708 - icon_12: https://twitter.com/ririkocafe/status/1444836713197543424 - icon_13: https://twitter.com/Man_SU_11/status/1501852999773085698 diff --git a/TMessagesProj/icons/anime/icon-0.png b/TMessagesProj/icons/anime/icon-0.png deleted file mode 100644 index b59cd1ba49b78e3515cd5ec32835467970f72e67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 924773 zcmV)rK$*XZP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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⪚DTh{F_pK*6h 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≺VUZB?o5S-rk;Q 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 &3?;_PVe-_VokXf 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