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/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 d19a738bd8..f69b3767ad 100644 --- a/TMessagesProj/build.gradle.kts +++ b/TMessagesProj/build.gradle.kts @@ -97,7 +97,7 @@ dependencies { } android { - defaultConfig.applicationId = "top.qwq2333.nullgram" + defaultConfig.applicationId = "xyz.nextalone.nnngram" sourceSets.getByName("main") { java.srcDir("src/main/java") @@ -195,40 +195,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 @@ -238,7 +238,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 fc88f3d509..795a67fe05 100644 Binary files a/TMessagesProj/config/release.keystore and b/TMessagesProj/config/release.keystore differ 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/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 b59cd1ba49..0000000000 Binary files a/TMessagesProj/icons/anime/icon-0.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-1.png b/TMessagesProj/icons/anime/icon-1.png deleted file mode 100644 index 50609c165c..0000000000 Binary files a/TMessagesProj/icons/anime/icon-1.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-10.png b/TMessagesProj/icons/anime/icon-10.png deleted file mode 100644 index 0d89c41b5a..0000000000 Binary files a/TMessagesProj/icons/anime/icon-10.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-11.png b/TMessagesProj/icons/anime/icon-11.png deleted file mode 100644 index c9ff231ebd..0000000000 Binary files a/TMessagesProj/icons/anime/icon-11.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-12.png b/TMessagesProj/icons/anime/icon-12.png deleted file mode 100644 index ca8eb4f8e5..0000000000 Binary files a/TMessagesProj/icons/anime/icon-12.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-13.png b/TMessagesProj/icons/anime/icon-13.png deleted file mode 100644 index 36b9895823..0000000000 Binary files a/TMessagesProj/icons/anime/icon-13.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-14.png b/TMessagesProj/icons/anime/icon-14.png deleted file mode 100644 index 80693d9cb4..0000000000 Binary files a/TMessagesProj/icons/anime/icon-14.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-2.png b/TMessagesProj/icons/anime/icon-2.png deleted file mode 100644 index d2bfc67997..0000000000 Binary files a/TMessagesProj/icons/anime/icon-2.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-3.png b/TMessagesProj/icons/anime/icon-3.png deleted file mode 100644 index 93dbce89a2..0000000000 Binary files a/TMessagesProj/icons/anime/icon-3.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-5.png b/TMessagesProj/icons/anime/icon-5.png deleted file mode 100644 index d38b2f2694..0000000000 Binary files a/TMessagesProj/icons/anime/icon-5.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-6.png b/TMessagesProj/icons/anime/icon-6.png deleted file mode 100644 index c23694407e..0000000000 Binary files a/TMessagesProj/icons/anime/icon-6.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-7.png b/TMessagesProj/icons/anime/icon-7.png deleted file mode 100644 index 0d5aff48c1..0000000000 Binary files a/TMessagesProj/icons/anime/icon-7.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon-9.png b/TMessagesProj/icons/anime/icon-9.png deleted file mode 100644 index b2c270ec3c..0000000000 Binary files a/TMessagesProj/icons/anime/icon-9.png and /dev/null differ diff --git a/TMessagesProj/icons/anime/icon.png b/TMessagesProj/icons/anime/icon.png deleted file mode 100644 index 932073b9a5..0000000000 Binary files a/TMessagesProj/icons/anime/icon.png and /dev/null differ diff --git a/TMessagesProj/jni/CMakeLists.txt b/TMessagesProj/jni/CMakeLists.txt index a516c06843..32c98950f2 100644 --- a/TMessagesProj/jni/CMakeLists.txt +++ b/TMessagesProj/jni/CMakeLists.txt @@ -406,8 +406,6 @@ target_compile_definitions(sqlite PUBLIC #voip include(${CMAKE_HOME_DIRECTORY}/voip/CMakeLists.txt) -include(${CMAKE_HOME_DIRECTORY}/integrity/CMakeLists.txt) - set(NATIVE_LIB "tmessages.43") #tmessages @@ -710,8 +708,7 @@ target_link_libraries(${NATIVE_LIB} EGL android OpenSLES - cpufeatures - checkSignature) + cpufeatures) #if (${ANDROID_ABI} STREQUAL "x86" OR ${ANDROID_ABI} STREQUAL "x86_64") # target_link_libraries(${NATIVE_LIB} diff --git a/TMessagesProj/jni/integrity/CMakeLists.txt b/TMessagesProj/jni/integrity/CMakeLists.txt deleted file mode 100644 index cc4231547d..0000000000 --- a/TMessagesProj/jni/integrity/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -add_library(checkSignature STATIC - integrity/v2sign.cc - integrity/nullmd5.cc) -target_compile_options(checkSignature PUBLIC - -Oz -Wall -Wextra -Wshadow -fvisibility=hidden) -target_include_directories(checkSignature PUBLIC - integrity) -target_link_libraries(checkSignature -Wl) diff --git a/TMessagesProj/jni/integrity/nullmd5.cc b/TMessagesProj/jni/integrity/nullmd5.cc deleted file mode 100644 index 90ad7b927e..0000000000 --- a/TMessagesProj/jni/integrity/nullmd5.cc +++ /dev/null @@ -1,224 +0,0 @@ -// -// Created by teble on 2022/4/9. -// - -#include "nullmd5.h" - -#include - -MD5::MD5() = default; - -MD5::MD5(std::string str) : input_msg(std::move(str)) {} - -void MD5::init() { - // init the binary message - bin_msg.clear(); - for (char i : input_msg) { - auto temp = std::bitset<8>(i); - for (int j = 7; j >= 0; --j) { - bin_msg.push_back(temp[j]); - } - } - - // calculate the binary b - bin_b.clear(); - b = (int) bin_msg.size(); - std::bitset<64> tempb(bin_msg.size()); - for (int i = 63; i >= 0; --i) { - bin_b.push_back(tempb[i]); - } -} - -std::string MD5::getDigest() { - init(); - // Step 1. Append Padding Bits - padding(); - // Step 2. Append Length - appendLength(); - // Step 3. Initialize MD Buffer - A = 0x67452301; - B = 0xefcdab89; - C = 0x98badcfe; - D = 0x10325476; - // Step 4. Process Message in 16-Word Blocks - int L = (int) bin_msg.size() / 512; - for (int i = 0; i < L; ++i) { - transform(i); - } - - // Step 5. Output - return to_str(); -} - -void MD5::padding() { - int diff; - if (b % 512 < 448) { - diff = 448 - b % 512; - } else { - diff = 960 - b % 512; - } - - bin_msg.push_back(true); - std::vector pad(diff - 1, false); - bin_msg.insert(bin_msg.end(), pad.begin(), pad.end()); - sort_little_endian(); -} - -void MD5::sort_little_endian() { - // in each word, all 4 bytes should be sorted as little-endian - // That means: - // in the original msg: 00000001 00000010 00000011 00000100 - // after the sort: 00000100 00000011 00000010 00000001 - int wordnums = (int) bin_msg.size() / 32; - - std::vector ret; - - for (int i = 0; i < wordnums; ++i) { - std::vector word(bin_msg.begin() + i * 32, - bin_msg.begin() + (i + 1) * 32); - ret.insert(ret.end(), word.begin() + 24, word.end()); - ret.insert(ret.end(), word.begin() + 16, word.begin() + 24); - ret.insert(ret.end(), word.begin() + 8, word.begin() + 16); - ret.insert(ret.end(), word.begin(), word.begin() + 8); - } - - bin_msg.clear(); - bin_msg.insert(bin_msg.end(), ret.begin(), ret.end()); -} - -void MD5::appendLength() { - bin_msg.insert(bin_msg.end(), bin_b.begin() + 32, bin_b.end()); - bin_msg.insert(bin_msg.end(), bin_b.begin(), bin_b.begin() + 32); -}; - -void MD5::decode(int beginIndex, bit32* x) { - // prepare each 512 bits part in the x[16], and use the x[] for the - // transform - std::vector::const_iterator st = bin_msg.begin() + beginIndex; - std::vector::const_iterator ed = bin_msg.begin() + beginIndex + 512; - std::vector cv(st, ed); - - for (int i = 0; i < 16; ++i) { - std::vector::const_iterator first = cv.begin() + 32 * i; - std::vector::const_iterator last = cv.begin() + 32 * (i + 1); - std::vector newvec(first, last); - - x[i] = convertToBit32(newvec); - } -} - -bit32 MD5::convertToBit32(const std::vector& a) { - // convert a 32 bits long vector to bit32(int) type - int partlen = 32; - bit32 res = 0; - for (int i = 0; i < partlen; ++i) { - res = res | (a[i] << (partlen - i - 1)); - } - return res; -} - -void MD5::transform(int beginIndex) { - bit32 AA = A, BB = B, CC = C, DD = D; - - bit32 x[16]; - decode(512 * beginIndex, x); - - /* Round 1 */ - FF(A, B, C, D, x[0], S11, 0xd76aa478); - FF(D, A, B, C, x[1], S12, 0xe8c7b756); - FF(C, D, A, B, x[2], S13, 0x242070db); - FF(B, C, D, A, x[3], S14, 0xc1bdceee); - FF(A, B, C, D, x[4], S11, 0xf57c0faf); - FF(D, A, B, C, x[5], S12, 0x4787c62a); - FF(C, D, A, B, x[6], S13, 0xa8304613); - FF(B, C, D, A, x[7], S14, 0xfd469501); - FF(A, B, C, D, x[8], S11, 0x698098d8); - FF(D, A, B, C, x[9], S12, 0x8b44f7af); - FF(C, D, A, B, x[10], S13, 0xffff5bb1); - FF(B, C, D, A, x[11], S14, 0x895cd7be); - FF(A, B, C, D, x[12], S11, 0x6b901122); - FF(D, A, B, C, x[13], S12, 0xfd987193); - FF(C, D, A, B, x[14], S13, 0xa679438e); - FF(B, C, D, A, x[15], S14, 0x49b40821); - - /* Round 2 */ - GG(A, B, C, D, x[1], S21, 0xf61e2562); - GG(D, A, B, C, x[6], S22, 0xc040b340); - GG(C, D, A, B, x[11], S23, 0x265e5a51); - GG(B, C, D, A, x[0], S24, 0xe9b6c7aa); - GG(A, B, C, D, x[5], S21, 0xd62f105d); - GG(D, A, B, C, x[10], S22, 0x2441453); - GG(C, D, A, B, x[15], S23, 0xd8a1e681); - GG(B, C, D, A, x[4], S24, 0xe7d3fbc8); - GG(A, B, C, D, x[9], S21, 0x21e1cde6); - GG(D, A, B, C, x[14], S22, 0xc33707d6); - GG(C, D, A, B, x[3], S23, 0xf4d50d87); - GG(B, C, D, A, x[8], S24, 0x455a14ed); - GG(A, B, C, D, x[13], S21, 0xa9e3e905); - GG(D, A, B, C, x[2], S22, 0xfcefa3f8); - GG(C, D, A, B, x[7], S23, 0x676f02d9); - GG(B, C, D, A, x[12], S24, 0x8d2a4c8a); - - /* Round 3 */ - HH(A, B, C, D, x[5], S31, 0xfffa3942); - HH(D, A, B, C, x[8], S32, 0x8771f681); - HH(C, D, A, B, x[11], S33, 0x6d9d6122); - HH(B, C, D, A, x[14], S34, 0xfde5380c); - HH(A, B, C, D, x[1], S31, 0xa4beea44); - HH(D, A, B, C, x[4], S32, 0x4bdecfa9); - HH(C, D, A, B, x[7], S33, 0xf6bb4b60); - HH(B, C, D, A, x[10], S34, 0xbebfbc70); - HH(A, B, C, D, x[13], S31, 0x289b7ec6); - HH(D, A, B, C, x[0], S32, 0xeaa127fa); - HH(C, D, A, B, x[3], S33, 0xd4ef3085); - HH(B, C, D, A, x[6], S34, 0x4881d05); - HH(A, B, C, D, x[9], S31, 0xd9d4d039); - HH(D, A, B, C, x[12], S32, 0xe6db99e5); - HH(C, D, A, B, x[15], S33, 0x1fa27cf8); - HH(B, C, D, A, x[2], S34, 0xc4ac5665); - - /* Round 4 */ - II(A, B, C, D, x[0], S41, 0xf4292244); - II(D, A, B, C, x[7], S42, 0x432aff97); - II(C, D, A, B, x[14], S43, 0xab9423a7); - II(B, C, D, A, x[5], S44, 0xfc93a039); - II(A, B, C, D, x[12], S41, 0x655b59c3); - II(D, A, B, C, x[3], S42, 0x8f0ccc92); - II(C, D, A, B, x[10], S43, 0xffeff47d); - II(B, C, D, A, x[1], S44, 0x85845dd1); - II(A, B, C, D, x[8], S41, 0x6fa87e4f); - II(D, A, B, C, x[15], S42, 0xfe2ce6e0); - II(C, D, A, B, x[6], S43, 0xa3014314); - II(B, C, D, A, x[13], S44, 0x4e0811a1); - II(A, B, C, D, x[4], S41, 0xf7537e82); - II(D, A, B, C, x[11], S42, 0xbd3af235); - II(C, D, A, B, x[2], S43, 0x2ad7d2bb); - II(B, C, D, A, x[9], S44, 0xeb86d391); - - A = A + AA; - B = B + BB; - C = C + CC; - D = D + DD; -} - -std::string MD5::to_str() const { - // Output in Big-Endian - // For a value 0x6789abcd - // Output as "cdab8967" - bit32 input[4]; - input[0] = A; - input[1] = B; - input[2] = C; - input[3] = D; - - std::string ret; - char buffer[4]; - - for (unsigned int i : input) { - for (int j = 0; j < 4; ++j) { - snprintf(buffer, 4, "%02X", i >> j * 8 & 0xff); - ret += buffer; - } - } - return ret; -} diff --git a/TMessagesProj/jni/integrity/nullmd5.h b/TMessagesProj/jni/integrity/nullmd5.h deleted file mode 100644 index 9f07129668..0000000000 --- a/TMessagesProj/jni/integrity/nullmd5.h +++ /dev/null @@ -1,97 +0,0 @@ -// -// Created by teble on 2022/4/9. -// - -#ifndef MD5_H -#define MD5_H - -#include -#include -#include - -/* Parameters of MD5. */ -#define S11 7 -#define S12 12 -#define S13 17 -#define S14 22 -#define S21 5 -#define S22 9 -#define S23 14 -#define S24 20 -#define S31 4 -#define S32 11 -#define S33 16 -#define S34 23 -#define S41 6 -#define S42 10 -#define S43 15 -#define S44 21 - -#define F(x, y, z) (((x) & (y)) | ((~(x)) & (z))) -#define G(x, y, z) (((x) & (z)) | ((y) & (~(z)))) -#define H(x, y, z) ((x) ^ (y) ^ (z)) -#define I(x, y, z) ((y) ^ ((x) | (~(z)))) - -#define ROTATELEFT(num, n) (((num) << (n)) | ((num) >> (32 - (n)))) - -/** - * @Transformations for rounds 1, 2, 3, and 4. - */ -#define FF(a, b, c, d, x, s, ac) \ - { \ - (a) += F((b), (c), (d)) + (x) + (ac); \ - (a) = ROTATELEFT((a), (s)); \ - (a) += (b); \ - } -#define GG(a, b, c, d, x, s, ac) \ - { \ - (a) += G((b), (c), (d)) + (x) + (ac); \ - (a) = ROTATELEFT((a), (s)); \ - (a) += (b); \ - } -#define HH(a, b, c, d, x, s, ac) \ - { \ - (a) += H((b), (c), (d)) + (x) + (ac); \ - (a) = ROTATELEFT((a), (s)); \ - (a) += (b); \ - } -#define II(a, b, c, d, x, s, ac) \ - { \ - (a) += I((b), (c), (d)) + (x) + (ac); \ - (a) = ROTATELEFT((a), (s)); \ - (a) += (b); \ - } - -typedef unsigned int bit32; - -class MD5 { - public: - explicit MD5(std::string str); - MD5(); - - void init(); - - std::string getDigest(); - - void padding(); - void sort_little_endian(); - void appendLength(); - void transform(int beginIndex); - void decode(int beginIndex, bit32* x); - static bit32 convertToBit32(const std::vector& a); - - std::string to_str() const; - - private: - std::string input_msg; - std::vector bin_msg; - - // b is the length of the original msg - int b{}; - std::vector bin_b; - - bit32 A{}, B{}, C{}, D{}; -}; - - -#endif //MD5_H diff --git a/TMessagesProj/jni/integrity/v2sign.cc b/TMessagesProj/jni/integrity/v2sign.cc deleted file mode 100644 index af3b5f2a72..0000000000 --- a/TMessagesProj/jni/integrity/v2sign.cc +++ /dev/null @@ -1,147 +0,0 @@ -// -// Created by qwq233 on 2/24/2023. -// - -#include "v2sign.h" - -#include -#include -#include -#include -#include -#include "nullmd5.h" -#include "../log.h" - -#define GITHUB_SIGNATURE 79F5947F1AC75D23F509DDC97A749DC7 -#define PLAYSTORE_SIGNATURE 999014B8010E81DC52825616228ECEB9 - -#define __STRING(x) #x -#define STRING(x) __STRING(x) -namespace { - -const uint64_t revertMagikFirst = 0x3234206b636f6c42L; -const uint64_t revertMagikSecond = 0x20676953204b5041L; -const uint32_t v2Id = 0x7109871a; - -std::string getAppPath(JNIEnv *env) { - jclass cMainHook = env->FindClass("org/telegram/messenger/ApplicationLoader"); - jclass cClass = env->FindClass("java/lang/Class"); - jmethodID mGetClassLoader = env->GetMethodID(cClass, "getClassLoader", - "()Ljava/lang/ClassLoader;"); - jobject classloader = env->CallObjectMethod(cMainHook, mGetClassLoader); - jclass cClassloader = env->FindClass("java/lang/ClassLoader"); - jmethodID mGetResource = env->GetMethodID(cClassloader, "findResource", - "(Ljava/lang/String;)Ljava/net/URL;"); - jstring manifestPath = env->NewStringUTF("AndroidManifest.xml"); - jobject url = env->CallObjectMethod(classloader, mGetResource, manifestPath); - jclass cURL = env->FindClass("java/net/URL"); - jmethodID mGetPath = env->GetMethodID(cURL, "getPath", "()Ljava/lang/String;"); - auto file = (jstring) env->CallObjectMethod(url, mGetPath); - const char *cStr = env->GetStringUTFChars(file, nullptr); - std::string filePathStr(cStr); - if (filePathStr.empty()) { - return std::string(); - } - std::string s = filePathStr.substr(5, filePathStr.size() - 26); - LOGD("module path -> %s", s.c_str()); - env->ReleaseStringUTFChars(file, cStr); - return s; -} - -std::string getSignBlock(const std::string &path) { - std::ifstream f(path); - std::string file((std::istreambuf_iterator(f)), std::istreambuf_iterator()); - uint64_t curr = 0; - const char *base = file.c_str(); - const char *ptr = base + file.size() - 1; - std::string signBlock; - while (ptr >= base) { - curr = (curr << 8) | *ptr--; - if (curr == revertMagikFirst) { - uint64_t tmp = 0; - for (int i = 0; i < 8; ++i) { - tmp = (tmp << 8) | *(ptr - i); - } - if (tmp == revertMagikSecond) { - for (int i = 8; i < 16; ++i) { - tmp = (tmp << 8) | *(ptr - i); - } - // TODO 只判断魔数“APK Sig Block 42”可能存在误判 - ptr -= 16; - tmp -= 24; - for (uint64_t i = 0; i < tmp; ++i) { - signBlock.push_back(*ptr--); - } - break; - } - } - } - std::reverse(signBlock.begin(), signBlock.end()); - return signBlock; -} - -std::string getBlockMd5(const std::string &block) { - return MD5(block).getDigest(); -} - -std::string getV2Signature(const std::string &block) { - std::string signature; - const char *p = block.c_str(); - const char *last = block.c_str() + block.size(); - while (p < last) { - uint64_t blockSize = 0; - for (int i = 0; i < 8; ++i) { - blockSize = (blockSize >> 8) | (((uint64_t) *p++) << 56); - } - uint32_t id = 0; - for (int i = 0; i < 4; ++i) { - id = (id >> 8) | (((uint32_t) *p++) << 24); - } - if (id != v2Id) { - p += blockSize - 12; - continue; - } - p += 12; - uint32_t size = 0; - for (int i = 0; i < 4; ++i) { - size = (size >> 8) | (((uint32_t) *p++) << 24); - } - p += size + 4; - for (int i = 0; i < 4; ++i) { - size = (size >> 8) | (((uint32_t) *p++) << 24); - } - for (uint32_t i = 0; i < size; ++i) { - signature.push_back(*p++); - } - break; - } - return signature; -} - -extern "C" bool checkSignature(JNIEnv *env) { - std::string path = getAppPath(env); - if (path.empty()) { - return false; - } - std::string block = getSignBlock(path); - if (block.empty()) { - return false; - } - - std::string currSignature = getV2Signature(block); - std::string md5 = getBlockMd5(currSignature); - std::string githubSignature(STRING(GITHUB_SIGNATURE)); - std::string playStoreSignature(STRING(PLAYSTORE_SIGNATURE)); - if (githubSignature == md5) { - LOGD("checkSignature: Match Github Signature"); - return true; - } else if (playStoreSignature == md5) { - LOGD("checkSignature: Match Google Play Signature"); - return true; - } else { - LOGD("checkSignature: Not Match Signature"); - return false; - } - -} -} diff --git a/TMessagesProj/jni/integrity/v2sign.h b/TMessagesProj/jni/integrity/v2sign.h deleted file mode 100644 index eb87593fe8..0000000000 --- a/TMessagesProj/jni/integrity/v2sign.h +++ /dev/null @@ -1,12 +0,0 @@ -// -// Created by qwq233 on 2/24/2023. -// - -#include -#include - -#ifndef NULLGRAM_V2SIGN_H -#define NULLGRAM_V2SIGN_H - -#endif //NULLGRAM_V2SIGN_H -bool checkSignature(JNIEnv *env); diff --git a/TMessagesProj/jni/jni.c b/TMessagesProj/jni/jni.c index 474b7476b0..e413d70a14 100644 --- a/TMessagesProj/jni/jni.c +++ b/TMessagesProj/jni/jni.c @@ -9,10 +9,6 @@ #include #include #include -#include "v2sign.h" -#include "log.h" -#include - int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env); int videoOnJNILoad(JavaVM *vm, JNIEnv *env); @@ -27,10 +23,6 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) { return -1; } - if (!checkSignature(env)) { - return JNI_ERR; - } - if (imageOnJNILoad(vm, env) != JNI_TRUE) { return -1; } diff --git a/TMessagesProj/jni/log.h b/TMessagesProj/jni/log.h deleted file mode 100644 index 1fe84782ac..0000000000 --- a/TMessagesProj/jni/log.h +++ /dev/null @@ -1,11 +0,0 @@ -#include - -#pragma once - -#define TAG "Nullgram" - -#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, TAG, ##__VA_ARGS__) -#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, TAG, ##__VA_ARGS__) -#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, TAG, ##__VA_ARGS__) -#define LOGF(...) __android_log_print(ANDROID_LOG_FATAL, TAG, ##__VA_ARGS__) -#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, TAG, ##__VA_ARGS__) 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 054e1b5f80..0c91b7189c 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,85 +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(); - } - -keep,allowshrinking,allowobfuscation class org.telegram.ui.Components.Premium.GLIcon.ObjLoader { - public (); - } --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 diff --git a/TMessagesProj/src/main/AndroidManifest.xml b/TMessagesProj/src/main/AndroidManifest.xml index 8b25d48c80..2f09faba96 100644 --- a/TMessagesProj/src/main/AndroidManifest.xml +++ b/TMessagesProj/src/main/AndroidManifest.xml @@ -103,8 +103,8 @@ android:restoreAnyVersion="true" android:backupAgent=".BackupAgent" android:hardwareAccelerated="@bool/useHardwareAcceleration" - android:icon="@drawable/icon" - android:roundIcon="@drawable/icon" + android:icon="@mipmap/ic_launcher_nagram" + android:roundIcon="@mipmap/ic_launcher_nagram_round" android:largeHeap="true" android:label="@string/AppName" android:theme="@style/Theme.TMessages.Start" @@ -131,10 +131,10 @@ @@ -147,10 +147,10 @@ @@ -163,10 +163,10 @@ @@ -179,10 +179,10 @@ @@ -195,26 +195,10 @@ - - - - - - - - - - @@ -277,7 +261,7 @@ - + @@ -321,7 +305,7 @@ android:stateNotNeeded="true" android:theme="@style/Theme.TMessages.Transparent" android:exported="true"> - + @@ -334,7 +318,7 @@ android:hardwareAccelerated="@bool/useHardwareAcceleration" android:exported="true" android:windowSoftInputMode="adjustPan"> - + @@ -345,7 +329,7 @@ android:hardwareAccelerated="@bool/useHardwareAcceleration" android:exported="true" android:windowSoftInputMode="adjustPan"> - + @@ -355,7 +339,7 @@ android:hardwareAccelerated="@bool/useHardwareAcceleration" android:exported="true" android:windowSoftInputMode="adjustPan"> - + @@ -444,7 +428,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 117d90aaf7..2742be8a67 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/AndroidUtilities.java @@ -188,10 +188,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 3fed4c6f89..1ad8c618c6 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 = 3164; public static String BUILD_VERSION_STRING = "9.4.9"; - public static int APP_ID = 19797609; - public static String APP_HASH = "e8f1567dbbf38944a1391c4d23c34b60"; - public static String APPCENTER_HASH = "e07b49da-11a5-46db-a780-f5cd7b9a1a5a"; + public static int APP_ID = 11535358; + public static String APP_HASH = "33d372962fadb01df47e6ceed4e33cd6"; + public static String APPCENTER_HASH = "d2efd39b-4dbe-4ca4-896b-9b2a3ddf0957"; 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 9ff76df5ad..ab469eb2f9 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 029677373e..975bf3b4ab 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/FileLog.java @@ -28,7 +28,7 @@ import java.util.HashSet; import java.util.Locale; -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 800e993b10..c4bb528ba2 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 c3228d33ff..6c895b7cf7 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/ImageLoader.java @@ -2230,19 +2230,19 @@ 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 { if (!(path.exists() ? path.isDirectory() : path.mkdirs()) || !path.canWrite()) { path = ApplicationLoader.applicationContext.getExternalFilesDir(null); } - telegramPath = new File(path, "Nullgram"); + telegramPath = new File(path, "Nnngram"); } telegramPath.mkdirs(); @@ -2252,7 +2252,7 @@ public SparseArray createMediaPaths() { File dir = dirs.get(a); if (dir != null && !TextUtils.isEmpty(SharedConfig.storageCacheDir) && dir.getAbsolutePath().startsWith(SharedConfig.storageCacheDir)) { path = dir; - telegramPath = new File(path, "Nullgram"); + telegramPath = new File(path, "Nnngram"); telegramPath.mkdirs(); break; } @@ -2261,7 +2261,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); @@ -2274,7 +2274,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); @@ -2287,7 +2287,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")); @@ -2301,7 +2301,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")); @@ -2315,7 +2315,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")); @@ -2330,7 +2330,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); @@ -2343,7 +2343,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 9c719b864d..f8ca8adeda 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 { @@ -1038,14 +1038,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); } @@ -1075,7 +1075,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 9730a4be8a..275a2222d3 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaController.java @@ -102,11 +102,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 { @@ -4164,11 +4164,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 { @@ -4178,7 +4178,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()) { @@ -4303,7 +4303,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); @@ -4311,7 +4311,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); @@ -4319,7 +4319,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); @@ -4327,7 +4327,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 a90626ea20..1b2b5c0787 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MediaDataController.java @@ -90,8 +90,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 67b92fda35..e430c806e1 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 ad864a92ad..d0c45d00f7 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 5b12946780..ac89660795 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/MessagesStorage.java @@ -54,9 +54,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 40576b2a33..30f46f1ecf 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 { @@ -3045,14 +3045,16 @@ private String createNotificationShortcut(NotificationCompat.Builder builder, lo } else { icon = IconCompat.createWithResource(ApplicationLoader.applicationContext, R.drawable.book_group); } - NotificationCompat.BubbleMetadata.Builder bubbleBuilder = - new NotificationCompat.BubbleMetadata.Builder( - PendingIntent.getActivity(ApplicationLoader.applicationContext, 0, intent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT), - icon); - bubbleBuilder.setSuppressNotification(openedDialogId == did); - bubbleBuilder.setAutoExpandBubble(false); - bubbleBuilder.setDesiredHeight(AndroidUtilities.dp(640)); - builder.setBubbleMetadata(bubbleBuilder.build()); + if (!ConfigManager.getBooleanOrFalse(Defines.disableNotificationBubble)) { + NotificationCompat.BubbleMetadata.Builder bubbleBuilder = + new NotificationCompat.BubbleMetadata.Builder( + PendingIntent.getActivity(ApplicationLoader.applicationContext, 0, intent, PendingIntent.FLAG_MUTABLE | PendingIntent.FLAG_UPDATE_CURRENT), + icon); + bubbleBuilder.setSuppressNotification(openedDialogId == did); + bubbleBuilder.setAutoExpandBubble(false); + bubbleBuilder.setDesiredHeight(AndroidUtilities.dp(640)); + builder.setBubbleMetadata(bubbleBuilder.build()); + } return id; } catch (Exception e) { FileLog.e(e); diff --git a/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java b/TMessagesProj/src/main/java/org/telegram/messenger/SendMessagesHelper.java index 676b8d8961..9ced0942b9 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 6f238433ab..595674838a 100644 --- a/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java +++ b/TMessagesProj/src/main/java/org/telegram/messenger/SharedConfig.java @@ -44,12 +44,12 @@ import java.util.List; import java.util.Locale; -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 { /** @@ -1533,10 +1533,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 88430abbbf..634772e4e4 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 5dfd0e2bd7..c5b621a4e9 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/ConnectionsManager.java @@ -57,10 +57,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; import javax.net.ssl.SSLException; diff --git a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java index be85143e14..f9ee9839e1 100644 --- a/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java +++ b/TMessagesProj/src/main/java/org/telegram/tgnet/TLRPC.java @@ -28,7 +28,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 4fc67d90af..ddff885c88 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 110889da3b..98cc461553 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/ActionBarLayout.java @@ -64,9 +64,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/AlertDialog.java b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/AlertDialog.java index 1dd3a6776d..cb76abba81 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/AlertDialog.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/AlertDialog.java @@ -747,6 +747,8 @@ public void setText(CharSequence text, BufferType type) { messageTextView.setLines(1); messageTextView.setEllipsize(TextUtils.TruncateAt.END); progressViewContainer.addView(messageTextView, LayoutHelper.createFrame(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.CENTER_VERTICAL, (LocaleController.isRTL ? 0 : 62), 0, (LocaleController.isRTL ? 62 : 0), 0)); + backgroundColor = getThemedColor(Theme.key_dialog_inlineProgressBackground); + containerView.setBackgroundDrawable(Theme.createRoundRectDrawable(AndroidUtilities.dp(18), backgroundColor)); } else if (progressViewStyle == ALERT_TYPE_LOADING) { containerView.addView(messageTextView, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 24, title == null ? 19 : 0, 24, 20)); @@ -763,6 +765,8 @@ public void setText(CharSequence text, BufferType type) { lineProgressViewPercent.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14); containerView.addView(lineProgressViewPercent, LayoutHelper.createLinear(LayoutHelper.WRAP_CONTENT, LayoutHelper.WRAP_CONTENT, (LocaleController.isRTL ? Gravity.RIGHT : Gravity.LEFT) | Gravity.TOP, 23, 4, 23, 24)); updateLineProgressTextView(); + backgroundColor = getThemedColor(Theme.key_dialog_inlineProgressBackground); + containerView.setBackgroundDrawable(Theme.createRoundRectDrawable(AndroidUtilities.dp(18), backgroundColor)); } else if (progressViewStyle == ALERT_TYPE_SPINNER) { setCanceledOnTouchOutside(false); setCancelable(false); 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 68cc52bca9..112d27eb98 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ActionBar/Theme.java @@ -137,7 +137,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..959bdb579e 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 { @@ -329,9 +329,9 @@ private void resetItems() { } items.add(new Item(11, LocaleController.getString("SavedMessages", R.string.SavedMessages), savedIcon)); items.add(new Item(8, LocaleController.getString("Settings", R.string.Settings), settingsIcon)); - items.add(null); // divider - items.add(new Item(7, LocaleController.getString("InviteFriends", R.string.InviteFriends), inviteIcon)); - items.add(new Item(13, LocaleController.getString("TelegramFeatures", R.string.TelegramFeatures), helpIcon)); +// items.add(null); // divider +// items.add(new Item(7, LocaleController.getString("InviteFriends", R.string.InviteFriends), inviteIcon)); +// items.add(new Item(13, LocaleController.getString("TelegramFeatures", R.string.TelegramFeatures), helpIcon)); } public int getId(int position) { diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java b/TMessagesProj/src/main/java/org/telegram/ui/ArticleViewer.java index 0f985863f7..811501d441 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 f19f45c231..327e6781a1 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 dc91feeef2..b62e759aab 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; @@ -1394,6 +1394,30 @@ public void setResourcesProvider(Theme.ResourcesProvider resourcesProvider) { } } + public void drawStatusWithImage(Canvas canvas, ImageReceiver imageReceiver, int radius) { + String formatUserStatus = currentUser != null ? LocaleController.formatUserStatus(this.currentAccount, currentUser) : ""; + if (!ConfigManager.getBooleanOrFalse(Defines.showOnlineStatus) || currentUser == null || currentUser.bot || !formatUserStatus.equals(LocaleController.getString("Online", R.string.Online))) { + imageReceiver.draw(canvas); + return; + } + int x = Math.round(imageReceiver.getImageX2()); + int y = Math.round(imageReceiver.getImageY2()); + int circleRadius = radius - AndroidUtilities.dp(2.25f); + int spaceLeft = radius - circleRadius; + int xCenterRegion = x - spaceLeft; + int yCenterRegion = y - spaceLeft; + Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); + paint.setColor(Theme.getColor(Theme.key_chats_onlineCircle)); + canvas.save(); + Path p = new Path(); + p.addCircle(x - radius, y - radius, radius, Path.Direction.CW); + p.toggleInverseFillType(); + canvas.clipPath(p); + imageReceiver.draw(canvas); + canvas.restore(); + canvas.drawCircle(xCenterRegion - circleRadius, yCenterRegion - circleRadius, circleRadius, paint); + } + private void createPollUI() { if (pollAvatarImages != null) { return; 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 23c493196a..9365786afb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Cells/DialogCell.java @@ -112,8 +112,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 1744b7c176..6a8964f803 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 { @@ -755,7 +755,8 @@ public void setUser(TLRPC.User user, boolean accounts) { } else if (!TextUtils.isEmpty(user.username)) { phoneTextView.setText("@" + user.username); } else { - phoneTextView.setText(LocaleController.getString("MobileHidden", R.string.MobileHidden)); +// phoneTextView.setText(LocaleController.getString("MobileHidden", R.string.MobileHidden)); + phoneTextView.setVisibility(GONE); } AvatarDrawable avatarDrawable = new AvatarDrawable(user); avatarDrawable.setColor(Theme.getColor(Theme.key_avatar_backgroundInProfileBlue)); 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 d0d4feca1d..e1694d5e41 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 ae8cb7fded..0a9f453ea3 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatActivity.java @@ -9,92 +9,29 @@ package org.telegram.ui; import android.Manifest; -import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; -import android.animation.AnimatorSet; -import android.animation.ObjectAnimator; -import android.animation.ValueAnimator; +import android.animation.*; import android.annotation.SuppressLint; import android.annotation.TargetApi; import android.app.Activity; import android.app.DatePickerDialog; import android.app.Dialog; -import android.content.ClipData; -import android.content.Context; -import android.content.DialogInterface; -import android.content.Intent; -import android.content.SharedPreferences; +import android.content.*; import android.content.pm.PackageManager; import android.content.res.Configuration; -import android.graphics.Bitmap; -import android.graphics.BitmapShader; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.ColorMatrix; -import android.graphics.ColorMatrixColorFilter; -import android.graphics.LinearGradient; -import android.graphics.Matrix; -import android.graphics.Outline; -import android.graphics.Paint; -import android.graphics.Path; -import android.graphics.PorterDuff; -import android.graphics.PorterDuffColorFilter; -import android.graphics.PorterDuffXfermode; import android.graphics.Rect; -import android.graphics.RectF; -import android.graphics.Region; -import android.graphics.Shader; -import android.graphics.Typeface; +import android.graphics.*; import android.graphics.drawable.Drawable; import android.net.Uri; -import android.os.Build; -import android.os.Bundle; -import android.os.Looper; -import android.os.SystemClock; -import android.os.Vibrator; +import android.os.*; import android.provider.MediaStore; -import android.text.Layout; -import android.text.Spannable; -import android.text.SpannableString; -import android.text.SpannableStringBuilder; -import android.text.Spanned; -import android.text.TextPaint; -import android.text.TextUtils; -import android.text.style.CharacterStyle; -import android.text.style.ClickableSpan; -import android.text.style.ForegroundColorSpan; -import android.text.style.ImageSpan; -import android.text.style.URLSpan; -import android.util.Pair; -import android.util.Property; -import android.util.SparseArray; -import android.util.SparseIntArray; -import android.util.TypedValue; -import android.view.Gravity; -import android.view.HapticFeedbackConstants; -import android.view.KeyEvent; -import android.view.Menu; -import android.view.MotionEvent; -import android.view.TextureView; -import android.view.View; -import android.view.ViewConfiguration; -import android.view.ViewGroup; -import android.view.ViewOutlineProvider; -import android.view.ViewTreeObserver; -import android.view.WindowManager; +import android.text.*; +import android.text.style.*; +import android.util.*; +import android.view.*; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.DecelerateInterpolator; -import android.widget.DatePicker; -import android.widget.EditText; -import android.widget.FrameLayout; -import android.widget.HorizontalScrollView; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.Space; -import android.widget.TextView; -import android.widget.Toast; - +import android.widget.*; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.collection.LongSparseArray; @@ -105,54 +42,15 @@ import androidx.dynamicanimation.animation.SpringAnimation; import androidx.dynamicanimation.animation.SpringForce; import androidx.exifinterface.media.ExifInterface; -import androidx.recyclerview.widget.ChatListItemAnimator; -import androidx.recyclerview.widget.GridLayoutManagerFixed; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.LinearSmoothScrollerCustom; -import androidx.recyclerview.widget.RecyclerView; +import androidx.recyclerview.widget.*; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; - import com.google.android.exoplayer2.ui.AspectRatioFrameLayout; import com.google.zxing.common.detector.MathUtils; - +import kotlin.Unit; import org.telegram.PhoneFormat.PhoneFormat; -import org.telegram.messenger.AccountInstance; -import org.telegram.messenger.AndroidUtilities; -import org.telegram.messenger.ApplicationLoader; -import org.telegram.messenger.BotWebViewVibrationEffect; -import org.telegram.messenger.BuildVars; -import org.telegram.messenger.ChatMessagesMetadataController; -import org.telegram.messenger.ChatObject; -import org.telegram.messenger.ChatThemeController; -import org.telegram.messenger.ContactsController; -import org.telegram.messenger.DialogObject; -import org.telegram.messenger.DownloadController; -import org.telegram.messenger.Emoji; -import org.telegram.messenger.EmojiData; -import org.telegram.messenger.FileLoader; -import org.telegram.messenger.FileLog; -import org.telegram.messenger.ForwardingMessagesParams; -import org.telegram.messenger.ImageLocation; -import org.telegram.messenger.ImageReceiver; -import org.telegram.messenger.LanguageDetector; -import org.telegram.messenger.LiteMode; -import org.telegram.messenger.LocaleController; import org.telegram.messenger.MediaController; -import org.telegram.messenger.MediaDataController; -import org.telegram.messenger.MessageObject; -import org.telegram.messenger.MessagesController; -import org.telegram.messenger.MessagesStorage; -import org.telegram.messenger.NotificationCenter; -import org.telegram.messenger.NotificationsController; -import org.telegram.messenger.R; -import org.telegram.messenger.SecretChatHelper; -import org.telegram.messenger.SendMessagesHelper; -import org.telegram.messenger.SharedConfig; -import org.telegram.messenger.UserConfig; -import org.telegram.messenger.UserObject; -import org.telegram.messenger.Utilities; -import org.telegram.messenger.VideoEditedInfo; +import org.telegram.messenger.*; import org.telegram.messenger.browser.Browser; import org.telegram.messenger.support.LongSparseIntArray; import org.telegram.messenger.utils.PhotoUtilities; @@ -160,175 +58,44 @@ import org.telegram.tgnet.ConnectionsManager; import org.telegram.tgnet.TLObject; import org.telegram.tgnet.TLRPC; -import org.telegram.ui.ActionBar.ActionBar; -import org.telegram.ui.ActionBar.ActionBarLayout; -import org.telegram.ui.ActionBar.ActionBarMenu; -import org.telegram.ui.ActionBar.ActionBarMenuItem; -import org.telegram.ui.ActionBar.ActionBarMenuSubItem; -import org.telegram.ui.ActionBar.ActionBarPopupWindow; -import org.telegram.ui.ActionBar.AdjustPanLayoutHelper; -import org.telegram.ui.ActionBar.AlertDialog; -import org.telegram.ui.ActionBar.BackDrawable; -import org.telegram.ui.ActionBar.BaseFragment; -import org.telegram.ui.ActionBar.BottomSheet; -import org.telegram.ui.ActionBar.EmojiThemes; -import org.telegram.ui.ActionBar.INavigationLayout; -import org.telegram.ui.ActionBar.SimpleTextView; -import org.telegram.ui.ActionBar.Theme; -import org.telegram.ui.ActionBar.ThemeDescription; +import org.telegram.ui.ActionBar.*; import org.telegram.ui.Adapters.MessagesSearchAdapter; -import org.telegram.ui.Cells.BotHelpCell; -import org.telegram.ui.Cells.BotSwitchCell; -import org.telegram.ui.Cells.ChatActionCell; -import org.telegram.ui.Cells.ChatLoadingCell; -import org.telegram.ui.Cells.ChatMessageCell; -import org.telegram.ui.Cells.ChatUnreadCell; -import org.telegram.ui.Cells.CheckBoxCell; -import org.telegram.ui.Cells.ContextLinkCell; -import org.telegram.ui.Cells.DialogCell; -import org.telegram.ui.Cells.MentionCell; -import org.telegram.ui.Cells.StickerCell; -import org.telegram.ui.Cells.TextSelectionHelper; -import org.telegram.ui.Components.AlertsCreator; -import org.telegram.ui.Components.AnimatedEmojiDrawable; -import org.telegram.ui.Components.AnimatedEmojiSpan; -import org.telegram.ui.Components.AnimatedFileDrawable; -import org.telegram.ui.Components.AnimationProperties; -import org.telegram.ui.Components.AttachBotIntroTopView; -import org.telegram.ui.Components.AudioPlayerAlert; -import org.telegram.ui.Components.AutoDeletePopupWrapper; -import org.telegram.ui.Components.BackButtonMenu; -import org.telegram.ui.Components.BackupImageView; -import org.telegram.ui.Components.BlurBehindDrawable; -import org.telegram.ui.Components.BluredView; -import org.telegram.ui.Components.BlurredFrameLayout; -import org.telegram.ui.Components.BotCommandsMenuView; -import org.telegram.ui.Components.Bulletin; -import org.telegram.ui.Components.BulletinFactory; -import org.telegram.ui.Components.ChatActivityEnterTopView; -import org.telegram.ui.Components.ChatActivityEnterView; -import org.telegram.ui.Components.ChatActivityInterface; -import org.telegram.ui.Components.ChatAttachAlert; -import org.telegram.ui.Components.ChatAttachAlertDocumentLayout; -import org.telegram.ui.Components.ChatAvatarContainer; -import org.telegram.ui.Components.ChatBigEmptyView; -import org.telegram.ui.Components.ChatGreetingsView; -import org.telegram.ui.Components.ChatNotificationsPopupWrapper; -import org.telegram.ui.Components.ChatScrimPopupContainerLayout; -import org.telegram.ui.Components.ChatThemeBottomSheet; -import org.telegram.ui.Components.ChecksHintView; -import org.telegram.ui.Components.CircularProgressDrawable; -import org.telegram.ui.Components.ClippingImageView; -import org.telegram.ui.Components.CombinedDrawable; -import org.telegram.ui.Components.CounterView; -import org.telegram.ui.Components.CrossfadeDrawable; -import org.telegram.ui.Components.CubicBezierInterpolator; -import org.telegram.ui.Components.EditTextBoldCursor; -import org.telegram.ui.Components.EditTextCaption; -import org.telegram.ui.Components.EmbedBottomSheet; -import org.telegram.ui.Components.EmojiPacksAlert; -import org.telegram.ui.Components.EmojiView; -import org.telegram.ui.Components.ExtendedGridLayoutManager; -import org.telegram.ui.Components.FireworksOverlay; +import org.telegram.ui.Cells.*; +import org.telegram.ui.Components.*; import org.telegram.ui.Components.FloatingDebug.FloatingDebugController; import org.telegram.ui.Components.FloatingDebug.FloatingDebugProvider; import org.telegram.ui.Components.Forum.ForumUtilities; -import org.telegram.ui.Components.ForwardingPreviewView; -import org.telegram.ui.Components.FragmentContextView; -import org.telegram.ui.Components.GigagroupConvertAlert; -import org.telegram.ui.Components.HideViewAfterAnimation; -import org.telegram.ui.Components.HintView; -import org.telegram.ui.Components.ImageUpdater; -import org.telegram.ui.Components.ImportingAlert; -import org.telegram.ui.Components.InstantCameraView; -import org.telegram.ui.Components.InviteMembersBottomSheet; -import org.telegram.ui.Components.JoinGroupAlert; -import org.telegram.ui.Components.LayoutHelper; -import org.telegram.ui.Components.LinkSpanDrawable; -import org.telegram.ui.Components.MentionsContainerView; -import org.telegram.ui.Components.MessageBackgroundDrawable; -import org.telegram.ui.Components.MessageContainsEmojiButton; -import org.telegram.ui.Components.MotionBackgroundDrawable; -import org.telegram.ui.Components.NumberTextView; -import org.telegram.ui.Components.PhonebookShareAlert; -import org.telegram.ui.Components.PinnedLineView; -import org.telegram.ui.Components.PipRoundVideoView; -import org.telegram.ui.Components.PollVotesAlert; -import org.telegram.ui.Components.PopupSwipeBackLayout; import org.telegram.ui.Components.Premium.GiftPremiumBottomSheet; import org.telegram.ui.Components.Premium.PremiumFeatureBottomSheet; import org.telegram.ui.Components.Premium.PremiumPreviewBottomSheet; -import org.telegram.ui.Components.RLottieDrawable; -import org.telegram.ui.Components.RadialProgressView; -import org.telegram.ui.Components.ReactedHeaderView; -import org.telegram.ui.Components.ReactedUsersListView; -import org.telegram.ui.Components.ReactionTabHolderView; import org.telegram.ui.Components.Reactions.ChatSelectionReactionMenuOverlay; import org.telegram.ui.Components.Reactions.ReactionsEffectOverlay; -import org.telegram.ui.Components.Reactions.ReactionsLayoutInBubble; -import org.telegram.ui.Components.ReactionsContainerLayout; -import org.telegram.ui.Components.RecyclerAnimationScrollHelper; -import org.telegram.ui.Components.RecyclerListView; -import org.telegram.ui.Components.ReportAlert; -import org.telegram.ui.Components.SearchCounterView; -import org.telegram.ui.Components.ShareAlert; -import org.telegram.ui.Components.SharedMediaLayout; -import org.telegram.ui.Components.SizeNotifierFrameLayout; -import org.telegram.ui.Components.StickersAlert; -import org.telegram.ui.Components.SuggestEmojiView; -import org.telegram.ui.Components.TextSelectionHint; -import org.telegram.ui.Components.TextStyleSpan; -import org.telegram.ui.Components.ThemeEditorView; -import org.telegram.ui.Components.TranscribeButton; -import org.telegram.ui.Components.TranslateAlert2; -import org.telegram.ui.Components.TrendingStickersAlert; import org.telegram.ui.Components.TypefaceSpan; -import org.telegram.ui.Components.URLSpanBotCommand; -import org.telegram.ui.Components.URLSpanMono; -import org.telegram.ui.Components.URLSpanNoUnderline; -import org.telegram.ui.Components.URLSpanReplacement; -import org.telegram.ui.Components.URLSpanUserMention; -import org.telegram.ui.Components.UndoView; -import org.telegram.ui.Components.UnreadCounterTextView; -import org.telegram.ui.Components.ViewHelper; +import org.telegram.ui.Components.Reactions.ReactionsLayoutInBubble; import org.telegram.ui.Components.spoilers.SpoilerEffect; import org.telegram.ui.Components.voip.VoIPHelper; import org.telegram.ui.Delegates.ChatActivityMemberRequestsDelegate; import org.telegram.ui.LNavigation.LNavigation; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.InputStream; +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; + +import java.io.*; import java.net.URLDecoder; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Collections; -import java.util.Comparator; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; +import java.util.*; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import java.util.regex.Matcher; 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; - @SuppressWarnings("unchecked") public class ChatActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate, DialogsActivity.DialogsActivityDelegate, LocationActivity.LocationActivityDelegate, ChatAttachAlertDocumentLayout.DocumentSelectActivityDelegate, ChatActivityInterface, FloatingDebugProvider, ForwardContext { private final static boolean PULL_DOWN_BACK_FRAGMENT = false; @@ -3383,7 +3150,7 @@ public void toggleMute() { headerItem.lazilyAddSubItem(search, R.drawable.msg_search, LocaleController.getString("Search", R.string.Search)); } if (currentChat != null && (ChatObject.isMegagroup(currentChat) || !ChatObject.isChannel(currentChat))) { - headerItem.addSubItem(delete_history, R.drawable.msg_delete, LocaleController.getString("DeleteAllFromSelf", R.string.DeleteAllFromSelf)); + headerItem.lazilyAddSubItem(delete_history, R.drawable.msg_delete, LocaleController.getString("DeleteAllFromSelf", R.string.DeleteAllFromSelf)); } if (currentChat != null && !currentChat.creator && !ChatObject.hasAdminRights(currentChat)) { headerItem.lazilyAddSubItem(report, R.drawable.msg_report, LocaleController.getString("ReportChat", R.string.ReportChat)); @@ -5045,7 +4812,7 @@ public boolean drawChild(Canvas canvas, View child, long drawingTime) { imageReceiver.setAlpha(1f); } imageReceiver.setVisible(true, false); - imageReceiver.draw(canvas); + cell.drawStatusWithImage(canvas, imageReceiver, AndroidUtilities.dp(7)); canvas.restore(); if (!replaceAnimation && child.getTranslationY() != 0) { @@ -23530,9 +23297,11 @@ public void setAutoDeleteHistory(int time, int action) { icons.add(R.drawable.msg_edit); } if (selectedObject.contentType == 0 && !selectedObject.isMediaEmptyWebpage() && selectedObject.getId() > 0 && !selectedObject.isOut() && (currentChat != null || currentUser != null && currentUser.bot)) { - items.add(LocaleController.getString("ReportChat", R.string.ReportChat)); - options.add(OPTION_REPORT_CHAT); - icons.add(R.drawable.msg_report); + if (ConfigManager.getBooleanOrFalse(Defines.showReport)) { + items.add(LocaleController.getString("ReportChat", R.string.ReportChat)); + options.add(OPTION_REPORT_CHAT); + icons.add(R.drawable.msg_report); + } } } else { if (selectedObject.getId() > 0 && allowChatActions) { @@ -23920,9 +23689,11 @@ public void setAutoDeleteHistory(int time, int action) { options.add(OPTION_REPORT_CHAT); icons.add(R.drawable.msg_block2); } else { - items.add(LocaleController.getString("ReportChat", R.string.ReportChat)); - options.add(OPTION_REPORT_CHAT); - icons.add(R.drawable.msg_report); + if (ConfigManager.getBooleanOrFalse(Defines.showReport)){ + items.add(LocaleController.getString("ReportChat", R.string.ReportChat)); + options.add(OPTION_REPORT_CHAT); + icons.add(R.drawable.msg_report); + } } } if (message.canDeleteMessage(chatMode == MODE_SCHEDULED, currentChat) && (threadMessageObjects == null || !threadMessageObjects.contains(message))) { @@ -24044,17 +23815,21 @@ public void setAutoDeleteHistory(int time, int action) { Rect rect = new Rect(); List availableReacts = getMediaDataController().getEnabledReactionsList(); - boolean isReactionsViewAvailable = !isSecretChat() && !isInScheduleMode() && currentUser == null && message.hasReactions() && (!ChatObject.isChannel(currentChat) || currentChat.megagroup) && !availableReacts.isEmpty() && message.messageOwner.reactions.can_see_list && !message.isSecretMedia(); + boolean isReactionsViewAvailable = ConfigManager.getBooleanOrDefault(Defines.showReactions, true) && !isSecretChat() && !isInScheduleMode() && currentUser == null && message.hasReactions() && (!ChatObject.isChannel(currentChat) || currentChat.megagroup) && !availableReacts.isEmpty() && message.messageOwner.reactions.can_see_list && !message.isSecretMedia(); boolean isReactionsAvailable; - if (message.isForwardedChannelPost()) { - TLRPC.ChatFull chatInfo = getMessagesController().getChatFull(-message.getFromChatId()); - if (chatInfo == null) { - isReactionsAvailable = true; + if (ConfigManager.getBooleanOrDefault(Defines.showReactions, true)) { + if (message.isForwardedChannelPost()) { + TLRPC.ChatFull chatInfo = getMessagesController().getChatFull(-message.getFromChatId()); + if (chatInfo == null) { + isReactionsAvailable = true; + } else { + isReactionsAvailable = !isSecretChat() && !isInScheduleMode() && message.isReactionsAvailable() && (chatInfo != null && !(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone)) && !availableReacts.isEmpty(); + } } else { - isReactionsAvailable = !isSecretChat() && !isInScheduleMode() && message.isReactionsAvailable() && (chatInfo != null && !(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone)) && !availableReacts.isEmpty(); + isReactionsAvailable = !message.isSecretMedia() && !isSecretChat() && !isInScheduleMode() && message.isReactionsAvailable() && (chatInfo != null && !(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone) || (chatInfo == null && !ChatObject.isChannel(currentChat)) || currentUser != null) && !availableReacts.isEmpty(); } } else { - isReactionsAvailable = !message.isSecretMedia() && !isSecretChat() && !isInScheduleMode() && message.isReactionsAvailable() && (chatInfo != null && !(chatInfo.available_reactions instanceof TLRPC.TL_chatReactionsNone) || (chatInfo == null && !ChatObject.isChannel(currentChat)) || currentUser != null) && !availableReacts.isEmpty(); + isReactionsAvailable = false; } boolean showMessageSeen = !isReactionsViewAvailable && !isInScheduleMode() && currentChat != null && message.isOutOwner() && message.isSent() && !message.isEditing() && !message.isSending() && !message.isSendError() && !message.isContentUnread() && !message.isUnread() && (ConnectionsManager.getInstance(currentAccount).getCurrentTime() - message.messageOwner.date < getMessagesController().chatReadMarkExpirePeriod) && (ChatObject.isMegagroup(currentChat) || !ChatObject.isChannel(currentChat)) && chatInfo != null && chatInfo.participants_count <= getMessagesController().chatReadMarkSizeThreshold && !(message.messageOwner.action instanceof TLRPC.TL_messageActionChatJoinedByRequest) && (v instanceof ChatMessageCell); @@ -24357,9 +24132,11 @@ public void onClick(View view) { int totalHeight = contentView.getHeightWithKeyboard(); if (SharedConfig.messageSeenHintCount > 0 && contentView.getKeyboardHeight() < AndroidUtilities.dp(20)) { - messageSeenPrivacyBulletin = BulletinFactory.of(Bulletin.BulletinWindow.make(getContext()), themeDelegate).createErrorBulletin(AndroidUtilities.replaceTags(LocaleController.getString("MessageSeenTooltipMessage", R.string.MessageSeenTooltipMessage))); - messageSeenPrivacyBulletin.setDuration(4000); - messageSeenPrivacyBulletin.show(); + if (ConfigManager.getBooleanOrFalse(Defines.hideMessageSeenTooltip)) { + messageSeenPrivacyBulletin = BulletinFactory.of(Bulletin.BulletinWindow.make(getContext()), themeDelegate).createErrorBulletin(AndroidUtilities.replaceTags(LocaleController.getString("MessageSeenTooltipMessage", R.string.MessageSeenTooltipMessage))); + messageSeenPrivacyBulletin.setDuration(4000); + messageSeenPrivacyBulletin.show(); + } SharedConfig.updateMessageSeenHintCount(SharedConfig.messageSeenHintCount - 1); } diff --git a/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java index 0385094005..04e050f9f8 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ChatUsersActivity.java @@ -82,7 +82,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 23498dbad7..736a9773dd 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 8a41845154..1c837c81f1 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 { @@ -7672,7 +7672,7 @@ private void updateBotButton(boolean animated) { botButton.setContentDescription(LocaleController.getString("AccDescrBotKeyboard", R.string.AccDescrBotKeyboard)); } } else { - if (!canShowBotsMenu) { + if (!canShowBotsMenu && !ConfigManager.getBooleanOrFalse(Defines.hideInputFieldBotButton)) { createBotButton(); botButtonDrawable.setIcon(R.drawable.input_bot1, true); botButton.setContentDescription(LocaleController.getString("AccDescrBotCommands", R.string.AccDescrBotCommands)); 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 ca8d33e4a8..8a789643fb 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ChatAttachAlertPhotoLayout.java @@ -99,10 +99,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 5d5d700208..0862560f1a 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/EmojiView.java @@ -144,8 +144,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 c5e620f1cd..6e91d63b03 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/Components/ImageUpdater.java @@ -63,7 +63,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 564269eba6..db050f2081 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 744093f95d..e72d13336a 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 bb91d31b69..c71330b14c 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/DialogsActivity.java @@ -205,14 +205,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 { @@ -2240,6 +2240,12 @@ public long getAnimationDuration(RecyclerView recyclerView, int animationType, f @Override public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) { + if (viewHolder != null && viewHolder.itemView instanceof DialogCell) { + if (((DialogCell) viewHolder.itemView).getCurrentDialogFolderId() == 0 + && ConfigManager.getBooleanOrFalse(Defines.doNotUnarchiveBySwipe)) { + return 1.0f; + } + } return 0.45f; } @@ -3041,9 +3047,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { } } else if (a == 2) { if (N == 3) continue; - cell.setTextAndIcon(LocaleController.getString("FilterDeleteItem", R.string.FilterDeleteItem), R.drawable.baseline_delete_24); + cell.setTextAndIcon(LocaleController.getString("FilterDeleteItem", R.string.FilterDeleteItem), R.drawable.msg_delete); } else { - cell.setTextAndIcon(LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead), R.drawable.baseline_done_all_24); + cell.setTextAndIcon(LocaleController.getString("MarkAllAsRead", R.string.MarkAllAsRead), R.drawable.msg_markread); } scrimPopupWindowItems[a] = cell; linearLayout.addView(cell); 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/LanguageSelectActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java index aa19bbf7bf..7e6477a0af 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LanguageSelectActivity.java @@ -60,7 +60,8 @@ import java.util.Iterator; import java.util.Timer; -import top.qwq2333.nullgram.activity.GeneralSettingActivity; +import xyz.nextalone.nnngram.activity.GeneralSettingActivity; + public class LanguageSelectActivity extends BaseFragment implements NotificationCenter.NotificationCenterDelegate { @@ -631,7 +632,7 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { case VIEW_TYPE_SETTINGS: { TextSettingsCell settingsCell = (TextSettingsCell) holder.itemView; settingsCell.updateRTL(); - settingsCell.setText(LocaleController.getString("NullSettings", R.string.NullSettings), false); + settingsCell.setText(LocaleController.getString("NnngramName", R.string.NnngramName), false); /*HashSet langCodes = RestrictedLanguagesSelectActivity.getRestrictedLanguages(); final String doNotTranslateCellName = LocaleController.getString("DoNotTranslate", R.string.DoNotTranslate); String doNotTranslateCellValue = null; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java index 569f183a09..51b235ae34 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LaunchActivity.java @@ -196,14 +196,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"); @@ -2090,7 +2090,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()) { @@ -2500,7 +2500,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/LauncherIconController.java b/TMessagesProj/src/main/java/org/telegram/ui/LauncherIconController.java index c6bd4d0e11..2cc847bf0f 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/LauncherIconController.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/LauncherIconController.java @@ -34,15 +34,14 @@ public static void setIcon(LauncherIcon icon) { } public enum LauncherIcon { - DEFAULT("DefaultIcon", R.drawable.icon, R.drawable.icon, R.string.AppIconDefault), - MAINICON("MainIcon", R.drawable.mainicon, R.drawable.mainicon, R.string.AppIconMain), - ICON1("ICON1", R.drawable.icon_1, R.drawable.icon_1, R.string.icon_1), - ICON2("ICON2", R.drawable.icon_2, R.drawable.icon_2, R.string.icon_2), - ICON3("ICON3", R.drawable.icon_3, R.drawable.icon_3, R.string.icon_3), - ICON4("ICON4", R.drawable.icon_4, R.drawable.icon_4, R.string.icon_4), - ICON5("ICON5", R.drawable.icon_5, R.drawable.icon_5, R.string.icon_5); - - + DEFAULT("DefaultIcon", R.mipmap.icon_background_nagram, R.mipmap.icon_foreground_nagram, R.string.AppIconDefault), + GOOGLE("GoogleIcon", R.mipmap.icon_background_google, R.mipmap.icon_foreground_google, R.string.AppIconGoogle), + COLORFUL("ColorfulIcon", R.mipmap.icon_background_colorful, R.mipmap.icon_foreground_colorful, R.string.AppIconColorful), + DARKGREEN("DarkGreenIcon", R.mipmap.icon_background_darkgreen, R.mipmap.icon_foreground_darkgreen, R.string.AppIconDarkGreen), + NEON("NeonIcon", R.mipmap.icon_background_neon, R.mipmap.icon_foreground_neon, R.string.AppIconNeon), + NOX("PremiumIcon", R.drawable.icon_3_background_sa, R.mipmap.icon_3_foreground_sa, R.string.AppIconPremium); + + public final String key; public final int background; public final int foreground; diff --git a/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java b/TMessagesProj/src/main/java/org/telegram/ui/LoginActivity.java index c05effdea1..9a279ea8a5 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 { @@ -1129,10 +1129,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 b1310ccae1..9b4396397a 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 eeed6c65e4..999ed6698e 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/PhotoViewer.java @@ -260,11 +260,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 cf88334dd1..01640c9594 100644 --- a/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java +++ b/TMessagesProj/src/main/java/org/telegram/ui/ProfileActivity.java @@ -234,19 +234,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, @@ -9293,7 +9293,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); } @@ -9642,7 +9642,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 c5fa97930f..4eeaa4a479 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; @@ -149,7 +149,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 90% 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 3f0c2f2302..74e81be0b2 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; @@ -48,13 +48,14 @@ import java.util.ArrayList; -import top.qwq2333.nullgram.config.ConfigManager; -import top.qwq2333.nullgram.ui.PopupBuilder; -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.PopupBuilder; +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 { @@ -92,6 +93,11 @@ public class ChatSettingActivity extends BaseActivity { private int scrollableChatPreviewRow; private int showTabsOnForwardRow; private int disableStickersAutoReorderRow; + private int doNotUnarchiveBySwipeRow; + private int hideInputFieldBotButtonRow; + private int hideMessageSeenTooltipRow; + private int disableNotificationBubbleRow; + private int showOnlineStatusRow; private int chat2Row; @@ -296,8 +302,32 @@ protected void onItemClick(View view, int position, float x, float y) { ProcessPhoenix.triggerRebirth(getContext(), new Intent(getContext(), LaunchActivity.class)); }); restart.show(); + } else if (position == doNotUnarchiveBySwipeRow) { + ConfigManager.toggleBoolean(Defines.doNotUnarchiveBySwipe); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(ConfigManager.getBooleanOrFalse(Defines.doNotUnarchiveBySwipe)); + } + } else if (position == hideInputFieldBotButtonRow) { + ConfigManager.toggleBoolean(Defines.hideInputFieldBotButton); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(ConfigManager.getBooleanOrFalse(Defines.hideInputFieldBotButton)); + } + } else if (position == hideMessageSeenTooltipRow) { + ConfigManager.toggleBoolean(Defines.hideMessageSeenTooltip); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(ConfigManager.getBooleanOrFalse(Defines.hideMessageSeenTooltip)); + } + } else if (position == disableNotificationBubbleRow) { + ConfigManager.toggleBoolean(Defines.disableNotificationBubble); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(ConfigManager.getBooleanOrFalse(Defines.disableNotificationBubble)); + } + } else if (position == showOnlineStatusRow) { + ConfigManager.toggleBoolean(Defines.showOnlineStatus); + if (view instanceof TextCheckCell) { + ((TextCheckCell) view).setChecked(ConfigManager.getBooleanOrFalse(Defines.showOnlineStatus)); + } } - } @Override @@ -347,6 +377,11 @@ protected void updateRows() { scrollableChatPreviewRow = rowCount++; showTabsOnForwardRow = rowCount++; disableStickersAutoReorderRow = rowCount++; + doNotUnarchiveBySwipeRow = rowCount++; + hideInputFieldBotButtonRow = rowCount++; + hideMessageSeenTooltipRow = rowCount++; + disableNotificationBubbleRow = rowCount++; + showOnlineStatusRow = rowCount++; chat2Row = rowCount++; if (listAdapter != null) { listAdapter.notifyDataSetChanged(); @@ -384,7 +419,6 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, boole textCell.setText(LocaleController.getString("MessageMenu", R.string.MessageMenu), false); } else if (position == maxRecentStickerRow) { textCell.setTextAndValue(LocaleController.getString("maxRecentSticker", R.string.maxRecentSticker), String.valueOf(ConfigManager.getIntOrDefault(Defines.maxRecentSticker, 30)), payload, true); - } else if (position == customDoubleClickTapRow) { String value; switch (ConfigManager.getIntOrDefault(Defines.doubleTab, Defines.doubleTabReaction)) { @@ -465,6 +499,21 @@ public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, boole } else if (position == disableStickersAutoReorderRow) { textCell.setTextAndCheck(LocaleController.getString("disableStickersAutoReorder", R.string.disableStickersAutoReorder), ConfigManager.getBooleanOrDefault(Defines.disableStickersAutoReorder, true), true); + } else if (position == doNotUnarchiveBySwipeRow) { + textCell.setTextAndCheck(LocaleController.getString("doNotUnarchiveBySwipe", R.string.doNotUnarchiveBySwipe), + ConfigManager.getBooleanOrFalse(Defines.doNotUnarchiveBySwipe), true); + } else if (position == hideInputFieldBotButtonRow) { + textCell.setTextAndCheck(LocaleController.getString("hideInputFieldBotButton", R.string.hideInputFieldBotButton), + ConfigManager.getBooleanOrFalse(Defines.hideInputFieldBotButton), true); + } else if (position == hideMessageSeenTooltipRow) { + textCell.setTextAndCheck(LocaleController.getString("hideMessageSeenTooltip", R.string.hideMessageSeenTooltip), + ConfigManager.getBooleanOrFalse(Defines.hideMessageSeenTooltip), true); + } else if (position == disableNotificationBubbleRow) { + textCell.setTextAndCheck(LocaleController.getString("disableNotificationBubble", R.string.disableNotificationBubble), + ConfigManager.getBooleanOrFalse(Defines.disableNotificationBubble), false); + } else if (position == showOnlineStatusRow) { + textCell.setTextAndCheck(LocaleController.getString("showOnlineStatus", R.string.showOnlineStatus), + ConfigManager.getBooleanOrFalse(Defines.showOnlineStatus), true); } break; } @@ -562,7 +611,7 @@ private void showMessageMenuAlert() { linearLayoutInviteContainer.setOrientation(LinearLayout.VERTICAL); linearLayout.addView(linearLayoutInviteContainer, LayoutHelper.createLinear(LayoutHelper.MATCH_PARENT, LayoutHelper.WRAP_CONTENT)); - int count = 7; + int count = 9; for (int a = 0; a < count; a++) { TextCheckCell textCell = new TextCheckCell(context); switch (a) { @@ -594,6 +643,13 @@ private void showMessageMenuAlert() { textCell.setTextAndCheck(LocaleController.getString("CopyPhoto", R.string.CopyPhoto), ConfigManager.getBooleanOrFalse(Defines.showCopyPhoto), false); break; } + case 7: { + textCell.setTextAndCheck(LocaleController.getString("Reactions", R.string.Reactions), ConfigManager.getBooleanOrDefault(Defines.showReactions, true), false); + break; + } + case 8: { + textCell.setTextAndCheck(LocaleController.getString("ReportChat", R.string.ReportChat), ConfigManager.getBooleanOrFalse(Defines.showReport), false); + } } textCell.setTag(a); textCell.setBackground(Theme.getSelectorDrawable(false)); @@ -636,6 +692,16 @@ private void showMessageMenuAlert() { textCell.setChecked(ConfigManager.getBooleanOrFalse(Defines.showCopyPhoto)); break; } + case 7: { + ConfigManager.putBoolean(Defines.showReactions, !ConfigManager.getBooleanOrDefault(Defines.showReactions, true)); + textCell.setChecked(ConfigManager.getBooleanOrDefault(Defines.showReactions, true)); + break; + } + case 8: { + ConfigManager.toggleBoolean(Defines.showReport); + textCell.setChecked(ConfigManager.getBooleanOrFalse(Defines.showReport)); + break; + } } }); } 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 64f384c882..af6cb55e8d 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 c75b4d3d44..3aa5d96720 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 879716942b..7f4b0e6648 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; @@ -65,9 +65,9 @@ import java.util.Date; import java.util.Locale; -import top.qwq2333.nullgram.ui.TextViewEffects; -import top.qwq2333.nullgram.utils.MessageUtils; -import top.qwq2333.nullgram.utils.Utils; +import xyz.nextalone.nnngram.ui.TextViewEffects; +import xyz.nextalone.nnngram.utils.MessageUtils; +import xyz.nextalone.nnngram.utils.Utils; @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 96% 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 ae31209385..484b230c49 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,16 +21,16 @@ 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.BaiduTranslator -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.translate.providers.TelegramTranslator -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.BaiduTranslator +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.translate.providers.TelegramTranslator +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 f2114e5bf0..650f49b51a 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/BaiduTranslator.kt b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/BaiduTranslator.kt similarity index 96% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/BaiduTranslator.kt rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/BaiduTranslator.kt index 5a0848baf3..cbbaa5a054 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/translate/providers/BaiduTranslator.kt +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/translate/providers/BaiduTranslator.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.post @@ -9,8 +9,8 @@ import io.ktor.http.contentType import io.ktor.http.userAgent import org.json.JSONObject import org.telegram.messenger.Utilities -import top.qwq2333.nullgram.translate.BaseTranslator -import top.qwq2333.nullgram.utils.encodeUrl +import xyz.nextalone.nnngram.translate.BaseTranslator +import xyz.nextalone.nnngram.utils.encodeUrl import java.util.Locale import java.util.UUID 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 8ae34c639e..804ca36f4a 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 @@ -6,9 +6,9 @@ import io.ktor.client.statement.bodyAsText import io.ktor.http.HttpStatusCode import io.ktor.http.userAgent 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 57243397f9..914670a5ec 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 94% 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 23b24a8d09..ab24a68bdc 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,13 +1,13 @@ -package top.qwq2333.nullgram.translate.providers +package xyz.nextalone.nnngram.translate.providers import io.ktor.http.HttpStatusCode import org.telegram.messenger.UserConfig import org.telegram.tgnet.ConnectionsManager import org.telegram.tgnet.TLObject import org.telegram.tgnet.TLRPC -import top.qwq2333.nullgram.translate.BaseTranslator import java.util.concurrent.CountDownLatch import java.util.concurrent.atomic.AtomicReference +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 b8a7d3b46a..d7e450e0d7 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/TextViewEffects.java b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/TextViewEffects.java similarity index 99% rename from TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/TextViewEffects.java rename to TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/TextViewEffects.java index 1267b0f7ba..618b35acc0 100644 --- a/TMessagesProj/src/main/java/top/qwq2333/nullgram/ui/TextViewEffects.java +++ b/TMessagesProj/src/main/java/xyz/nextalone/nnngram/ui/TextViewEffects.java @@ -1,4 +1,4 @@ -package top.qwq2333.nullgram.ui; +package xyz.nextalone.nnngram.ui; import android.content.Context; import android.graphics.Canvas; 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 94% 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 784feb49d4..3d382fff9a 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; import android.os.Handler; @@ -56,7 +56,7 @@ private static void addPatchDeviceListener() { assert channel != null; channel.addListener(patchDeviceListener); } catch (ReflectiveOperationException e) { - top.qwq2333.nullgram.utils.Log.e("add listener", e); + xyz.nextalone.nnngram.utils.Log.e("add listener", e); } } @@ -68,7 +68,7 @@ private static void patchDevice() { assert handler != null; handler.post(AppcenterUtils::addPatchDeviceListener); } catch (ReflectiveOperationException e) { - top.qwq2333.nullgram.utils.Log.e("patch device", e); + xyz.nextalone.nnngram.utils.Log.e("patch device", e); } } 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 94% 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..a2ea419084 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; /** @@ -87,6 +87,13 @@ public class Defines { public static final String quickToggleAnonymous = "quickToggleAnonymous"; public static final String hideProxySponsorChannel = "hideProxySponsorChannel"; + // Nnngram + public static final String doNotUnarchiveBySwipe = "doNotUnarchiveBySwipe"; + public static final String hideInputFieldBotButton = "hideInputFieldBotButton"; + public static final String hideMessageSeenTooltip = "hideMessageSeenTooltip"; + public static final String disableNotificationBubble = "disableNotificationBubble"; + public static final String showOnlineStatus = "showOnlineStatus"; + // Custom API public static final String customAPI = "customAPI"; public static final String customAppId = "customAppId"; @@ -105,6 +112,8 @@ public class Defines { public static final String showViewHistory = "showViewHistory"; public static final String showRepeat = "showRepeat"; public static final String showCopyPhoto = "showCopyPhoto"; + public static final String showReactions = "showReaction"; + public static final String showReport = "showReport"; // custom double tap public static final String doubleTab = "doubleTab"; 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 e316fcee8b..3a1b9be7f5 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 91% 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 526ce66099..fa8c365ac5 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 @@ -25,14 +25,18 @@ import java.util.regex.Pattern object Utils { - @JvmStatic - fun showForwardDate(obj: MessageObject, orig: CharSequence): String = if (ConfigManager.getBooleanOrFalse(Defines.dateOfForwardedMsg) && - obj.messageOwner.fwd_from.date.toLong() != 0L - ) { - "$orig • ${LocaleController.formatDate(obj.messageOwner.fwd_from.date.toLong())}" - } else { - orig.toString() + fun showForwardDate(obj: MessageObject, orig: CharSequence): String { + val date: Long = obj.messageOwner.fwd_from.date.toLong() + val day: String = LocaleController.formatDate(date) + val time: String = LocaleController.getInstance().formatterDay.format(date * 1000) + return if (!ConfigManager.getBooleanOrFalse(Defines.dateOfForwardedMsg) || date == 0L) { + orig.toString() + } else { + if (day == time) { + "$orig · $day" + } else "$orig · $day $time" + } } @JvmStatic 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/drawable-hdpi/icon_1.png b/TMessagesProj/src/main/res/drawable-hdpi/icon_1.png deleted file mode 100644 index b59cd1ba49..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/icon_1.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/icon_2.png b/TMessagesProj/src/main/res/drawable-hdpi/icon_2.png deleted file mode 100644 index d2bfc67997..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/icon_2.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/icon_3.png b/TMessagesProj/src/main/res/drawable-hdpi/icon_3.png deleted file mode 100644 index 93dbce89a2..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/icon_3.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/icon_4.png b/TMessagesProj/src/main/res/drawable-hdpi/icon_4.png deleted file mode 100644 index c9ff231ebd..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/icon_4.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/icon_5.png b/TMessagesProj/src/main/res/drawable-hdpi/icon_5.png deleted file mode 100644 index 50609c165c..0000000000 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/icon_5.png and /dev/null differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_forward.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_forward.png index 03afb190ca..0fa803631f 100644 Binary files a/TMessagesProj/src/main/res/drawable-hdpi/msg_forward.png and b/TMessagesProj/src/main/res/drawable-hdpi/msg_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-hdpi/msg_noquote_forward.png b/TMessagesProj/src/main/res/drawable-hdpi/msg_noquote_forward.png new file mode 100644 index 0000000000..5ace7ef561 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-hdpi/msg_noquote_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_forward.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_forward.png index b1bede5740..f98cecc73d 100644 Binary files a/TMessagesProj/src/main/res/drawable-mdpi/msg_forward.png and b/TMessagesProj/src/main/res/drawable-mdpi/msg_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-mdpi/msg_noquote_forward.png b/TMessagesProj/src/main/res/drawable-mdpi/msg_noquote_forward.png new file mode 100644 index 0000000000..b89bc49834 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-mdpi/msg_noquote_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_colorful_foreground.xml b/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_colorful_foreground.xml new file mode 100644 index 0000000000..e9ea100842 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_colorful_foreground.xml @@ -0,0 +1,103 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_foreground.xml b/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_foreground.xml new file mode 100644 index 0000000000..55a3123073 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_foreground.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_neon_background.xml b/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_neon_background.xml new file mode 100644 index 0000000000..cfe41ea63f --- /dev/null +++ b/TMessagesProj/src/main/res/drawable-v24/ic_launcher_nagram_neon_background.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward.png index 010f26775d..263383d366 100644 Binary files a/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward.png and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xhdpi/msg_noquote_forward.png b/TMessagesProj/src/main/res/drawable-xhdpi/msg_noquote_forward.png new file mode 100644 index 0000000000..d8bb1c54b0 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xhdpi/msg_noquote_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward.png index b337f2ebc1..d85710bf84 100644 Binary files a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward.png and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noquote_forward.png b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noquote_forward.png new file mode 100644 index 0000000000..fe592c16d2 Binary files /dev/null and b/TMessagesProj/src/main/res/drawable-xxhdpi/msg_noquote_forward.png differ diff --git a/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_colorful_background.xml b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_colorful_background.xml new file mode 100644 index 0000000000..34519460a1 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_colorful_background.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_background.xml b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_background.xml new file mode 100644 index 0000000000..1c76a689bb --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_background.xml @@ -0,0 +1,17 @@ + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_foreground.xml b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_foreground.xml new file mode 100644 index 0000000000..c836cec44e --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_darkgreen_foreground.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_background.xml b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_background.xml new file mode 100644 index 0000000000..34519460a1 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_background.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_foreground.xml b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_foreground.xml new file mode 100644 index 0000000000..940daeb231 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_google_foreground.xml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_neon_foreground.xml b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_neon_foreground.xml new file mode 100644 index 0000000000..089d6deb49 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/ic_launcher_nagram_neon_foreground.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/icon_3_background.xml b/TMessagesProj/src/main/res/drawable/icon_3_background.xml new file mode 100644 index 0000000000..d00445b9dc --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/icon_3_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/icon_3_background_round.xml b/TMessagesProj/src/main/res/drawable/icon_3_background_round.xml new file mode 100644 index 0000000000..3e2c38cff4 --- /dev/null +++ b/TMessagesProj/src/main/res/drawable/icon_3_background_round.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/drawable/msg_noquote_forward.xml b/TMessagesProj/src/main/res/drawable/msg_noquote_forward.xml deleted file mode 100644 index fe47813277..0000000000 --- a/TMessagesProj/src/main/res/drawable/msg_noquote_forward.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram.xml new file mode 100644 index 0000000000..df19006528 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful.xml new file mode 100644 index 0000000000..3eeaed2b92 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful_round.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful_round.xml new file mode 100644 index 0000000000..3eeaed2b92 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_colorful_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen.xml new file mode 100644 index 0000000000..1f88dcdb98 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen_round.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen_round.xml new file mode 100644 index 0000000000..1f88dcdb98 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_darkgreen_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google.xml new file mode 100644 index 0000000000..d484e149e3 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google_round.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google_round.xml new file mode 100644 index 0000000000..d484e149e3 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_google_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon.xml new file mode 100644 index 0000000000..13ab982184 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon_round.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon_round.xml new file mode 100644 index 0000000000..13ab982184 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_neon_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_round.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_round.xml new file mode 100644 index 0000000000..df19006528 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/ic_launcher_nagram_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher.xml new file mode 100644 index 0000000000..1e6219cb3d --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_round.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_round.xml new file mode 100644 index 0000000000..1b1050a687 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_sa.xml b/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_sa.xml new file mode 100644 index 0000000000..2c880e7841 --- /dev/null +++ b/TMessagesProj/src/main/res/mipmap-anydpi-v26/icon_3_launcher_sa.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful.png new file mode 100644 index 0000000000..20ba8f43ad Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful_round.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful_round.png new file mode 100644 index 0000000000..3b04a5162e Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_colorful_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen.png new file mode 100644 index 0000000000..e7ab6e8249 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen_round.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen_round.png new file mode 100644 index 0000000000..6b445ac5a5 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_darkgreen_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google.png new file mode 100644 index 0000000000..b1b3b93d63 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google_round.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google_round.png new file mode 100644 index 0000000000..cb9906a83c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_google_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon.png new file mode 100644 index 0000000000..84880af4f9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon_round.png b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon_round.png new file mode 100644 index 0000000000..2216633550 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/ic_launcher_nagram_neon_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground.png new file mode 100644 index 0000000000..bbd11247c4 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_round.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_round.png new file mode 100644 index 0000000000..4b14e52648 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_sa.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_sa.png new file mode 100644 index 0000000000..2474f0e303 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_foreground_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher.png new file mode 100644 index 0000000000..b8b31b914c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_round.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_round.png new file mode 100644 index 0000000000..faeb4eeef6 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_sa.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_sa.png new file mode 100644 index 0000000000..60f76574e0 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_3_launcher_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_colorful.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_colorful.png new file mode 100644 index 0000000000..568d86eed9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_darkgreen.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_darkgreen.png new file mode 100644 index 0000000000..1a7fd339c7 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_google.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_google.png new file mode 100644 index 0000000000..568d86eed9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_nagram.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_nagram.png new file mode 100644 index 0000000000..568d86eed9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_neon.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_neon.png new file mode 100644 index 0000000000..b9a8fc94a5 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_background_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_colorful.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_colorful.png new file mode 100644 index 0000000000..ae28f29009 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_darkgreen.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_darkgreen.png new file mode 100644 index 0000000000..301e9b4836 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_google.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_google.png new file mode 100644 index 0000000000..88149330c6 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_nagram.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_nagram.png new file mode 100644 index 0000000000..3e61a4923f Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_neon.png b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_neon.png new file mode 100644 index 0000000000..7ed6cff91e Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-hdpi/icon_foreground_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful.png new file mode 100644 index 0000000000..977dc54d40 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful_round.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful_round.png new file mode 100644 index 0000000000..c22940e96c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_colorful_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen.png new file mode 100644 index 0000000000..cb2840b11a Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen_round.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen_round.png new file mode 100644 index 0000000000..9e3d668d07 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_darkgreen_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google.png new file mode 100644 index 0000000000..62b4f6c02c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google_round.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google_round.png new file mode 100644 index 0000000000..3e0393d0ee Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_google_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon.png new file mode 100644 index 0000000000..fe44841fd3 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon_round.png b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon_round.png new file mode 100644 index 0000000000..dc656fc9b4 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/ic_launcher_nagram_neon_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground.png new file mode 100644 index 0000000000..7f722ba4c8 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_round.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_round.png new file mode 100644 index 0000000000..f98bec433d Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_sa.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_sa.png new file mode 100644 index 0000000000..1b57c5af79 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_foreground_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher.png new file mode 100644 index 0000000000..bd81646e18 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_round.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_round.png new file mode 100644 index 0000000000..13511cb4c2 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_sa.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_sa.png new file mode 100644 index 0000000000..ea53f5819e Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_3_launcher_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_colorful.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_colorful.png new file mode 100644 index 0000000000..7749da77d9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_darkgreen.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_darkgreen.png new file mode 100644 index 0000000000..77c0c4d246 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_google.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_google.png new file mode 100644 index 0000000000..7749da77d9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_nagram.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_nagram.png new file mode 100644 index 0000000000..7749da77d9 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_neon.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_neon.png new file mode 100644 index 0000000000..910527a50e Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_background_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_colorful.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_colorful.png new file mode 100644 index 0000000000..f40b2f1b7f Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_darkgreen.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_darkgreen.png new file mode 100644 index 0000000000..28ada74c9c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_google.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_google.png new file mode 100644 index 0000000000..98ae58cd4d Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_nagram.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_nagram.png new file mode 100644 index 0000000000..5c0b2a8aea Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_neon.png b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_neon.png new file mode 100644 index 0000000000..4f5bf037a1 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-mdpi/icon_foreground_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful.png new file mode 100644 index 0000000000..2caef4eda6 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful_round.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful_round.png new file mode 100644 index 0000000000..f86aa870e4 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_colorful_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen.png new file mode 100644 index 0000000000..31ea6a735c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen_round.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen_round.png new file mode 100644 index 0000000000..b03402c84f Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_darkgreen_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google.png new file mode 100644 index 0000000000..a29dc7bfed Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google_round.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google_round.png new file mode 100644 index 0000000000..ee45f5bcc1 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_google_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon.png new file mode 100644 index 0000000000..3b9ab7a9d4 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon_round.png b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon_round.png new file mode 100644 index 0000000000..1eb07df95e Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/ic_launcher_nagram_neon_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground.png new file mode 100644 index 0000000000..820f495ef8 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_round.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_round.png new file mode 100644 index 0000000000..3cc064a3f2 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_sa.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_sa.png new file mode 100644 index 0000000000..15ae585dae Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_foreground_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher.png new file mode 100644 index 0000000000..9113f1b611 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_round.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_round.png new file mode 100644 index 0000000000..ea6701760c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_sa.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_sa.png new file mode 100644 index 0000000000..18fba2e996 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_3_launcher_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_colorful.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_colorful.png new file mode 100644 index 0000000000..a5ce28d222 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_darkgreen.png new file mode 100644 index 0000000000..a86812b322 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_google.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_google.png new file mode 100644 index 0000000000..a5ce28d222 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_nagram.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_nagram.png new file mode 100644 index 0000000000..a5ce28d222 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_neon.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_neon.png new file mode 100644 index 0000000000..7dca3125a0 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_background_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_colorful.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_colorful.png new file mode 100644 index 0000000000..6e8c9bf614 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_darkgreen.png new file mode 100644 index 0000000000..d6c7ecd2ca Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_google.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_google.png new file mode 100644 index 0000000000..9de8d602d8 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_nagram.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_nagram.png new file mode 100644 index 0000000000..33d21934cf Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_neon.png b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_neon.png new file mode 100644 index 0000000000..db13f10669 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xhdpi/icon_foreground_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful.png new file mode 100644 index 0000000000..6e5f783ddc Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful_round.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful_round.png new file mode 100644 index 0000000000..f728794536 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_colorful_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen.png new file mode 100644 index 0000000000..205989e046 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen_round.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen_round.png new file mode 100644 index 0000000000..e81d5eb074 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_darkgreen_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google.png new file mode 100644 index 0000000000..572b5f316c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google_round.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google_round.png new file mode 100644 index 0000000000..e3ff6d5c90 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_google_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon.png new file mode 100644 index 0000000000..220bc7b1ff Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon_round.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon_round.png new file mode 100644 index 0000000000..8a751c5195 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/ic_launcher_nagram_neon_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground.png new file mode 100644 index 0000000000..7a00e52048 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_round.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_round.png new file mode 100644 index 0000000000..478eae3eeb Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_sa.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_sa.png new file mode 100644 index 0000000000..6af96e1627 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_foreground_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher.png new file mode 100644 index 0000000000..033000f85f Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_round.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_round.png new file mode 100644 index 0000000000..05510c72c2 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_sa.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_sa.png new file mode 100644 index 0000000000..941db6791d Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_3_launcher_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_colorful.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_colorful.png new file mode 100644 index 0000000000..997c19c208 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_darkgreen.png new file mode 100644 index 0000000000..4c3ba6e63a Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_google.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_google.png new file mode 100644 index 0000000000..997c19c208 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_nagram.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_nagram.png new file mode 100644 index 0000000000..997c19c208 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_neon.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_neon.png new file mode 100644 index 0000000000..79d72d7265 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_background_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_colorful.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_colorful.png new file mode 100644 index 0000000000..a5699d3769 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_darkgreen.png new file mode 100644 index 0000000000..89052bf6eb Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_google.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_google.png new file mode 100644 index 0000000000..de13ceaccc Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_nagram.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_nagram.png new file mode 100644 index 0000000000..b5c1aca266 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_neon.png b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_neon.png new file mode 100644 index 0000000000..1825f17529 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxhdpi/icon_foreground_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful.png new file mode 100644 index 0000000000..51d31513cc Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful_round.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful_round.png new file mode 100644 index 0000000000..5566d339b8 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_colorful_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen.png new file mode 100644 index 0000000000..fcc0b5aef3 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen_round.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen_round.png new file mode 100644 index 0000000000..7d8b2af03c Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_darkgreen_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google.png new file mode 100644 index 0000000000..e956b2ef66 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google_round.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google_round.png new file mode 100644 index 0000000000..e54e90022a Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_google_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon.png new file mode 100644 index 0000000000..46e75081e6 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon_round.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon_round.png new file mode 100644 index 0000000000..7e5a04086b Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/ic_launcher_nagram_neon_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground.png new file mode 100644 index 0000000000..a94b0236b2 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_round.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_round.png new file mode 100644 index 0000000000..8ab407167b Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_sa.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_sa.png new file mode 100644 index 0000000000..1d898cce6b Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_foreground_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher.png new file mode 100644 index 0000000000..4c6da9fbc7 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_round.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_round.png new file mode 100644 index 0000000000..31e00d73ed Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_round.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_sa.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_sa.png new file mode 100644 index 0000000000..470554ba08 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_3_launcher_sa.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_colorful.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_colorful.png new file mode 100644 index 0000000000..a89e588354 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_darkgreen.png new file mode 100644 index 0000000000..d04999d5b1 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_google.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_google.png new file mode 100644 index 0000000000..a89e588354 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_nagram.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_nagram.png new file mode 100644 index 0000000000..a89e588354 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_neon.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_neon.png new file mode 100644 index 0000000000..920620f745 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_background_neon.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_colorful.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_colorful.png new file mode 100644 index 0000000000..a455054b62 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_colorful.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_darkgreen.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_darkgreen.png new file mode 100644 index 0000000000..bda95e513b Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_darkgreen.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_google.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_google.png new file mode 100644 index 0000000000..e1254bf969 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_google.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_nagram.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_nagram.png new file mode 100644 index 0000000000..37d5c79396 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_nagram.png differ diff --git a/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_neon.png b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_neon.png new file mode 100644 index 0000000000..523641f559 Binary files /dev/null and b/TMessagesProj/src/main/res/mipmap-xxxhdpi/icon_foreground_neon.png differ 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-ko/strings_nullgram.xml b/TMessagesProj/src/main/res/values-de/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-ko/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-de/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-ko/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-de/strings_nullgram.xml b/TMessagesProj/src/main/res/values-fr/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-de/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-fr/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-de/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-nl/strings_nullgram.xml b/TMessagesProj/src/main/res/values-ko/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-nl/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-ko/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-nl/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-fr/strings_nullgram.xml b/TMessagesProj/src/main/res/values-nl/strings_nnngram.xml similarity index 96% rename from TMessagesProj/src/main/res/values-fr/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-nl/strings_nnngram.xml index b3fc53664c..ea2f0360bf 100644 --- a/TMessagesProj/src/main/res/values-fr/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 86% rename from TMessagesProj/src/main/res/values-zh/strings_nullgram.xml rename to TMessagesProj/src/main/res/values-zh/strings_nnngram.xml index c1b687dd9a..38123379fd 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设置中查看 隐藏后,您**仅**可以通过链接打开设置: 设置密码锁 更改密码锁 @@ -209,21 +209,21 @@ 频道 切换到匿名模式 切换到个人账户 - 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. + 下拉打开归档 + 禁用贴纸包自动排序 + 封禁 + 自动关闭内置代理 + 如果您使用VPN,Nnngram将自动关闭内置代理 + 由 Nekogram 提供的 WebSocket 代理 + 由 Nekogram X 提供的 WebSocket 代理 + 启用 TLS + 本地代理 + 启用 DoH + 公共代理 + 切换后端 + 正在安装更新 + Nnngram会在更新完成后重启 + 更新完成后显示通知 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. @@ -246,14 +246,23 @@ 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/ic_launcher_nagram_background.xml b/TMessagesProj/src/main/res/values/ic_launcher_nagram_background.xml new file mode 100644 index 0000000000..583a1e80f8 --- /dev/null +++ b/TMessagesProj/src/main/res/values/ic_launcher_nagram_background.xml @@ -0,0 +1,4 @@ + + + #FFFFFF + \ No newline at end of file diff --git a/TMessagesProj/src/main/res/values/strings.xml b/TMessagesProj/src/main/res/values/strings.xml index 5c469fe1c2..2a33f69d41 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 @@ -1478,15 +1478,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 @@ -1551,7 +1551,7 @@ %1$s pinned a live location %1$s pinned a GIF %1$s pinned an audio file - Nullgram + Nnngram Select Contact Select Contacts @@ -1559,7 +1559,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 @@ -1580,17 +1580,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 @@ -1673,16 +1673,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 @@ -1712,7 +1712,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 @@ -1752,7 +1752,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. @@ -1866,7 +1866,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. @@ -1917,7 +1917,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 @@ -1972,7 +1972,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. @@ -2073,7 +2073,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 @@ -2163,7 +2163,7 @@ Messages Send by Enter Events - Contact joined Nullgram + Contact joined Nnngram Pinned Messages Translate Messages Show Translate Button @@ -2188,12 +2188,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 @@ -2208,7 +2208,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 @@ -2296,14 +2296,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 @@ -2331,7 +2331,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 @@ -2340,7 +2340,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 @@ -2392,10 +2392,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 @@ -2413,7 +2413,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 @@ -2434,7 +2434,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 @@ -2465,8 +2465,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. @@ -2508,7 +2508,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 @@ -2540,17 +2540,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. @@ -2586,8 +2586,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 @@ -2598,7 +2598,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 @@ -2730,7 +2730,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? @@ -2743,18 +2743,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. @@ -2864,7 +2864,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 @@ -2879,7 +2879,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 @@ -3212,7 +3212,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! @@ -3233,7 +3233,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 @@ -3373,8 +3373,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 @@ -3391,11 +3391,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 @@ -3454,7 +3454,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. @@ -3464,7 +3464,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... @@ -3614,7 +3614,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 @@ -3656,7 +3656,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 @@ -3677,7 +3677,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**? @@ -3701,7 +3701,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 @@ -3759,16 +3759,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 @@ -3801,8 +3801,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. @@ -3820,8 +3820,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 @@ -3841,14 +3841,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 @@ -3907,7 +3907,7 @@ Message Statistic Open Message - Nullgram + Nnngram Fast Free Secure @@ -3933,9 +3933,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 @@ -3947,7 +3947,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 @@ -3987,7 +3987,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. @@ -3998,8 +3998,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 @@ -4017,16 +4017,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 @@ -4266,8 +4266,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 @@ -4280,8 +4280,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 @@ -4312,7 +4312,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. @@ -4407,18 +4407,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 @@ -5338,7 +5338,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 @@ -5457,12 +5457,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 93% rename from TMessagesProj/src/main/res/values/strings_nullgram.xml rename to TMessagesProj/src/main/res/values/strings_nnngram.xml index c1a8d5690c..6dd2799927 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 @@ -265,4 +265,13 @@ Jump To Beginning Disable Quick Send Media Bottom Baidu Translator + Google + Colorful + Dark Green + Neon + Do not unarchive by swipe + Hide input field bot button + Hide message seen tooltip + Disable notification bubble + Show online status diff --git a/build.gradle.kts b/build.gradle.kts index 43107d8611..e71b3aa158 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,11 +2,11 @@ @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("com.google.firebase.crashlytics") version "2.9.4" apply false - id("org.jetbrains.kotlin.android") version Version.kotlin apply false + id("org.jetbrains.kotlin.android") version 1.8.10 apply false kotlin("plugin.serialization") version Version.kotlin apply false } @@ -26,7 +26,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.2") val androidCompileNdkVersion = "21.4.7075529" fun Project.configureBaseExtension() { @@ -43,8 +43,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/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/buildSrc/src/main/kotlin/Version.kt b/buildSrc/src/main/kotlin/Version.kt index e69128d0aa..a90221b6f9 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.9" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 8c0fb64a86..ccebba7710 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 26811862df..fc10b601f7 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 distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 91a7e269e1..79a61d421c 100755 --- a/gradlew +++ b/gradlew @@ -1,79 +1,129 @@ -#!/usr/bin/env bash +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## -## -## Gradle start up script for UN*X -## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + 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/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", 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 }